← Cloudflare Registrar / registrar
Registrar API
Используйте API Cloudflare Registrar, чтобы искать доменные имена, проверять доступность и цены в реальном времени и регистрировать поддерживаемые домены программно.
В этом руководстве описан бета-процесс работы с Cloudflare API и curl. Эти же конечные точки по умолчанию доступны в официальной справке Cloudflare API и через Cloudflare MCP, а значит, их можно использовать в скриптах, серверных службах, конвейерах CI и инструментах на основе агентов без дополнительной интеграции.
Перед началом работы
Перед отправкой первого запроса к API убедитесь, что у вас есть:
- Идентификатор аккаунта Cloudflare.
- API-токен с правами на запись для Registrar. Создайте его в разделе
https://dash.cloudflare.com/<ACCOUNT_ID>/api-tokens. - Платёжный профиль с действующим способом оплаты по умолчанию. Управляйте платежами в разделе
https://dash.cloudflare.com/<ACCOUNT_ID>/billing/payment-info. - Настроенный на аккаунте контакт регистранта по умолчанию, а также принятое соглашение о регистрации доменов на странице регистраций:
https://dash.cloudflare.com/<ACCOUNT_ID>/domains/registrations.
Дополнительную информацию по настройке см.:
- Найдите идентификатор своей учётной записи (Account ID)
- Создание API-токена
- Выполняйте вызовы API
- [Документация по Registrar API] (/api/resources/registrar)
Настройка аутентификации
Запросы к Cloudflare API используют авторизацию по Bearer-токену.
В терминале задайте переменные окружения для ID аккаунта и API-токена:
export ACCOUNT_ID="<YOUR_ACCOUNT_ID>"
export CLOUDFLARE_API_TOKEN="<YOUR_API_TOKEN>"Все запросы в этом руководстве используют базовый URL Cloudflare API v4:
https://api.cloudflare.com/client/v4/Бета-процесс
Процесс работы с бета-версией включает три основных шага:
- Найдите подходящие варианты доменных имён.
- Проверьте доступность и цену нужного домена в реальном времени.
- Зарегистрируйте домен.
Поиск полезен для подбора вариантов, но не является источником достоверных данных. Всегда обращайтесь к Check конечную точку непосредственно перед регистрацией, чтобы снизить вероятность ошибки в процессе регистрации.
Примеры запросов для агентов
Если вы используете Cloudflare MCP или другой сценарий на основе агентов, запрос может быть таким же простым, как:
Search for domains for a coffee shop based in Evergreen, Colorado.Find 5 available .com or .dev domains for an AI expense tracker.Check whether example.com is available and show me the current price.Check these domains and tell me which ones are registrable right now: example.com, example.dev, example.cafeRegister example.com on my Cloudflare account.
1. Поиск доменов
Используйте конечную точку Search, чтобы получить варианты доменных имён по ключевому слову, фразе или части доменного имени.
Результаты поиска:
- Работают быстро и предназначены для предварительного поиска.
- Основаны на кэшированных данных.
- Указывайте только расширения, поддерживаемые бета-версией API.
curl --request GET \
--url "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/registrar/domain-search?q=acme%20corp&limit=3" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Пример ответа:
{
"success": true,
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "acmecorp.com",
"registrable": true,
"tier": "standard",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
}
},
{
"name": "acmecorp.dev",
"registrable": true,
"tier": "standard",
"pricing": {
"currency": "USD",
"registration_cost": "10.11",
"renewal_cost": "10.11"
}
},
{
"name": "acmecorp.app",
"registrable": true,
"tier": "standard",
"pricing": {
"currency": "USD",
"registration_cost": "11.00",
"renewal_cost": "11.00"
}
}
]
}
}2. Проверка доступности и цены в реальном времени
Используйте конечную точку Check, чтобы проверить, доступен ли домен для регистрации, и узнать актуальную цену.
Результаты проверки:
- Прямой запрос к реестру.
- Отражает актуальное состояние реестра.
- Используйте непосредственно перед вызовом конечной точки регистрации.
- Ответы могут содержать
reasonполе, еслиregistrableэтоfalse.
Эта конечная точка принимает не более 20 доменов за один запрос.
curl --request POST \
--url "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/registrar/domain-check" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"domains": ["acmecorp.dev"]
}'Пример ответа:
{
"success": true,
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "acmecorp.dev",
"registrable": true,
"tier": "standard",
"pricing": {
"currency": "USD",
"registration_cost": "10.11",
"renewal_cost": "10.11"
}
}
]
}
}Если домен не удаётся зарегистрировать через API, в ответе указывается причина. Например:
{
"success": true,
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "mybrand.uk",
"registrable": false,
"reason": "extension_not_supported_via_api"
}
]
}
}Типичные reason значения включают:
domain_unavailableextension_not_supported_via_apiextension_not_supportedextension_disallows_registration
3. Регистрация домена
Используйте конечную точку Registration, чтобы запустить процесс регистрации домена.
Важно:
- Оплата за успешную регистрацию списывается с платёжного профиля по умолчанию.
- Стоимость регистрации не подлежит возврату после её успешного завершения.
- Всегда проверяйте имя домена и цену перед обращением к этой конечной точке.
Для самого простого запроса требуется только domain_name:
curl --request POST \
--url "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/registrar/registrations" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"domain_name": "acmecorp.dev"
}'В аккаунте должен быть настроен контакт регистранта по умолчанию. Если вы не передадите новый контакт непосредственно в запросе, API автоматически использует контакт по умолчанию. Чтобы зарегистрировать домен с другим контактом, укажите его в запросе.
Текущее поведение по умолчанию:
auto_renewпо умолчанию равноfalse.privacy_modeпо умолчанию равноredactionесли это поддерживается для TLD, в противном случаеoff.- Средства списываются автоматически со способа оплаты по умолчанию, указанного в аккаунте.
Чтобы переопределить контакт регистранта по умолчанию для одной регистрации, укажите его непосредственно в запросе:
curl --request POST \
--url "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/registrar/registrations" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{
"domain_name": "acmecorp.dev",
"contacts": {
"registrant": {
"email": "[email protected]",
"phone": "+1.5555555555",
"postal_info": {
"name": "Ada Lovelace",
"organization": "Example Inc",
"address": {
"street": "123 Main St",
"city": "Austin",
"state": "TX",
"postal_code": "78701",
"country_code": "US"
}
}
}
}
}'Пример успешного ответа:
{
"success": true,
"errors": [],
"messages": [],
"result": {
"domain_name": "acmecorp.dev",
"state": "succeeded",
"completed": true,
"created_at": "2025-10-27T10:00:00Z",
"updated_at": "2025-10-27T10:00:03Z",
"context": {
"registration": {
"domain_name": "acmecorp.dev",
"status": "active",
"created_at": "2025-10-27T10:00:00Z",
"expires_at": "2026-10-27T10:00:00Z",
"auto_renew": false,
"privacy_mode": "redaction",
"locked": true
}
},
"links": {
"self": "/accounts/abc/registrar/registrations/acmecorp.dev/registration-status",
"resource": "/accounts/abc/registrar/registrations/acmecorp.dev"
}
}
}Обработка ответов на регистрацию
По умолчанию конечная точка регистрации ждёт до 10 секунд, прежде чем отправить ответ.
Вы можете получить один из следующих вариантов:
201 Createdесли регистрация завершилась в течение периода ожидания.202 Acceptedесли регистрация всё ещё выполняется.
Чтобы принудительно включить немедленную асинхронную обработку, отправьте Prefer: respond-async.
Пример асинхронного запроса:
curl --request POST \
--url "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/registrar/registrations" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--header "Prefer: respond-async" \
--data '{
"domain_name": "acmecorp.dev"
}'Пример 202 Accepted ответ:
{
"success": true,
"errors": [],
"messages": [],
"result": {
"domain_name": "acmecorp.dev",
"state": "in_progress",
"completed": false,
"created_at": "2025-10-27T10:00:00Z",
"updated_at": "2025-10-27T10:00:10Z",
"links": {
"self": "/accounts/abc/registrar/registrations/acmecorp.dev/registration-status",
"resource": "/accounts/abc/registrar/registrations/acmecorp.dev"
}
}
}Опрос статуса регистрации
Если регистрация всё ещё выполняется, опрашивайте конечную точку статуса, пока процесс не завершится.
curl --request GET \
--url "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/registrar/registrations/acmecorp.dev/registration-status" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Пример ответа:
{
"success": true,
"errors": [],
"messages": [],
"result": {
"domain_name": "acmecorp.dev",
"state": "succeeded",
"completed": true,
"created_at": "2025-10-27T10:00:00Z",
"updated_at": "2025-10-27T10:00:03Z",
"context": {
"registration": {
"domain_name": "acmecorp.dev",
"status": "active",
"created_at": "2025-10-27T10:00:00Z",
"expires_at": "2026-10-27T10:00:00Z",
"auto_renew": false,
"privacy_mode": "redaction",
"locked": true
}
},
"links": {
"self": "/accounts/abc/registrar/registrations/acmecorp.dev/registration-status",
"resource": "/accounts/abc/registrar/registrations/acmecorp.dev"
}
}
}Возможные статусы обработки:
in_progresssucceededfailedaction_requiredblocked
Если процесс возвращает action_required, остановите опрос и покажите пользователю необходимое действие.
Если процесс возвращает failed, проверить error.code и error.message прежде чем повторить попытку.
Получение ресурса регистрации
После завершения регистрации получите ресурс регистрации напрямую:
curl --request GET \
--url "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/registrar/registrations/acmecorp.dev" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"Пример ответа:
{
"success": true,
"errors": [],
"messages": [],
"result": {
"domain_name": "acmecorp.dev",
"status": "active",
"created_at": "2025-10-27T10:00:00Z",
"expires_at": "2026-10-27T10:00:00Z",
"auto_renew": false,
"privacy_mode": "redaction",
"locked": true
}
}Ограничения бета-версии
Это первый бета-выпуск API Registrar.
Текущие ограничения:
- Через бета-версию API доступна лишь часть поддерживаемых расширений Cloudflare Registrar.
- Результаты поиска ограничены расширениями, поддерживаемыми API.
- Некоторые расширения, поддерживаемые в панели управления, пока недоступны для программной регистрации.
- Если это поддерживается, для регистрации премиальных доменов потребуется явное подтверждение дополнительной платы.
- Продление через API пока не поддерживается.
- Передача пока недоступна через API.
- Обновление контактных данных через API пока недоступно.
Если вы проверяете домен, который Cloudflare поддерживает в панели управления, но ещё не поддерживает в API, ответ Check возвращает extension_not_supported_via_api.
Эти основные функции Registrar появятся в будущих версиях API.
Добавьте здесь ссылку на список поддерживаемых расширений, когда он появится.
Следующие шаги
Если вы разрабатываете решения на основе бета-версии Registrar API, особенно для автоматизации, агентов или мультитенантных платформенных сценариев, поделитесь с нами отзывом.