POST /accounts/{account_id}/registrar-sandbox/registrations

Starts a domain registration workflow.

Prerequisites

Defaults

Premium domains

Premium domain registration is not currently supported by this API. If POST /domain-check returns tier: premium, do not call this endpoint for that domain.

Response behavior

By default, the server holds the connection for a bounded, server-defined amount of time while the registration completes. Most registrations finish within this window and return 201 Created with a completed workflow status.

If the registration is still processing after this synchronous wait window, the server returns 202 Accepted. Poll the URL in links.self to track progress.

To skip the wait and receive an immediate 202, send Prefer: respond-async.

Servers

Path parameters

Name Type Required Description
account_id String Yes

Cloudflare account ID. Required for all Registrar API operations.

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Prefer String No

Set to respond-async to receive an immediate 202 Accepted without waiting for the operation to complete (RFC 7240).

The header may be combined with other preferences using standard comma-separated syntax.

Request body fields

Name Type Required Description
privacy_mode String No

Sets the WHOIS privacy mode for the registration. Defaults to redaction.

  • off: Disables WHOIS privacy.
  • redaction: Requests WHOIS redaction where the extension supports it. Some extensions exclude privacy and redaction.

Valid values:

  • "redaction"
  • "false"

Default value: "redaction"

years Integer No

Sets the registration term from 1 to 10 years. When omitted, this field defaults to the registry's minimum registration period for the extension. Most extensions require 1 year, while some require longer minimum terms (e.g., .ai requires 2 years).

Each registry may also enforce its own maximum registration term. A request above that maximum fails. When uncertain, omit this field to use the default.

contacts Object No

Provides contact data for the registration request.

The per-extension schema from GET /accounts/{account_id}/registrar/extensions/{extension} defines the accepted contact roles. Every currently supported extension requires only contacts.registrant from API callers. Callers may provide additional roles such as technical, administrator, and billing when the extension schema includes them. When a registry requires an omitted role, Cloudflare may derive that contact from contacts.registrant.

When the request omits either the entire contacts object or contacts.registrant, the system uses the account's default address book entry as the registrant contact. The account owner must configure this default at https://dash.cloudflare.com/{account_id}/domains/registrations, where they can create or update the address book entry and accept the required agreement. Dashboard settings currently provide the only way to manage address book entries.

Without either a default address book entry or a registrant contact, the registration request fails validation.

auto_renew Boolean No

Enable or disable automatic renewal. Defaults to false if omitted. Setting this field to true is an explicit opt-in authorizing Cloudflare to charge the account's default payment method up to 30 days before domain expiry to renew the domain automatically. Renewal pricing may change over time based on registry pricing.

Default value: false

contact_extensions Object No

Provides registry-specific contact extension values for the registrant. GET /accounts/{account_id}/registrar/extensions/{extension} identifies the required keys and allowed values for each extension in the registration_schema.properties.contact_extensions object.

Examples include .us nexus fields, .uk registrant type fields, and .ca legal type fields. Omit this object when the extension's registration schema excludes contact_extensions.

acknowledgements Object No

Provides user acknowledgements for a specific extension or premium registration flow. The extension registration schema from the extension discovery endpoint identifies the required keys.

domain_name String Yes

Provides a fully qualified domain name (FQDN), including the extension (e.g., example.com, mybrand.app). The domain name uniquely identifies a registration. Cloudflare permits only one registration per domain, making the domain name a natural idempotency key for registration requests.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.