API Dokumentasyon

Isama EstaCaido sa iyong mga application

Pagsisimula

Ang EstaCaido API ay nagbibigay-daan sa iyo upang pamahalaan ang iyong mga monitor, tingnan ang mga insidente, i-configure ang mga alerto at higit pa mula sa iyong sariling code. Lahat ng API endpoints gamitin JSON para sa mga kahilingan at tugon katawan.

Base URL

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

Limitasyon ng Rate

Ang bawat API token ay maaaring gumawa ng hanggang sa 100 mga kahilingan sa bawat minuto. Mga kahilingan sa itaas na limitasyon makakuha ng isang 429 Too Many Requests tugon.

Pag-authenticate

Gamitin ang token-based na pag-verify ng pagkakakilanlan para sa lahat ng mga kahilingan API. Kasama ang iyong token sa Authorization header.

Kumuha ng Authentication Token

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

Gamitin ang token sa Authorization header

Authorization: Token your-api-token-here

Monitor

Pamahalaan ang iyong website monitor.

Listahan ng Monitor

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

Lumikha ng Monitor

POST /api/v1/monitors/
Parameter
name Kinakailangan Pangalan para sa monitor
domain Kinakailangan Domain upang subaybayan, halimbawa example.com
check_interval Opsyonal Tingnan ang pagitan sa segundo, isa sa 30, 60, 300, 600, 900, 1800, 3600. Default: 300
check_type Opsyonal Ang isa sa mga halaga: http, https, ping. Default: https

Kumuha ng Monitor

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

I-update ang Monitor

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

Mag-edit ng Monitor

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

I-pause ang Monitor

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

Magpatuloy Monitor

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

Kumuha ng Monitor Statistics

GET /api/v1/monitors/{id}/statistics/
Parameter
days Opsyonal Ang bilang ng mga araw upang isama. Default: 30

Mga Insidente

Tingnan ang downtime insidente at ang kanilang kasaysayan.

Listahan ng mga Insidente

GET /api/v1/incidents/
Parameter
status Opsyonal I-filter sa pamamagitan ng katayuan: patuloy, nalulutas
monitor Opsyonal I-filter sa pamamagitan ng monitor ID

Kumuha ng Insidente

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

Mga Alarm

I-configure alerto notification para sa iyong mga monitor.

Listahan ng mga Alerto

GET /api/v1/alerts/

Lumikha ng alerto

POST /api/v1/alerts/
Parameter
monitor Kinakailangan Monitor ID
alert_type Kinakailangan Isa sa mga halaga: email, sms, slack, discord, webhook, pagerduty, teams
recipients Kinakailangan Tatanggap address o webhook URL
alert_on_down Opsyonal Mag-notify kapag site ay bumababa (default: totoo)
alert_on_recovery Opsyonal Mag-notify kapag site recovers (default: totoo)

I-update ang Alert

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

I-delete ang alerto

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

Mga pahina ng katayuan

Lumikha at pamahalaan ang mga pampublikong pahina ng katayuan.

Listahan ng mga pahina ng katayuan

GET /api/v1/status-pages/

Lumikha ng Status Page

POST /api/v1/status-pages/
Parameter
title Kinakailangan <title> Para sa pahina ng katayuan
slug Kinakailangan URL slug (halimbawa, ang aking-status-page)
description Opsyonal Paglalarawan ng teksto
is_public Opsyonal Gumawa ng publikong magagamit (default: totoo)

Mga koponan

Pamahalaan ang access ng koponan at pakikipagtulungan.

Listahan ng mga koponan

GET /api/v1/teams/

Lumikha ng Team

POST /api/v1/teams/

Kumuha ng Team

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

Mga halimbawa ng Code

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

Handa na ba para magsimula?

Mag-sign up para sa libreng at makakuha ng iyong API token upang simulan ang pagsasama.

Mag-sign Up nang Libre Kumuha ng API Token