Документація API

Інтегрувати EstaCaido з вашими програмами

Початок роботи

API EstaCaido дає змогу керувати моніторами, переглядати інциденти, налаштовувати сповіщення та багато іншого з вашого коду. Усі кінцеві точки API використовують JSON у запитах і відповідях.

Базовий URL

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

Ліміти запитів

Кожен токен API може надсилати не більше 100 запитів на хвилину. На запити понад ліміт надходить відповідь 429 Too Many Requests.

Автентифікація

Використовуйте токен для автентифікації всіх запитів до API. Передавайте токен у заголовку Authorization.

Отримати токен автентифікації

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

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 Необов'язково Фільтр за статусом: ongoing, resolved
monitor Необов'язково Фільтр за ID монітора

Отримати інцидент

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

Сповіщення

Налаштуйте сповіщення для своїх моніторів.

Список сповіщень

GET /api/v1/alerts/

Створити сповіщення

POST /api/v1/alerts/
Параметри
monitor Обов'язково ID монітора
alert_type Обов'язково Одне зі значень: email, sms, slack, discord, webhook, pagerduty, teams
recipients Обов'язково Адреси отримувачів або URL вебхуків
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 (наприклад, my-status-page)
description Необов'язково Текст опису
is_public Необов'язково Зробити загальнодоступним (за замовчуванням: true)

Команди

Керуйте доступом команди та спільною роботою.

Список команд

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