i-CDN DOCS
API و کلیدهای دسترسی
API مشتری i-CDN برای اتوماسیون DNS، مبدأ، پورت، کش، امنیت، SSL و دریافت مصرف طراحی شده است. کلیدها فقط به حساب سازنده و مجوزهای انتخابشده دسترسی دارند.
نشانی پایه و احراز هویت
نشانی پایه API مشتری زیر است. تمام درخواستها و پاسخها JSON هستند و کلید باید در هدر Authorization قرار گیرد.
https://panel.iranmonitor.net/api/v1/customerhttps://iranmonitor.net/docs/api/openapi.yamlcurl --fail-with-body \
-H 'Authorization: Bearer icdn_live_REPLACE_ME' \
-H 'Accept: application/json' \
https://panel.iranmonitor.net/api/v1/customer/zonesهشدار
کلید را داخل JavaScript مرورگر، مخزن Git، پیام پشتیبانی یا فایل عمومی قرار ندهید. مقدار کامل کلید فقط هنگام ساخت نمایش داده میشود.
مجوزها
| مجوز | دسترسی |
|---|---|
| zones:read | فهرست و جزئیات دامنههای همان حساب؛ برای همه کلیدها افزوده میشود |
| dns:write | جایگزینی مجموعه رکوردهای DNS |
| origins:write | مبدأ اصلی، پورت ورودی و مسیر رکورد ابری |
| cache:write | سیاست کش دامنه |
| security:write | پروفایل امنیتی و WAF |
| tls:write | صدور یا تمدید SSL |
| traffic:read | شمارندههای مصرف دامنه |
| nameservers:verify | بررسی دوباره نیمسرورهای عمومی |
ویدیوی ساخت و مدیریت کلید API
ساخت کلید محدود، کپی مقدار یکبارمصرف و مشاهده محل ابطال کلید.
فهرست endpointها
| روش و مسیر | مجوز | کاربرد |
|---|---|---|
| GET /zones | zones:read | فهرست دامنهها و UUID |
| GET /zones/{zone_id} | zones:read | جزئیات کامل دامنه |
| POST /zones/{zone_id}/verify-nameservers | nameservers:verify | بررسی delegation |
| GET /zones/{zone_id}/traffic | traffic:read | مصرف ورودی و خروجی |
| PUT /zones/{zone_id}/dns-records | dns:write | جایگزینی اتمیک همه رکوردها |
| PUT /zones/{zone_id}/origin | origins:write | بهروزرسانی مبدأ اصلی |
| PUT /zones/{zone_id}/cloud-routes/{record_id} | origins:write | پورت ورودی و مقصد رکورد ابری |
| PUT /zones/{zone_id}/cache-policy | cache:write | بهروزرسانی کش |
| PUT /zones/{zone_id}/security-policy | security:write | بهروزرسانی امنیت |
| POST /zones/{zone_id}/certificates | tls:write | صدور یا تمدید SSL |
نکته
endpointهای /api-keys فقط از نشست امن داشبورد و CSRF استفاده میکنند. خود یک API key نمیتواند کلید جدید بسازد یا کلید دیگری را باطل کند.
نمونه درخواستها
curl --fail-with-body \
-H 'Authorization: Bearer icdn_live_REPLACE_ME' \
https://panel.iranmonitor.net/api/v1/customer/zones/ZONE_UUIDcurl --fail-with-body -X PUT \
-H 'Authorization: Bearer icdn_live_REPLACE_ME' \
-H 'Content-Type: application/json' \
https://panel.iranmonitor.net/api/v1/customer/zones/ZONE_UUID/cloud-routes/RECORD_UUID \
--data '{"origin_host":"203.0.113.10","protocol":"http","port":8081,"edge_protocol":"https","edge_port":8443}'curl --fail-with-body -X PUT \
-H 'Authorization: Bearer icdn_live_REPLACE_ME' \
-H 'Content-Type: application/json' \
https://panel.iranmonitor.net/api/v1/customer/zones/ZONE_UUID/cache-policy \
--data '{"enabled":true,"browser_ttl_seconds":300,"edge_ttl_seconds":600,"stale_while_revalidate_seconds":60,"stale_if_error_seconds":3600}'نکته مهم درباره API رکوردهای DNS
درخواست PUT مجموعه کامل رکوردهای قابل مدیریت دامنه را جایگزین میکند. ابتدا GET /zones/{zone_id} را اجرا کنید، آرایه dns.records را تغییر دهید و سپس کل مجموعه را ارسال کنید.
{
"owner_ref": "customer-reference",
"records": [
{
"id": null,
"name": "ws",
"rr_type": "A",
"value": "203.0.113.10",
"ttl": 120,
"priority": null,
"proxied": true,
"origin_protocol": "http",
"origin_port": 8081,
"edge_protocol": "https",
"edge_port": 8443
}
]
}هشدار
ارسال آرایه ناقص، رکوردهای جاافتاده را حذف میکند. رکوردهای برگشتی را نگه دارید و فقط موارد موردنظر را تغییر دهید.
ساختار پاسخ و خطا
| HTTP | معنا |
|---|---|
| 400 | بدنه یا مقدار نامعتبر |
| 401 | کلید وجود ندارد، اشتباه است، منقضی یا باطل شده |
| 403 | کلید مجوز لازم را ندارد |
| 404 | دامنه یا رکورد متعلق به این حساب پیدا نشد |
| 409 | تغییر با وضعیت فعلی DNS، TLS یا edge سازگار نیست |
{
"success": true,
"data": {"items": []},
"request_id": "REQUEST_UUID"
}{
"success": false,
"error": {
"code": "forbidden",
"message": "You do not have permission to perform this action",
"request_id": "REQUEST_UUID",
"details": {}
}
}نکته
request_id را در لاگ برنامه خود ذخیره کنید؛ این شناسه برای پیگیری دقیق خطا در پشتیبانی لازم است.
مطالعه بعدی
راهنمای قبلی
مصرف ترافیک و PAYG