Tài liệu API

Tạo nối EstaCaido với các ứng dụng của bạn

Bắt đầu

API của EstaCaido cho phép bạn quản lý monitor, xem sự cố, cấu hình cảnh báo và nhiều việc khác ngay từ mã của bạn. Mọi endpoint API đều dùng JSON cho nội dung yêu cầu và phản hồi.

URL gốc

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

Giới hạn tốc độ

Mỗi token API có thể gửi tối đa 100 yêu cầu mỗi phút. Yêu cầu vượt quá giới hạn sẽ nhận phản hồi 429 Too Many Requests.

Xác thực

Dùng xác thực bằng token cho mọi yêu cầu API. Đưa token của bạn vào header Authorization.

Lấy token xác thực

POST /api/v1/auth/token/
Yêu cầu
curl -X POST https://www.estacaido.com/api/v1/auth/token/ \
  -H "Content-Type: application/json" \
  -d '{"username": "your@email.com", "password": "yourpassword"}'
Phản hồi
{
  "token": "your-api-token-here"
}

Dùng token trong header Authorization

Authorization: Token your-api-token-here

Monitor

Quản lý các monitor website của bạn.

Danh sách monitor

GET /api/v1/monitors/
Phản hồi
[
  {
    "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"
  }
]

Tạo màn hình

POST /api/v1/monitors/
Tham số
name Bắt buộc Tên của monitor
domain Bắt buộc Tên miền cần giám sát, ví dụ example.com
check_interval Không bắt buộc Khoảng thời gian kiểm tra tính bằng giây, một trong 30, 60, 300, 600, 900, 1800, 3600. Mặc định: 300
check_type Không bắt buộc Một trong các giá trị: http, https, ping. Mặc định: https

Lấy monitor

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

Cập nhật monitor

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

Xóa monitor

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

Tạm dừng monitor

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

Tiếp tục monitor

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

Lấy thống kê monitor

GET /api/v1/monitors/{id}/statistics/
Tham số
days Không bắt buộc Số ngày cần bao gồm. Mặc định: 30

Sự cố

Xem các sự cố ngừng hoạt động và lịch sử của chúng.

Danh sách sự cố

GET /api/v1/incidents/
Tham số
status Không bắt buộc Lọc theo trạng thái: ongoing, resolved
monitor Không bắt buộc Lọc theo ID monitor

Lấy sự cố

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

Cảnh báo

Cấu hình thông báo cảnh báo cho các monitor của bạn.

Danh sách cảnh báo

GET /api/v1/alerts/

Tạo cảnh báo

POST /api/v1/alerts/
Tham số
monitor Bắt buộc ID monitor
alert_type Bắt buộc Một trong các giá trị: email, sms, slack, discord, webhook, pagerduty, teams
recipients Bắt buộc Địa chỉ người nhận hoặc URL webhook
alert_on_down Không bắt buộc Thông báo khi site ngừng hoạt động (mặc định: true)
alert_on_recovery Không bắt buộc Thông báo khi site hoạt động trở lại (mặc định: true)

Cập nhật cảnh báo

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

Xóa cảnh báo

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

Trang trạng thái

Tạo và quản lý các trang trạng thái công khai.

Danh sách trang trạng thái

GET /api/v1/status-pages/

Tạo trang trạng thái

POST /api/v1/status-pages/
Tham số
title Bắt buộc Tiêu đề của trang trạng thái
slug Bắt buộc Slug URL (ví dụ my-status-page)
description Không bắt buộc Văn bản mô tả
is_public Không bắt buộc Cho phép truy cập công khai (mặc định: true)

Nhóm

Quản lý quyền truy cập và cộng tác của nhóm.

Danh sách nhóm

GET /api/v1/teams/

Tạo nhóm

POST /api/v1/teams/

Lấy nhóm

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

Ví dụ mã

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

Sẵn sàng bắt đầu?

Đăng ký miễn phí và lấy token API để bắt đầu tích hợp.

Đăng ký miễn phí Lấy token API