API документација

Интегрирај EstaCaido со вашите апликации

Започнување

API-то EstaCaido ви овозможува да управувате со вашите монитори, да ги гледате инцидентите, да ги конфигурирате алармите и повеќе од вашиот код. Сите крајни точки на API ги користат JSON за барање и одговор на телата.

Основен URL

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

Ограничувања на стапка

Секој API жетон може да ги компензира барањата за 100 во минута. Барањата преку таа граница добиваат одговор на 429 Too Many Requests.

Автентификација

Користете автентичност врз основа на žetone за сите API барања. Вклучете го вашиот жеtone во заглавјето за авторизација.

Добиете автентичност

POST /api/v1/auth/token/
Барање
curl -X POST https://www.estacaido.com/api/v1/auth/token/ \
  -H "Content-Type: application/json" \
  -d '{"username": "your@email.com", "password": "yourpassword"}'
Одговор
{
  "token": "your-api-token-here"
}

Користи го знакот во заглавието за овластување

Authorization: Token your-api-token-here

Монитори

Менаџирај ги вашите монитори на веб-страницата.

Список на монитори

GET /api/v1/monitors/
Одговор
[
  {
    "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"
  }
]

Креирај монитор

POST /api/v1/monitors/
Параметри
name Потребно Име на мониторот
domain Потребно Домен за надгледување, на пример example.com
check_interval Опционо Проверка на интервалот во секунди, еден од 30, 60, 300, 600, 900, 1800, 3600. Стандардно: 300
check_type Опционо Една од овие вредности: http, https, ping. Стандардно: https

Додај монитор

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

Монитор на ажурирање

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

Избриши монитор

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

Монитор на пауза

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

Продолжи со мониторот

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

Соберете статистика на мониторот

GET /api/v1/monitors/{id}/statistics/
Параметри
days Опционо Број на денови кои треба да се вклучат. Стандардно: 30

Инциденти

Погледнете ги инцидентите со застојот и нивната историја.

Список на инциденти

GET /api/v1/incidents/
Параметри
status Опционо Филтерирај по статусот: во тек е, решено
monitor Опционо Филтрирај по ИД- монитор

Добијам инцидент

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

Известувања

Конфигурирајте известувања за аларм за вашите монитори.

Известувања за листа

GET /api/v1/alerts/

Создади аларм

POST /api/v1/alerts/
Параметри
monitor Потребно Ид. на мониторот
alert_type Потребно Една од овие вредности: email, sms, slack, discord, webhook, pagerduty, teams
recipients Потребно Адреси на примачот или адреси на веб- куќи
alert_on_down Опционо Известувај кога ќе се спушти страницата (стандардно: true)
alert_on_recovery Опционо Известување кога ќе се оздрави страницата (стандардно: true)

Известување за ажурирање

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

Избриши аларм

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

Статус на страници

Креирајте и управувајте со страниците на статусот на јавноста.

Страници на статусот на листата

GET /api/v1/status-pages/

Креирај страница за статусот

POST /api/v1/status-pages/
Параметри
title Потребно Наслов за страницата за статус
slug Потребно URL- куршум (на пример, мојата- статусна- страница)
description Опционо Опис
is_public Опционо Направи јавен пристап (стандардно: вистинит)

Тимови

Менаџирајте го пристапот на тимот и соработката.

Листи тимови

GET /api/v1/teams/

Креирај тим

POST /api/v1/teams/

Доведи го тимот

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

Примери за код

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

Подготвени сте да почнете?

Запиши се бесплатно и земи го твојот API токен за да почнеш да се интегрираш.

Регистрирај се бесплатно Земи API- Токен