API belgelendirmesi

EstaCaido'i uygulamalarınızla entegre edin

Başlarken

EstaCaido API'si, monitörlerinizi yönetmenizi, olayları görüntülemenizi, uyarıları yapılandırmanızı ve daha fazlasını kendi kodunuzdan yapmanızı sağlar. Tüm API uç noktaları istek ve yanıt gövdeleri için JSON kullanır.

Temel URL

https://www.estacaido.com/api/v1/

İstek sınırları

Her API belirteci dakikada en fazla 100 istek yapabilir. Sınırı aşan isteklere 429 Too Many Requests yanıtı verilir.

Kimlik doğrulama

Tüm API istekleri için belirteç tabanlı kimlik doğrulamayı kullanın. Belirtecinizi Authorization başlığına ekleyin.

Kimlik doğrulama belirteci al

POST /api/v1/auth/token/
İstek
curl -X POST https://www.estacaido.com/api/v1/auth/token/ \
  -H "Content-Type: application/json" \
  -d '{"username": "your@email.com", "password": "yourpassword"}'
Yanıt
{
  "token": "your-api-token-here"
}

Belirteci Authorization başlığında kullanın

Authorization: Token your-api-token-here

Monitörler

Web sitesi monitörlerinizi yönetin.

Monitörleri listele

GET /api/v1/monitors/
Yanıt
[
  {
    "id": 1,
    "name": "Production API",
    "company": {
      "id": 1,
      "website": "api.example.com"
    },
    "check_type": "http",
    "check_interval": 300,
    "is_active": true,
    "is_paused": false,
    "last_check_at": "2024-01-15T10:30:00Z",
    "created_at": "2024-01-01T00:00:00Z"
  }
]

Monitör Oluştur

POST /api/v1/monitors/
Parametreler
name Zorunlu Monitörün adı
domain Zorunlu İzlenecek alan adı, örneğin example.com
check_interval İsteğe bağlı Saniye cinsinden kontrol aralığı, şunlardan biri: 30, 60, 300, 600, 900, 1800, 3600. Varsayılan: 300
check_type İsteğe bağlı Şu değerlerden biri: http, https, ping. Varsayılan: https

Monitörü al

GET /api/v1/monitors/{id}/

Monitörü güncelle

PUT /api/v1/monitors/{id}/

Monitörü sil

DELETE /api/v1/monitors/{id}/

Monitörü duraklat

POST /api/v1/monitors/{id}/pause/

Monitörü sürdür

POST /api/v1/monitors/{id}/resume/

Monitör istatistiklerini al

GET /api/v1/monitors/{id}/statistics/
Parametreler
days İsteğe bağlı Dahil edilecek gün sayısı. Varsayılan: 30

Olaylar

Kesinti olaylarını ve geçmişlerini görüntüleyin.

Olayları listele

GET /api/v1/incidents/
Parametreler
status İsteğe bağlı Duruma göre filtrele: ongoing, resolved
monitor İsteğe bağlı Monitör ID'sine göre filtrele

Olayı al

GET /api/v1/incidents/{id}/

Uyarılar

Monitörleriniz için uyarı bildirimlerini yapılandırın.

Uyarıları listele

GET /api/v1/alerts/

Uyarı oluştur

POST /api/v1/alerts/
Parametreler
monitor Zorunlu Monitör ID'si
alert_type Zorunlu Şu değerlerden biri: email, sms, slack, discord, webhook, pagerduty, teams
recipients Zorunlu Alıcı adresleri veya webhook URL'leri
alert_on_down İsteğe bağlı Site çöktüğünde bildir (varsayılan: true)
alert_on_recovery İsteğe bağlı Site düzeldiğinde bildir (varsayılan: true)

Uyarıyı güncelle

PUT /api/v1/alerts/{id}/

Uyarıyı sil

DELETE /api/v1/alerts/{id}/

Durum sayfaları

Herkese açık durum sayfaları oluşturun ve yönetin.

Durum sayfalarını listele

GET /api/v1/status-pages/

Durum sayfası oluştur

POST /api/v1/status-pages/
Parametreler
title Zorunlu Durum sayfasının başlığı
slug Zorunlu URL kısa adı (örn. my-status-page)
description İsteğe bağlı Açıklama metni
is_public İsteğe bağlı Herkese açık yap (varsayılan: true)

Ekipler

Ekip erişimini ve iş birliğini yönetin.

Ekipleri listele

GET /api/v1/teams/

Ekip oluştur

POST /api/v1/teams/

Ekibi al

GET /api/v1/teams/{id}/

Kod örnekleri

Python

import requests

API_TOKEN = 'your-api-token'
BASE_URL = 'https://www.estacaido.com/api/v1'

headers = {
    'Authorization': f'Token {API_TOKEN}',
    'Content-Type': 'application/json'
}

# List all monitors
response = requests.get(f'{BASE_URL}/monitors/', headers=headers)
monitors = response.json()
print(monitors)

# Create a new monitor
new_monitor = {
    'name': 'My Website',
    'domain': 'example.com',
    'check_interval': 300
}
response = requests.post(f'{BASE_URL}/monitors/', json=new_monitor, headers=headers)
print(response.json())

JavaScript

const API_TOKEN = 'your-api-token';
const BASE_URL = 'https://www.estacaido.com/api/v1';

const headers = {
    'Authorization': `Token ${API_TOKEN}`,
    'Content-Type': 'application/json'
};

// List all monitors
fetch(`${BASE_URL}/monitors/`, { headers })
    .then(res => res.json())
    .then(monitors => console.log(monitors));

// Create a new monitor
fetch(`${BASE_URL}/monitors/`, {
    method: 'POST',
    headers,
    body: JSON.stringify({
        name: 'My Website',
        domain: 'example.com',
        check_interval: 300
    })
})
.then(res => res.json())
.then(data => console.log(data));

cURL

# List all monitors
curl -X GET https://www.estacaido.com/api/v1/monitors/ \
  -H "Authorization: Token your-api-token"

# Create a new monitor
curl -X POST https://www.estacaido.com/api/v1/monitors/ \
  -H "Authorization: Token your-api-token" \
  -H "Content-Type: application/json" \
  -d '{"name": "My Website", "domain": "example.com", "check_interval": 300}'

Başlamaya hazır mısınız?

Ücretsiz kaydolun ve entegrasyona başlamak için API belirtecinizi alın.

Ücretsiz Kaydolun API belirteci al