Документация

EstaCaido программасын колдонмолорго интеграциялоо

Баштоо

EstaCaido API сиздин мониторлоруңузду башкарууга, окуяларды көрүү, эскертүүлөрдү конфигурациялоо жана башкалар үчүн өз кодуңуздан мүмкүндүк берет. Бардык 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: 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 Котормо Check interval in seconds, one of 30, 60, 300, 600, 900, 1800, 3600. Default: 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 Котормо Монитор 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 Зарыл Алуучулардын адрестери же webhook URLs
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-токен алуу