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

Интегриране на EstaCaido с вашите приложения

Започване

API EstaCaido ви позволява да управлявате вашите монитори, да видите инциденти, да конфигурирате сигнали и повече от вашия код. Всички API крайни точки използват JSON за запитване и отговор на тела.

Основен URL

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

Гранични стойности

Всеки API жетон може да компенсира 100 искания на минута. Запитвания върху това ограничение получава з429 Too Many Requests отговор.

Автентифициране

Използвайте автентифициране на API-тона, за да се включи вашият жетон в заглавието на авторизирането.

Получаване на автентичност

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 Задължително ID на монитора
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 Задължително Да направим обществено достъпен (по подразбиране: 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 Токен