Cloudflare · все настройки
/api/v1/domains/{id}/operationsРаботает только с данными вашего аккаунта. Передавайте API-ключ в заголовке Authorization. Ответы возвращаются в JSON.
Запрос
В BASE_URL укажите HTTPS-адрес этого сайта, в API_KEY — свой секретный ключ. RESOURCE_ID замените идентификатором из ответа API.
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.
Ответ
request_idstringобязательноИдентификатор для восстановления результата после сетевого сбоя.
idstringобязательноdomain_idintegerkindstringТип действия; выбирайте нужный вариант ниже.
statusstringобязательноТекущее состояние. Принятое задание ещё не означает успех.
created_atstring | nullneeds_reviewbooleanобязательноНеизвестный результат требует сверки, а не повторной операции.
messagestring | nullПример структуры ответа · условные значения
{
"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.