Dokumentasi API

Integrikan EstaCaido dengan aplikasi anda

Memulakan

API EstaCaido membolehkan anda mengurus monitor anda, lihat insiden, konfigur amaran dan lebih dari kod anda sendiri. Semua titik akhir API menggunakan JSON untuk badan permintaan dan respon.

URL Asas

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

Had Kadar

Setiap token API boleh membuat sehingga permintaan 100 per minit. Permintaan melebihi had itu akan mendapat maklum balas 429 Too Many Requests.

Pengesahan

Guna pengesahan berasaskan token untuk semua permintaan API. Termasuk token anda dalam pengepala Pengesahan.

Dapatkan Token Pengesahihan

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

Guna token dalam pengepala Pengesahan

Authorization: Token your-api-token-here

Monitor

Urus monitor laman web anda.

Senarai Monitor

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

Buat Monitor

POST /api/v1/monitors/
Parameter
name Diperlukan Nama bagi monitor
domain Diperlukan Domain untuk dipantau, contohnya example.com
check_interval Opsyenal Semak selang masa dalam saat, satu dari 30, 60, 300, 600, 900, 1800, 3600. Lalai: 300
check_type Opsyenal Salah satu nilai ini: http, https, ping. Lalai: https

Dapatkan Monitor

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

Monitor Kemas Kini

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

Hapuskan Monitor

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

Monitor

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

Sambung Semula Monitor

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

Dapatkan Statistik Monitor

GET /api/v1/monitors/{id}/statistics/
Parameter
days Opsyenal Bilangan hari untuk dimasukkan. Lalai: 30

Keadaan

Lihat insiden masa mati dan sejarah mereka.

Senarai Keadaan

GET /api/v1/incidents/
Parameter
status Opsyenal Penapis mengikut status: sedang berjalan, selesai
monitor Opsyenal Penapis mengikut ID monitor

Dapatkan Keadaan

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

Amaran

Konfigur pemberitahuan amaran untuk monitor anda.

Senarai Amaran

GET /api/v1/alerts/

Cipta Alarm

POST /api/v1/alerts/
Parameter
monitor Diperlukan ID Monitor
alert_type Diperlukan Salah satu nilai ini: email, sms, slack, discord, webhook, pagerduty, teams
recipients Diperlukan Alamat penerima atau URL webhook
alert_on_down Opsyenal Beritahu bila laman jatuh (piawai: benar)
alert_on_recovery Opsyenal Beritahu bila laman pulih (piawai: benar)

Kemas kini Amaran

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

Padam Alaman

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

Halaman Status

Cipta dan urus halaman status awam.

Senarai Halaman Status

GET /api/v1/status-pages/

Cipta Halaman Status

POST /api/v1/status-pages/
Parameter
title Diperlukan Tajuk bagi halaman status
slug Diperlukan URL slug (cth. my-status-page)
description Opsyenal Teks Huraian
is_public Opsyenal Jadikan boleh diakses umum (piawai: benar)

Pasukan

Urus akses dan kerjasama pasukan.

Senarai Kumpulan

GET /api/v1/teams/

Cipta Kumpulan

POST /api/v1/teams/

Dapatkan pasukan

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

Contoh Kod

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

Sedia untuk mula?

Daftar secara percuma dan dapatkan token API anda untuk mula mengintegrasikan.

Daftar Percuma Dapatkan Token API