وثائق API

دمج EstaCaido مع تطبيقاتك

البدء

تتيح لك واجهة EstaCaido API إدارة مراقباتك وعرض الحوادث وضبط التنبيهات وغير ذلك من شيفرتك البرمجية. تستخدم جميع نقاط نهاية API صيغة JSON لمتن الطلب والاستجابة.

عنوان URL الأساسي

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

حدود الطلبات

يمكن لكل رمز API إرسال ما يصل إلى 100 طلب في الدقيقة. الطلبات التي تتجاوز هذا الحد تتلقى استجابة 429 Too Many Requests.

المصادقة

استخدم المصادقة بالرمز لجميع طلبات API. ضمّن الرمز في ترويسة Authorization.

الحصول على رمز المصادقة

POST /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

Authorization: Token your-api-token-here

المراقبات

أدر مراقبات مواقعك.

عرض المراقبات

GET /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"
  }
]

إنشاء شاشة

POST /api/v1/monitors/
المعاملات
name مطلوب اسم المراقب
domain مطلوب النطاق المراد مراقبته، مثل example.com
check_interval اختياري فاصل الفحص بالثواني، أحد القيم 30, 60, 300, 600, 900, 1800, 3600. الافتراضي: 300
check_type اختياري إحدى هذه القيم: http, https, ping. القيمة الافتراضية: https

جلب مراقب

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

تحديث المراقب

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

حذف المراقب

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

إيقاف المراقب مؤقتًا

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

استئناف المراقب

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

جلب إحصاءات المراقب

GET /api/v1/monitors/{id}/statistics/
المعاملات
days اختياري عدد الأيام المطلوب تضمينها. الافتراضي: 30

الحوادث

اعرض حوادث التوقف وسجلها.

عرض الحوادث

GET /api/v1/incidents/
المعاملات
status اختياري التصفية حسب الحالة: ongoing, resolved
monitor اختياري التصفية حسب معرّف المراقب

جلب حادثة

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

التنبيهات

اضبط إشعارات التنبيه لمراقباتك.

عرض التنبيهات

GET /api/v1/alerts/

إنشاء تنبيه

POST /api/v1/alerts/
المعاملات
monitor مطلوب معرّف المراقب
alert_type مطلوب إحدى هذه القيم: email, sms, slack, discord, webhook, pagerduty, teams
recipients مطلوب عناوين المستلمين أو عناوين Webhook URL
alert_on_down اختياري الإبلاغ عند توقف الموقع (الافتراضي: true)
alert_on_recovery اختياري الإبلاغ عند تعافي الموقع (الافتراضي: true)

تحديث التنبيه

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

حذف التنبيه

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

صفحات الحالة

أنشئ صفحات حالة عامة وأدرها.

عرض صفحات الحالة

GET /api/v1/status-pages/

إنشاء صفحة حالة

POST /api/v1/status-pages/
المعاملات
title مطلوب عنوان صفحة الحالة
slug مطلوب مُعرّف URL (مثل my-status-page)
description اختياري نص الوصف
is_public اختياري إتاحته للعموم (الافتراضي: true)

الفرق

أدر وصول الفريق والتعاون.

عرض الفرق

GET /api/v1/teams/

إنشاء فريق

POST /api/v1/teams/

جلب فريق

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

أمثلة برمجية

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

هل أنت مستعد للبدء؟

سجّل مجانًا واحصل على رمز API لبدء التكامل.

سجل مجانا الحصول على رمز API