Программный доступ к инвентарю доменов и DNS-записям по многим Cloudflare-аккаунтам. Предназначен для агентов и скриптов.
Агенты передают ключ в заголовке X-API-Key. Ключи выпускает и
отзывает только верховный админ из панели (вкладка «API-ключи»). Ключ
показывается один раз при выпуске; в БД хранится только его SHA-256.
| Scope | Что разрешено |
|---|---|
read | GET-эндпоинты: stats, zones, accounts, sync-status, чтение DNS |
write | всё из read + создание/правка/удаление DNS-записей и запуск sync |
# базовый вызов
curl -s https://cf.82-27-0-250.sslip.io/api/stats \
-H "X-API-Key: cfk_XXXXXXXXXXXXXXXXXXXXXXXX"
account — один CF-логин (email + Global API Key). zone — домен,
найденный под аккаунтом (id — внутренний, zone_id — из
Cloudflare). DNS-записи читаются/пишутся вживую через CF по zone.id.
q (поиск по домену или email аккаунта),
status (active/pending/…), page, per_page (≤500).curl -s "$BASE/api/zones?q=example&per_page=20" -H "X-API-Key: $KEY"
failed_only=true — только сбойные.id — внутренний id зоны из /api/zones).curl -s "$BASE/api/zones/42/dns" -H "X-API-Key: $KEY"
type, name, content, ttl (1=auto),
proxied (для A/AAAA/CNAME), priority (MX/SRV).curl -s -X POST "$BASE/api/zones/42/dns" -H "X-API-Key: $KEY" \
-H "Content-Type: application/json" \
-d '{"type":"A","name":"node1","content":"1.2.3.4","proxied":true}'record_id — CF-id записи.concurrency (1–100),
failed_only=true. Прогресс — в GET /api/sync/status.running, done, total, ok, failed, zones.| Код | Значение |
|---|---|
401 | нет/битый ключ или сессия |
403 | ключу не хватает scope (нужен write) |
404 | зона/запись/ключ не найдены |
502 | ошибка от Cloudflare (текст в detail) |
Полная машинночитаемая спецификация — /openapi.json.