Dokumentasi API

Integrate EstaCaido dengan aplikasi Anda

Memulai

API EstaCaido memungkinkan Anda mengelola monitor, melihat insiden, mengonfigurasi peringatan, dan lainnya dari kode Anda sendiri. Semua endpoint API menggunakan JSON untuk isi permintaan dan respons.

URL Dasar

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

Batas Laju

Setiap token API dapat membuat hingga 100 permintaan per menit. Permintaan di atas batas itu mendapat respons 429 Too Many Requests.

Autentikasi

Gunakan autentikasi berbasis token untuk semua permintaan API. Sertakan token Anda di header Authorization.

Dapatkan Token Autentikasi

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"}'
Respons
{
  "token": "your-api-token-here"
}

Gunakan token di header Authorization

Authorization: Token your-api-token-here

Monitor

Kelola monitor situs web Anda.

Daftar Monitor

GET /api/v1/monitors/
Respons
[
  {
    "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 Wajib Nama monitor
domain Wajib Domain yang dipantau, misalnya example.com
check_interval Opsional Interval pemeriksaan dalam detik, salah satu dari 30, 60, 300, 600, 900, 1800, 3600. Bawaan: 300
check_type Opsional Salah satu nilai berikut: http, https, ping. Bawaan: https

Ambil Monitor

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

Perbarui Monitor

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

Hapus Monitor

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

Jeda Monitor

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

Lanjutkan Monitor

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

Ambil Statistik Monitor

GET /api/v1/monitors/{id}/statistics/
Parameter
days Opsional Jumlah hari yang disertakan. Bawaan: 30

Insiden

Lihat insiden downtime beserta riwayatnya.

Daftar Insiden

GET /api/v1/incidents/
Parameter
status Opsional Filter berdasarkan status: ongoing, resolved
monitor Opsional Filter berdasarkan ID monitor

Ambil Insiden

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

Peringatan

Konfigurasikan notifikasi peringatan untuk monitor Anda.

Daftar Peringatan

GET /api/v1/alerts/

Buat Peringatan

POST /api/v1/alerts/
Parameter
monitor Wajib ID Monitor
alert_type Wajib Salah satu nilai berikut: email, sms, slack, discord, webhook, pagerduty, teams
recipients Wajib Alamat penerima atau URL webhook
alert_on_down Opsional Beri tahu saat situs down (bawaan: true)
alert_on_recovery Opsional Beri tahu saat situs pulih (bawaan: true)

Perbarui Peringatan

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

Hapus Peringatan

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

Halaman Status

Buat dan kelola halaman status publik.

Daftar Halaman Status

GET /api/v1/status-pages/

Buat Halaman Status

POST /api/v1/status-pages/
Parameter
title Wajib Judul halaman status
slug Wajib Slug URL (mis. my-status-page)
description Opsional Teks deskripsi
is_public Opsional Buat dapat diakses publik (bawaan: true)

Tim

Kelola akses dan kolaborasi tim.

Daftar Tim

GET /api/v1/teams/

Buat Tim

POST /api/v1/teams/

Ambil Tim

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

Contoh Kode

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

Siap untuk memulai?

Daftar gratis dan dapatkan token API Anda untuk mulai berintegrasi.

Daftar Gratis Dapatkan Token API