دمج EstaCaido مع تطبيقاتك
تتيح لك واجهة EstaCaido API إدارة مراقباتك وعرض الحوادث وضبط التنبيهات وغير ذلك من شيفرتك البرمجية. تستخدم جميع نقاط نهاية API صيغة JSON لمتن الطلب والاستجابة.
https://www.estacaido.com/api/v1/
يمكن لكل رمز API إرسال ما يصل إلى 100 طلب في الدقيقة. الطلبات التي تتجاوز هذا الحد تتلقى استجابة 429 Too Many Requests.
استخدم المصادقة بالرمز لجميع طلبات API. ضمّن الرمز في ترويسة Authorization.
/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
أدر مراقبات مواقعك.
/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"
}
]
/api/v1/monitors/
name |
مطلوب | اسم المراقب |
domain |
مطلوب | النطاق المراد مراقبته، مثل example.com |
check_interval |
اختياري | فاصل الفحص بالثواني، أحد القيم 30, 60, 300, 600, 900, 1800, 3600. الافتراضي: 300 |
check_type |
اختياري | إحدى هذه القيم: http, https, ping. القيمة الافتراضية: https |
/api/v1/monitors/{id}/
/api/v1/monitors/{id}/
/api/v1/monitors/{id}/
/api/v1/monitors/{id}/pause/
/api/v1/monitors/{id}/resume/
/api/v1/monitors/{id}/statistics/
days |
اختياري | عدد الأيام المطلوب تضمينها. الافتراضي: 30 |
اعرض حوادث التوقف وسجلها.
/api/v1/incidents/
status |
اختياري | التصفية حسب الحالة: ongoing, resolved |
monitor |
اختياري | التصفية حسب معرّف المراقب |
/api/v1/incidents/{id}/
اضبط إشعارات التنبيه لمراقباتك.
/api/v1/alerts/
/api/v1/alerts/
monitor |
مطلوب | معرّف المراقب |
alert_type |
مطلوب | إحدى هذه القيم: email, sms, slack, discord, webhook, pagerduty, teams |
recipients |
مطلوب | عناوين المستلمين أو عناوين Webhook URL |
alert_on_down |
اختياري | الإبلاغ عند توقف الموقع (الافتراضي: true) |
alert_on_recovery |
اختياري | الإبلاغ عند تعافي الموقع (الافتراضي: true) |
/api/v1/alerts/{id}/
/api/v1/alerts/{id}/
أنشئ صفحات حالة عامة وأدرها.
/api/v1/status-pages/
/api/v1/status-pages/
title |
مطلوب | عنوان صفحة الحالة |
slug |
مطلوب | مُعرّف URL (مثل my-status-page) |
description |
اختياري | نص الوصف |
is_public |
اختياري | إتاحته للعموم (الافتراضي: true) |
أدر وصول الفريق والتعاون.
/api/v1/teams/
/api/v1/teams/
/api/v1/teams/{id}/
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())
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));
# 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}'