Dokumentacja API

Iнтегрuj EstaCaido do aplikacji

Pierwsze kroki

API EstaCaido pozwala zarządzać monitorami, przeglądać incydenty, konfigurować alerty i więcej z poziomu własnego kodu. Wszystkie punkty końcowe API używają JSON w żądaniach i odpowiedziach.

Bazowy URL

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

Limity zapytań

Każdy token API może wykonać maksymalnie 100 żądań na minutę. Żądania ponad limit otrzymują odpowiedź 429 Too Many Requests.

Uwierzytelnianie

Używaj uwierzytelniania tokenem we wszystkich żądaniach API. Dołącz token w nagłówku Authorization.

Pobierz token uwierzytelniający

POST /api/v1/auth/token/
Żądanie
curl -X POST https://www.estacaido.com/api/v1/auth/token/ \
  -H "Content-Type: application/json" \
  -d '{"username": "your@email.com", "password": "yourpassword"}'
Odpowiedź
{
  "token": "your-api-token-here"
}

Użyj tokenu w nagłówku Authorization

Authorization: Token your-api-token-here

Monitory

Zarządzaj monitorami swoich stron.

Lista monitorów

GET /api/v1/monitors/
Odpowiedź
[
  {
    "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"
  }
]

Utwórz monitor

POST /api/v1/monitors/
Parametry
name Wymagane Nazwa monitora
domain Wymagane Domena do monitorowania, na przykład example.com
check_interval Opcjonalne Odstęp sprawdzania w sekundach, jeden z 30, 60, 300, 600, 900, 1800, 3600. Domyślnie: 300
check_type Opcjonalne Jedna z tych wartości: http, https, ping. Domyślnie: https

Pobierz monitor

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

Zapisz monitor

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

Usuń monitor

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

Wstrzymaj monitor

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

Wznów monitor

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

Pobierz statystyki monitora

GET /api/v1/monitors/{id}/statistics/
Parametry
days Opcjonalne Liczba dni do uwzględnienia. Domyślnie: 30

Incydenty

Przeglądaj incydenty przestojów i ich historię.

Lista incydentów

GET /api/v1/incidents/
Parametry
status Opcjonalne Filtruj według statusu: ongoing, resolved
monitor Opcjonalne Filtruj według ID monitora

Pobierz incydent

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

Alerty

Konfiguruj powiadomienia alertów dla swoich monitorów.

Lista alertów

GET /api/v1/alerts/

Utwórz alert

POST /api/v1/alerts/
Parametry
monitor Wymagane ID monitora
alert_type Wymagane Jedna z tych wartości: email, sms, slack, discord, webhook, pagerduty, teams
recipients Wymagane Adresy odbiorców lub adresy URL webhooków
alert_on_down Opcjonalne Powiadom, gdy strona przestanie działać (domyślnie: true)
alert_on_recovery Opcjonalne Powiadom, gdy strona wróci do działania (domyślnie: true)

Zapisz alert

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

Usuń alert

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

Strony statusu

Twórz publiczne strony statusu i zarządzaj nimi.

Lista stron statusu

GET /api/v1/status-pages/

Utwórz stronę statusu

POST /api/v1/status-pages/
Parametry
title Wymagane Tytuł strony statusu
slug Wymagane Slug URL (np. moja-strona-statusu)
description Opcjonalne Tekst opisu
is_public Opcjonalne Udostępnij publicznie (domyślnie: true)

Zespoły

Zarządzaj dostępem zespołu i współpracą.

Lista zespołów

GET /api/v1/teams/

Utwórz zespół

POST /api/v1/teams/

Pobierz zespół

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

Przykłady kodu

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}'

Gotowy, by zacząć?

Zarejestruj się za darmo i pobierz token API, aby zacząć integrację.

Zarejestruj się za darmo Pobierz token API