Skip to main content

registrations

Creates, updates, deletes, gets or lists a registrations resource.

Overview

Nameregistrations
TypeResource
Idcloudflare.registrar.registrations

Fields

The following fields are returned by SELECT queries:

Registration details.

NameDatatypeDescription
domain_namestringFully qualified domain name (FQDN) including the extension (e.g., example.com, mybrand.app). The domain name uniquely identifies a registration — the same domain cannot be registered twice, making it a natural idempotency key for registration requests. (example: example.com)
auto_renewbooleanWhether the domain will be automatically renewed before expiration.
created_atstring (date-time)When the domain was registered. Present when the registration resource exists. (example: 2025-01-15T10:00:00Z)
expires_atstring (date-time)When the domain registration expires. Present when the registration is ready; may be null only while status is registration_pending. (example: 2026-01-15T10:00:00Z)
lockedbooleanWhether the domain is locked for transfer.
privacy_modestringCurrent WHOIS privacy mode for the registration. (false, redaction) (example: redaction)
statusstringCurrent registration status. - active: Domain is registered and operational - registration_pending: Registration is in progress - expired: Domain has expired - suspended: Domain is suspended by the registry - redemption_period: Domain is in the redemption grace period - pending_delete: Domain is pending deletion by the registry (active, registration_pending, expired, suspended, redemption_period, pending_delete) (example: active)

Methods

The following methods are available for this resource:

NameAccessible byRequired ParamsOptional ParamsDescription
getselectaccount_id, domain_nameReturns the current state of a domain registration. This is the canonical read endpoint for a domain you own. It returns the full registration resource including current settings and expiration. When the registration resource is ready, both created_at and expires_at are present in the response.
listselectaccount_idcursor, per_page, direction, sort_byReturns a paginated list of domain registrations owned by the account. This endpoint uses cursor-based pagination. Results are ordered by registration date by default. To fetch the next page, pass the cursor value from the result_info object in the response as the cursor query parameter in your next request. An empty cursor string indicates there are no more pages.
createinsertaccount_id, domain_namePreferStarts a domain registration workflow. This is a billable operation — successful registration charges the account's default payment method. All successful domain registrations are non-refundable — once the workflow completes with state: succeeded, the charge cannot be reversed. Prerequisites: - The account must have a billing profile with a valid default payment method. Set this up at https://dash.cloudflare.com/{account_id}/billing/payment-info. - The account must not already be at the maximum supported domain limit. A single account may own up to 100 domains in total across registrations created through either the dashboard or this API. - The domain must be on a supported extension for programmatic registration. - Use POST /domain-check immediately before calling this endpoint to confirm real-time availability and pricing. Supported extensions: In this API, "extension" means the full registrable suffix after the domain label. For example, in example.co.uk, the extension is co.uk. Programmatic registration is currently supported for: com, org, net, app, dev, cc, xyz, info, cloud, studio, live, link, pro, tech, fyi, shop, online, tools, run, games, build, systems, world, news, site, network, chat, space, family, page, life, group, email, solutions, day, blog, ing, icu, academy, today Cloudflare Registrar supports 400+ extensions in the dashboard. Extensions not listed above can still be registered at https://dash.cloudflare.com/{account_id}/domains/registrations. Express mode: The only required field is domain_name. If contacts is omitted, the system uses the account's default address book entry as the registrant. If no default exists and no contact is provided, the request fails. Set up a default address book entry and accept the required agreement at https://dash.cloudflare.com/{account_id}/domains/registrations. Defaults: - years: defaults to the extension's minimum registration period (1 year for most extensions, but varies — for example, .ai (if supported) requires a minimum of 2 years). - auto_renew: defaults to false. Setting it 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 registration. Renewal pricing may change over time based on registry pricing. - privacy_mode: defaults to redaction. 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.
editupdateaccount_id, domain_namePreferUpdates an existing domain registration. By default, the server holds the connection for a bounded, server-defined amount of time while the update completes. Most updates finish within this window and return 200 OK with a completed workflow status. If the update 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. This endpoint currently supports updating auto_renew only.

Parameters

Parameters can be passed in the WHERE clause of a query. Check the Methods section to see which parameters are required or optional for each operation.

NameDatatypeDescription
account_idstringThe Cloudflare account ID.
domain_namestringDomain name to update.
PreferstringSet to respond-async to receive an immediate 202 Accepted without waiting for the operation to complete (RFC 7240).
cursorstringOpaque token from a previous response's result_info.cursor. Pass this value to fetch the next page of results. Omit (or pass an empty string) for the first page.
directionstringSort direction for results. Defaults to ascending order.
per_pageintegerNumber of items to return per page.
sort_bystringColumn to sort results by. Defaults to registration date (registry_created_at) when omitted.

SELECT examples

Returns the current state of a domain registration. This is the canonical read endpoint for a domain you own. It returns the full registration resource including current settings and expiration. When the registration resource is ready, both created_at and expires_at are present in the response.

SELECT
domain_name,
auto_renew,
created_at,
expires_at,
locked,
privacy_mode,
status
FROM cloudflare.registrar.registrations
WHERE account_id = '{{ account_id }}' -- required
AND domain_name = '{{ domain_name }}' -- required
;

INSERT examples

Starts a domain registration workflow. This is a billable operation — successful registration charges the account's default payment method. All successful domain registrations are non-refundable — once the workflow completes with state: succeeded, the charge cannot be reversed. Prerequisites: - The account must have a billing profile with a valid default payment method. Set this up at https://dash.cloudflare.com/{account_id}/billing/payment-info. - The account must not already be at the maximum supported domain limit. A single account may own up to 100 domains in total across registrations created through either the dashboard or this API. - The domain must be on a supported extension for programmatic registration. - Use POST /domain-check immediately before calling this endpoint to confirm real-time availability and pricing. Supported extensions: In this API, "extension" means the full registrable suffix after the domain label. For example, in example.co.uk, the extension is co.uk. Programmatic registration is currently supported for: com, org, net, app, dev, cc, xyz, info, cloud, studio, live, link, pro, tech, fyi, shop, online, tools, run, games, build, systems, world, news, site, network, chat, space, family, page, life, group, email, solutions, day, blog, ing, icu, academy, today Cloudflare Registrar supports 400+ extensions in the dashboard. Extensions not listed above can still be registered at https://dash.cloudflare.com/{account_id}/domains/registrations. Express mode: The only required field is domain_name. If contacts is omitted, the system uses the account's default address book entry as the registrant. If no default exists and no contact is provided, the request fails. Set up a default address book entry and accept the required agreement at https://dash.cloudflare.com/{account_id}/domains/registrations. Defaults: - years: defaults to the extension's minimum registration period (1 year for most extensions, but varies — for example, .ai (if supported) requires a minimum of 2 years). - auto_renew: defaults to false. Setting it 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 registration. Renewal pricing may change over time based on registry pricing. - privacy_mode: defaults to redaction. 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.

INSERT INTO cloudflare.registrar.registrations (
auto_renew,
contacts,
domain_name,
privacy_mode,
years,
account_id,
Prefer
)
SELECT
{{ auto_renew }},
'{{ contacts }}',
'{{ domain_name }}' /* required */,
'{{ privacy_mode }}',
{{ years }},
'{{ account_id }}',
'{{ Prefer }}'
RETURNING
errors,
messages,
result,
success
;

UPDATE examples

Updates an existing domain registration. By default, the server holds the connection for a bounded, server-defined amount of time while the update completes. Most updates finish within this window and return 200 OK with a completed workflow status. If the update 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. This endpoint currently supports updating auto_renew only.

UPDATE cloudflare.registrar.registrations
SET
auto_renew = {{ auto_renew }}
WHERE
account_id = '{{ account_id }}' --required
AND domain_name = '{{ domain_name }}' --required
AND Prefer = '{{ Prefer}}'
RETURNING
errors,
messages,
result,
success;