m.MeowMeow Developers
ENOpenAPI ↗
API REFERENCE

Cloudflare · все настройки

POST/api/v1/domains/{id}/operations

Работает только с данными вашего аккаунта. Передавайте API-ключ в заголовке Authorization. Ответы возвращаются в JSON.

Запрос

В BASE_URL укажите HTTPS-адрес этого сайта, в API_KEY — свой секретный ключ. RESOURCE_ID замените идентификатором из ответа API.

cURL
curl --request POST "${BASE_URL}/api/v1/domains/RESOURCE_ID/operations" \
  --header "Authorization: Bearer $API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: YOUR_UNIQUE_ACTION_UUID" \
  --data '{"kind": "cloudflare.setting", "payload": {"setting": "always_use_https", "value": "on"}}'

Заголовки и параметры

Authorizationобязательно

Bearer YOUR_API_KEY

idpath · stringобязательно

Числовой ID домена; UUID для заказа, операции или запроса.

Idempotency-Keyheader · stringобязательно

Уникальный ключ действия. При повторе используйте то же значение и тот же JSON.

JSON body

cloudflare.setting
kindstringобязательно

Тип действия; выбирайте нужный вариант ниже.

const: "cloudflare.setting"

payloadobjectобязательно

Параметры выбранного действия.

payload.settingstringобязательно

Имя настройки из cloudflare.available_settings в карточке домена.

payload.valueobjectобязательно

Допустимое значение выбранной настройки из available_settings.

payload.countriesarray

Только для GEO: список кодов стран ISO 3166-1 alpha-2, например ["US", "DE"]. Без поля используется сохранённый список домена.

maxItems: 249

Cloudflare: настройка и результат

Для нового подключения нужен Prime. Уже подключённые домены можно редактировать и после его окончания. Подключение создаёт зону, настраивает DNS и HTTPS и меняет NS. Укажите публичный IP своего сервера; если начальная A-запись не нужна, не передавайте ip. Делегирование и выпуск сертификата асинхронны.

Дождитесь завершения через GET /operations/{id}. В GET /domains/{id} поле cloudflare.status показывает состояние зоны, ssl_status — сертификат для посетителей, origin_tls_status — HTTPS до сервера, checked_at — время последней проверки. Принятый запрос ещё не означает активный SSL.

Имена настроек и значения

Одна операция меняет одну пару setting/value. Сначала проверьте cloudflare.available_settings у домена: доступность зависит от делегирования и конфигурации сервиса. Для переключателей защиты передавайте JSON true/false, не строки. Для GEO передайте setting=geo, value=true и countries=["US","DE"]. Список стран отдельный для каждого домена. value=false отключает блокировку, countries=[] очищает выбор. Если countries не передан, используется сохранённый список.

ssl

["strict", "full", "flexible", "off"]

tls_1_3

["on", "off"]

cache_level

["basic", "simplified", "aggressive"]

browser_cache_ttl

[0, 1800, 3600, 7200, 14400, 28800, 43200, 86400, 604800]

under_attack

[false, true]

development_mode

["off", "on"]

always_online

["off", "on"]

fight_mode

[false, true]

always_use_https

["on", "off"]

geo

[false, true]

ssl — режим SSL; tls_1_3 — TLS 1.3; always_use_https — переход на HTTPS; under_attack — Under Attack; fight_mode — защита от ботов; geo — блокировка стран; cache_level и browser_cache_ttl — кэш; development_mode — режим разработки; always_online — Always Online.

cloudflare.proxy меняет проксирование совместимых DNS-записей. cloudflare.purge очищает кэш зоны. Эти действия не покупают и не продлевают домен и не гарантируют защиту от любых жалоб или атак.

Ответ

202 означает «принято», а не «выполнено». Проверяйте состояние заказа или операции. При неизвестном результате не создавайте повторную покупку. Суммы — десятичные строки в USD, даты — ISO 8601.
request_idstringобязательно

Идентификатор для восстановления результата после сетевого сбоя.

idstringобязательно
domain_idinteger
kindstring

Тип действия; выбирайте нужный вариант ниже.

statusstringобязательно

Текущее состояние. Принятое задание ещё не означает успех.

created_atstring | null
needs_reviewbooleanобязательно

Неизвестный результат требует сверки, а не повторной операции.

messagestring | null
Пример структуры ответа · условные значения
JSON
{
  "request_id": "00000000-0000-4000-8000-000000000001",
  "id": "00000000-0000-4000-8000-000000000001",
  "domain_id": 1,
  "kind": "string",
  "status": "string",
  "created_at": "2026-10-02T12:00:00Z",
  "needs_review": false,
  "message": "string"
}

Ошибки и статусы

error.code · error.message · request_id

401

Ключ неверен или отозван.

404

Ресурс не найден в вашем аккаунте.

409

Конфликт ключа повтора или запрос ещё выполняется.

422

Неверные параметры или условия операции, включая баланс.

500

Результат может быть неизвестен. Проверьте запрос.

503

Временно недоступно. Учитывайте Retry-After.