Registrar
Search for available domains
Check domain availability
ModelsExpand Collapse
Registration { auto_renew, created_at, domain_name, 4 more } A domain registration resource representing the current state of a registered domain.
A domain registration resource representing the current state of a registered domain.
When the domain was registered. Present when the registration resource exists.
Fully 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.
When the domain registration expires. Present when the registration is ready; may be null only while status is registration_pending.
status: "active" | "registration_pending" | "expired" | 3 moreCurrent 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
Current registration status.
active: Domain is registered and operationalregistration_pending: Registration is in progressexpired: Domain has expiredsuspended: Domain is suspended by the registryredemption_period: Domain is in the redemption grace periodpending_delete: Domain is pending deletion by the registry
WorkflowStatus { completed, created_at, links, 4 more } Status of an async registration workflow.
Status of an async registration workflow.
Whether the workflow has reached a terminal state. true when
state is succeeded or failed. false for pending,
in_progress, action_required, and blocked.
state: "pending" | "in_progress" | "action_required" | 3 moreWorkflow lifecycle state.
pending: Workflow has been created but not yet started processing.
in_progress: Actively processing. Continue polling links.self.
The workflow has an internal deadline and will not remain in this
state indefinitely.
action_required: Paused — requires action by the user (not the
system). See context.action for what is needed. An automated
polling loop must break on this state; it will not resolve on its
own without user intervention.
blocked: The workflow cannot make progress due to a third party
such as the domain extension’s registry or a losing registrar.
No user action will help. Continue polling — the block may resolve
when the third party responds.
succeeded: Terminal. The operation completed successfully.
completed will be true. For registrations, context.registration
contains the resulting registration resource.
failed: Terminal. The operation failed. completed will be true.
See error.code and error.message for the reason. Do not
auto-retry without user review.
Workflow lifecycle state.
pending: Workflow has been created but not yet started processing.in_progress: Actively processing. Continue pollinglinks.self. The workflow has an internal deadline and will not remain in this state indefinitely.action_required: Paused — requires action by the user (not the system). Seecontext.actionfor what is needed. An automated polling loop must break on this state; it will not resolve on its own without user intervention.blocked: The workflow cannot make progress due to a third party such as the domain extension’s registry or a losing registrar. No user action will help. Continue polling — the block may resolve when the third party responds.succeeded: Terminal. The operation completed successfully.completedwill betrue. For registrations,context.registrationcontains the resulting registration resource.failed: Terminal. The operation failed.completedwill betrue. Seeerror.codeanderror.messagefor the reason. Do not auto-retry without user review.
Workflow-specific data for this workflow.
The workflow subject is identified by context.domain_name for
domain-centric workflows.
error?: Error | nullError details when a workflow reaches the failed state. The specific
error codes and messages depend on the workflow type (registration,
update, etc.) and the underlying registry response. These workflow
error codes are separate from immediate HTTP error errors[].code
values returned by non-2xx responses. Surface
error.message to the user for context.
Error details when a workflow reaches the failed state. The specific
error codes and messages depend on the workflow type (registration,
update, etc.) and the underlying registry response. These workflow
error codes are separate from immediate HTTP error errors[].code
values returned by non-2xx responses. Surface
error.message to the user for context.
RegistrarSearchResponse { domains } Contains the search results.
Contains the search results.
domains: Array<Domain>Array of domain suggestions sorted by relevance. May be empty if no domains match the search criteria.
Array of domain suggestions sorted by relevance. May be empty if no domains match the search criteria.
The fully qualified domain name (FQDN) in punycode format for internationalized domain names (IDNs).
Indicates whether this domain appears available based on search data. Search results are non-authoritative and may be stale. - true: The domain appears available. Use POST /domain-check to confirm before registration.
false: The domain does not appear available in search results.
pricing?: Pricing { currency, registration_cost, renewal_cost } Annual pricing information for a registrable domain. This object is only
present when registrable is true. All prices are per year and returned
as strings to preserve decimal precision.
registration_cost and renewal_cost are frequently the same value, but
may differ — especially for premium domains where registries set different
rates for initial registration vs. renewal. For a multi-year registration
(e.g., 4 years), the first year is charged at registration_cost and each
subsequent year at renewal_cost. Registry pricing may change over time;
the values returned here reflect the current registry rate. Premium pricing
may be surfaced by Search and Check, but premium registration is not currently
supported by this API.
Annual pricing information for a registrable domain. This object is only
present when registrable is true. All prices are per year and returned
as strings to preserve decimal precision.
registration_cost and renewal_cost are frequently the same value, but
may differ — especially for premium domains where registries set different
rates for initial registration vs. renewal. For a multi-year registration
(e.g., 4 years), the first year is charged at registration_cost and each
subsequent year at renewal_cost. Registry pricing may change over time;
the values returned here reflect the current registry rate. Premium pricing
may be surfaced by Search and Check, but premium registration is not currently
supported by this API.
The first-year cost to register this domain. For premium domains
(tier: premium), this price is set by the registry and may be
significantly higher than standard pricing. For multi-year
registrations, this cost applies to the first year only; subsequent
years are charged at renewal_cost.
Per-year renewal cost for this domain. Applied to each year beyond
the first year of a multi-year registration, and to each annual
auto-renewal thereafter. May differ from registration_cost,
especially for premium domains where initial registration often
costs more than renewals.
reason?: "extension_not_supported_via_api" | "extension_not_supported" | "extension_disallows_registration" | 2 morePresent only when registrable is false on search results. Explains why the domain does not appear registrable through this API. These values are advisory; use POST /domain-check for authoritative status.
extension_not_supported_via_api: Cloudflare Registrar supports this extension in the dashboard but it is not yet available for programmatic registration via this API.
extension_not_supported: This extension is not supported by Cloudflare Registrar at all.
extension_disallows_registration: The extension’s registry has temporarily or permanently frozen new registrations.
domain_premium: The domain is premium priced. Premium registration is not currently supported by this API.
domain_unavailable: The domain appears unavailable.
Present only when registrable is false on search results. Explains why the domain does not appear registrable through this API. These values are advisory; use POST /domain-check for authoritative status.
extension_not_supported_via_api: Cloudflare Registrar supports this extension in the dashboard but it is not yet available for programmatic registration via this API.extension_not_supported: This extension is not supported by Cloudflare Registrar at all.extension_disallows_registration: The extension’s registry has temporarily or permanently frozen new registrations.domain_premium: The domain is premium priced. Premium registration is not currently supported by this API.domain_unavailable: The domain appears unavailable.
RegistrarCheckResponse { domains } Contains the availability check results.
Contains the availability check results.
domains: Array<Domain>Array of domain availability results. Domains on unsupported
extensions are included with registrable: false and a reason
field. Malformed domain names may be omitted.
Array of domain availability results. Domains on unsupported
extensions are included with registrable: false and a reason
field. Malformed domain names may be omitted.
The fully qualified domain name (FQDN) in punycode format for internationalized domain names (IDNs).
Indicates whether this domain can be registered programmatically through this API based on a real-time registry check.
true: Domain is available for registration. Thepricingobject will be included.false: Domain is not available. See thereasonfield for why.tiermay still be present on some non-registrable results, such as premium domains.
pricing?: Pricing { currency, registration_cost, renewal_cost } Annual pricing information for a registrable domain. This object is only
present when registrable is true. All prices are per year and returned
as strings to preserve decimal precision.
registration_cost and renewal_cost are frequently the same value, but
may differ — especially for premium domains where registries set different
rates for initial registration vs. renewal. For a multi-year registration
(e.g., 4 years), the first year is charged at registration_cost and each
subsequent year at renewal_cost. Registry pricing may change over time;
the values returned here reflect the current registry rate. Premium pricing
may be surfaced by Search and Check, but premium registration is not currently
supported by this API.
Annual pricing information for a registrable domain. This object is only
present when registrable is true. All prices are per year and returned
as strings to preserve decimal precision.
registration_cost and renewal_cost are frequently the same value, but
may differ — especially for premium domains where registries set different
rates for initial registration vs. renewal. For a multi-year registration
(e.g., 4 years), the first year is charged at registration_cost and each
subsequent year at renewal_cost. Registry pricing may change over time;
the values returned here reflect the current registry rate. Premium pricing
may be surfaced by Search and Check, but premium registration is not currently
supported by this API.
The first-year cost to register this domain. For premium domains
(tier: premium), this price is set by the registry and may be
significantly higher than standard pricing. For multi-year
registrations, this cost applies to the first year only; subsequent
years are charged at renewal_cost.
Per-year renewal cost for this domain. Applied to each year beyond
the first year of a multi-year registration, and to each annual
auto-renewal thereafter. May differ from registration_cost,
especially for premium domains where initial registration often
costs more than renewals.
reason?: "extension_not_supported_via_api" | "extension_not_supported" | "extension_disallows_registration" | 2 morePresent only when registrable is false. Explains why the domain cannot be registered via this API.
extension_not_supported_via_api: Cloudflare Registrar supports this extension in the dashboard but it is not yet available for programmatic registration via this API. The user can register via https://dash.cloudflare.com/{account_id}/domains/registrations.
extension_not_supported: This extension is not supported by Cloudflare Registrar at all.
extension_disallows_registration: The extension’s registry has temporarily or permanently frozen new registrations. No registrar can register domains on this extension at this time.
domain_premium: The domain is premium priced. Premium registration is not currently supported by this API.
domain_unavailable: The domain is already registered, reserved, or otherwise not available on a supported extension.
Present only when registrable is false. Explains why the domain cannot be registered via this API.
extension_not_supported_via_api: Cloudflare Registrar supports this extension in the dashboard but it is not yet available for programmatic registration via this API. The user can register viahttps://dash.cloudflare.com/{account_id}/domains/registrations.extension_not_supported: This extension is not supported by Cloudflare Registrar at all.extension_disallows_registration: The extension’s registry has temporarily or permanently frozen new registrations. No registrar can register domains on this extension at this time.domain_premium: The domain is premium priced. Premium registration is not currently supported by this API.domain_unavailable: The domain is already registered, reserved, or otherwise not available on a supported extension.
RegistrarDomains
List domains
Get domain
Update domain
ModelsExpand Collapse
Domain { id, available, can_register, 9 more }
registrant_contact?: RegistrantContact { address, city, country, 10 more } Shows contact information for domain registrant.
Shows contact information for domain registrant.
A comma-separated list of registry status codes. A full list of status codes can be found at EPP Status Codes.
Whether a particular TLD is currently supported by Cloudflare Registrar. Refer to TLD Policies for a list of supported TLDs.
transfer_in?: TransferIn { accept_foa, approve_transfer, can_cancel_transfer, 3 more } Statuses for domain transfers into Cloudflare Registrar.
Statuses for domain transfers into Cloudflare Registrar.