---
title: Registrar
---

[Skip to content](#_top)

[API Reference](https://developers.cloudflare.com/api/go)

Copy Markdown

Open in **Claude**Open in **ChatGPT**Open in **Cursor**

---

**Copy Markdown****View as Markdown**

# Registrar

Registrar API for searching, checking, registering, and managing domains through Cloudflare Registrar.

## Prerequisites

Before using this API, ensure:

1. **Cloudflare account** — the caller must have a valid Cloudflare account.
2. **Billing profile** — the account must have a billing profile with a valid, current default payment method (credit card or other accepted method). This cannot be set up via API — the account owner must configure billing at `https://dash.cloudflare.com/{account_id}/billing/payment-info` before calling `POST /registrations`.
3. **API authentication** — use an API token or API key with the appropriate Registrar permissions for the operations you are calling.

## Terminology: domain extension

Throughout this API, “extension” refers to the domain extension part of a fully qualified domain name — the portion after the registrable label. For example, in `example.co.uk`, the extension is `co.uk` (not just `uk`). This covers both top-level domains like `com` and multi-level extensions like `co.uk`. This is distinct from other uses of the word “extension” (e.g., EPP extensions).

## Supported extensions

This API supports programmatic registration for all extensions supported by the dashboard experience, with the following exceptions:

`giving`, `mom`, `inc`, `lol`, `sh`, `link`, `cc`, `new`

Cloudflare Registrar supports 400+ extensions in the dashboard. Extensions listed above can be registered at `https://dash.cloudflare.com/{account_id}/domains/registrations`.

## Typical workflow

1. **Search** — call `GET /domain-search?q={keyword}` to discover available domains.
2. **Check** — call `POST /domain-check` with candidate domains to verify real-time availability and pricing.
3. **Review the response** — if `registrable: false`, inspect `reason` to understand whether the domain is unavailable, the extension is not supported by this API, the extension is not supported by Cloudflare Registrar at all, or the extension’s registry has frozen new registrations.
4. **Handle premium domains** — if `tier: premium`, premium registration is not currently supported by this API. Surface the premium pricing to the user, but do not proceed to `POST /registrations` for that domain.
5. **Observe the registration schema** — call `GET /extensions/:extension_name` to discover the required values for registering this extension.
6. **Register** — call `POST /registrations` with the chosen domain name for supported non-premium registrations.
7. **Confirm completion** — if the response is `201 Created`, registration completed within the default timeout and no polling is needed.
8. **Poll when needed** — if the response is `202 Accepted`, poll `links.self` from the workflow response.
9. **Stop for user action** — if `state: action_required`, stop polling and surface `context.action` to the user. The workflow will not resolve on its own.
10. **Continue when blocked** — if `state: blocked`, continue polling and inform the user that a third party, such as the extension registry or losing registrar, is delaying progress.
11. **Review failures before retrying** — if `state: failed`, review `error.code` and `error.message`, then decide whether user action or a new Check call is needed.

**All successful domain registrations are non-refundable.** Once the registration workflow completes with `state: succeeded`, the charge cannot be reversed. Confirm pricing and domain choice with the user before calling `POST /registrations`.

## Default behavior for mutating operations

By default, mutating operations such as create and update hold the connection for a bounded, server-defined amount of time while the operation completes. In most cases, the response contains a completed workflow status and no polling is required.

- **Completed within the synchronous wait window:** Returns `201` (create) or `200` (update) with a `workflow_status` where `state: succeeded` and `completed: true`.
- **Still processing after the synchronous wait window:** Returns `202 Accepted` with a `workflow_status` where `completed: false`. Use the `links.self` URL to poll for completion.

## Non-blocking mode

To receive an immediate `202 Accepted` response without waiting, send the `Prefer: respond-async` request header (RFC 7240). The server will acknowledge it with a `Preference-Applied: respond-async` response header.

## Polling

When the response is `202`, poll the workflow status endpoint indicated by `links.self` in the response body until the workflow reaches a terminal state or requires user action.

##### [Search for available domains](https://developers.cloudflare.com/api/go/resources/registrar/methods/search)

client.Registrar.Search(ctx, params) (\*[RegistrarSearchResponse](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20RegistrarSearchResponse%20%3E%20(schema)>), error)

GET/accounts/{account\_id}/registrar/domain-search

##### [Check domain availability](https://developers.cloudflare.com/api/go/resources/registrar/methods/check)

client.Registrar.Check(ctx, params) (\*[RegistrarCheckResponse](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20RegistrarCheckResponse%20%3E%20(schema)>), error)

POST/accounts/{account\_id}/registrar/domain-check

##### [Check domain transfer eligibility](https://developers.cloudflare.com/api/go/resources/registrar/methods/transfer_check)

client.Registrar.TransferCheck(ctx, params) (\*[RegistrarTransferCheckResponse](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20RegistrarTransferCheckResponse%20%3E%20(schema)>), error)

POST/accounts/{account\_id}/registrar/domain-transfer-check

##### ModelsExpand Collapse

<details>

<summary>

type Registration struct{…}

A domain registration resource representing the current state of a registered domain.

</summary>

AutoRenew bool

Whether automatic renewal occurs before expiration.

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20auto_renew">Link to this property</a>

CreatedAt Time

When the domain was registered. Present when the registration resource exists.

formatdate-time

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20created_at">Link to this property</a>

DomainName string

Provides a fully qualified domain name (FQDN), including the extension (e.g., <code>example.com</code>, <code>mybrand.app</code>). 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.

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20domain_name">Link to this property</a>

ExpiresAt Time

When the domain registration expires. Ready registrations include this value; only <code>registration_pending</code> and <code>transfer_pending</code> may return null.

formatdate-time

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20expires_at">Link to this property</a>

Locked bool

Whether the domain is locked for transfer.

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20locked">Link to this property</a>

<details>

<summary>

PrivacyMode RegistrationPrivacyMode

Current WHOIS privacy mode for the registration.

</summary>

One of the following:

const RegistrationPrivacyModeOff RegistrationPrivacyMode = "off"

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20privacy_mode%20%3E%20(member)%200">Link to this property</a>

const RegistrationPrivacyModeRedaction RegistrationPrivacyMode = "redaction"

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20privacy_mode%20%3E%20(member)%201">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20privacy_mode">Link to this property</a>

<details>

<summary>

Status RegistrationStatus

Current registration status.

- <code>active</code>: The domain operates with an active registration.
- <code>registration_pending</code>: Registration remains in progress.
- <code>transfer_pending</code>: Domain transfer is in progress.
- <code>expired</code>: The domain registration expired.
- <code>suspended</code>: The registry suspended the domain.
- <code>redemption_period</code>: The domain entered the redemption grace period.
- <code>pending_delete</code>: The registry scheduled the domain for deletion.

</summary>

One of the following:

const RegistrationStatusActive RegistrationStatus = "active"

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%200">Link to this property</a>

const RegistrationStatusRegistrationPending RegistrationStatus = "registration\_pending"

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%201">Link to this property</a>

const RegistrationStatusTransferPending RegistrationStatus = "transfer\_pending"

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%202">Link to this property</a>

const RegistrationStatusExpired RegistrationStatus = "expired"

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%203">Link to this property</a>

const RegistrationStatusSuspended RegistrationStatus = "suspended"

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%204">Link to this property</a>

const RegistrationStatusRedemptionPeriod RegistrationStatus = "redemption\_period"

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%205">Link to this property</a>

const RegistrationStatusPendingDelete RegistrationStatus = "pending\_delete"

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20status%20%3E%20(member)%206">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)%20%3E%20(property)%20status">Link to this property</a>

</details>

[Link to this property](<#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)>)

<details>

<summary>

type WorkflowStatus struct{…}

Status of an async registration workflow.

</summary>

Completed bool

Indicates whether the workflow reached a terminal state. A <code>succeeded</code> or <code>failed</code> state returns <code>true</code>; <code>pending</code>, <code>in_progress</code>, <code>action_required</code>, and <code>blocked</code> return <code>false</code>.

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20completed">Link to this property</a>

CreatedAt Time

formatdate-time

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20created_at">Link to this property</a>

<details>

<summary>

Links WorkflowStatusLinks

</summary>

Self string

URL to this status resource.

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20links%20%3E%20(property)%20self">Link to this property</a>

Resource stringOptional

URL to the domain resource.

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20links%20%3E%20(property)%20resource">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20links">Link to this property</a>

<details>

<summary>

State WorkflowStatusState

Describes the workflow lifecycle state.

- <code>pending</code>: The workflow awaits processing.
- <code>in_progress</code>: Processing started. Continue polling <code>links.self</code>. An internal deadline limits the duration of this state.
- <code>action_required</code>: The workflow pauses for user action. See <code>context.action</code> for details. Stop automated polling until the user completes the required action.
- <code>blocked</code>: A third party, such as the domain extension’s registry or a losing registrar, prevents progress. Continue polling because the block may resolve when the third party responds.
- <code>succeeded</code>: Terminal state. The operation completed successfully. <code>completed</code> equals <code>true</code>. For registrations, <code>context.registration</code> contains the resulting registration resource.
- <code>failed</code>: Terminal state. The operation failed. <code>completed</code> equals <code>true</code>. See <code>error.code</code> and <code>error.message</code> for the reason. Require user review before retrying.

</summary>

One of the following:

const WorkflowStatusStatePending WorkflowStatusState = "pending"

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%200">Link to this property</a>

const WorkflowStatusStateInProgress WorkflowStatusState = "in\_progress"

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%201">Link to this property</a>

const WorkflowStatusStateActionRequired WorkflowStatusState = "action\_required"

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%202">Link to this property</a>

const WorkflowStatusStateBlocked WorkflowStatusState = "blocked"

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%203">Link to this property</a>

const WorkflowStatusStateSucceeded WorkflowStatusState = "succeeded"

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%204">Link to this property</a>

const WorkflowStatusStateFailed WorkflowStatusState = "failed"

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20state%20%3E%20(member)%205">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20state">Link to this property</a>

UpdatedAt Time

formatdate-time

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20updated_at">Link to this property</a>

Context map\[string, unknown]Optional

Provides workflow-specific data.

For domain-centric workflows, <code>context.domain_name</code> identifies the workflow subject.

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20context">Link to this property</a>

<details>

<summary>

Error WorkflowStatusErrorOptional

Provides error details when a workflow reaches the <code>failed</code> state. The workflow type (registration, update, etc.) and underlying registry response determine the specific codes and messages. Workflow error codes differ from immediate HTTP error <code>errors[].code</code> values in non-2xx responses. Surface <code>error.message</code> to the user for context.

</summary>

Code string

Machine-readable error code identifying the failure reason.

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20error%20%3E%20(property)%20code">Link to this property</a>

Message string

Human-readable explanation of the failure. May include registry-specific details.

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20error%20%3E%20(property)%20message">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)%20%3E%20(property)%20error">Link to this property</a>

</details>

[Link to this property](<#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)>)

#### RegistrarDomains

##### [List domains](https://developers.cloudflare.com/api/go/resources/registrar/subresources/domains/methods/list)

Deprecated

client.Registrar.Domains.List(ctx, query) (\*SinglePage\[[Domain](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)>)], error)

GET/accounts/{account\_id}/registrar/domains

##### [Get domain](https://developers.cloudflare.com/api/go/resources/registrar/subresources/domains/methods/get)

Deprecated

client.Registrar.Domains.Get(ctx, domainName, query) (\*[DomainGetResponse](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar.domains%20%3E%20(model)%20DomainGetResponse%20%3E%20(schema)>), error)

GET/accounts/{account\_id}/registrar/domains/{domain\_name}

##### [Update domain](https://developers.cloudflare.com/api/go/resources/registrar/subresources/domains/methods/update)

Deprecated

client.Registrar.Domains.Update(ctx, domainName, params) (\*[DomainUpdateResponse](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar.domains%20%3E%20(model)%20DomainUpdateResponse%20%3E%20(schema)>), error)

PUT/accounts/{account\_id}/registrar/domains/{domain\_name}

##### ModelsExpand Collapse

<details>

<summary>

type Domain struct{…}

</summary>

ID stringOptional

Domain identifier.

maxLength32

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20id">Link to this property</a>

Available boolOptional

Shows if a domain is available for transferring into Cloudflare Registrar.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20available">Link to this property</a>

CanRegister boolOptional

Indicates eligibility to register the domain as a new domain.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20can_register">Link to this property</a>

CreatedAt TimeOptional

Shows time of creation.

formatdate-time

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20created_at">Link to this property</a>

CurrentRegistrar stringOptional

Shows name of current registrar.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20current_registrar">Link to this property</a>

ExpiresAt TimeOptional

Shows when domain name registration expires.

formatdate-time

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20expires_at">Link to this property</a>

Locked boolOptional

Shows whether a registrar lock is in place for a domain.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20locked">Link to this property</a>

<details>

<summary>

RegistrantContact DomainRegistrantContactOptional

Shows contact information for domain registrant.

</summary>

Address string

Address.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20address">Link to this property</a>

City string

City.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20city">Link to this property</a>

Country string

The country in which the user lives.

maxLength30

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20country">Link to this property</a>

FirstName string

User’s first name.

maxLength60

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20first_name">Link to this property</a>

LastName string

User’s last name.

maxLength60

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20last_name">Link to this property</a>

Organization string

Name of organization.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20organization">Link to this property</a>

Phone string

User’s telephone number.

maxLength20

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20phone">Link to this property</a>

State string

State.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20state">Link to this property</a>

Zip string

The zipcode or postal code where the user lives.

maxLength20

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20zip">Link to this property</a>

ID stringOptional

Contact Identifier.

maxLength32

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20id">Link to this property</a>

Address2 stringOptional

Optional address line for unit, floor, suite, etc.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20address2">Link to this property</a>

Email stringOptional

The contact email address of the user.

maxLength90

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20email">Link to this property</a>

Fax stringOptional

Contact fax number.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact%20%3E%20(property)%20fax">Link to this property</a>

</details>

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registrant_contact">Link to this property</a>

RegistryStatuses stringOptional

A comma-separated list of registry status codes. Refer to <a href="https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en">EPP Status Codes</a> for the full list.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20registry_statuses">Link to this property</a>

SupportedTLD boolOptional

Indicates whether Cloudflare Registrar currently supports a particular TLD. Refer to <a href="https://www.cloudflare.com/tld-policies/">TLD Policies</a> for a list of supported TLDs.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20supported_tld">Link to this property</a>

<details>

<summary>

TransferIn DomainTransferInOptional

Statuses for domain transfers into Cloudflare Registrar.

</summary>

<details>

<summary>

AcceptFoa DomainTransferInAcceptFoaOptional

Status of the registrant authorization step.

</summary>

One of the following:

const DomainTransferInAcceptFoaNeeded DomainTransferInAcceptFoa = "needed"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20accept_foa%20%3E%20(member)%200">Link to this property</a>

const DomainTransferInAcceptFoaOk DomainTransferInAcceptFoa = "ok"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20accept_foa%20%3E%20(member)%201">Link to this property</a>

</details>

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20accept_foa">Link to this property</a>

<details>

<summary>

ApproveTransfer DomainTransferInApproveTransferOptional

Status of the registry transfer-approval step.

</summary>

One of the following:

const DomainTransferInApproveTransferNeeded DomainTransferInApproveTransfer = "needed"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20approve_transfer%20%3E%20(member)%200">Link to this property</a>

const DomainTransferInApproveTransferOk DomainTransferInApproveTransfer = "ok"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20approve_transfer%20%3E%20(member)%201">Link to this property</a>

const DomainTransferInApproveTransferPending DomainTransferInApproveTransfer = "pending"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20approve_transfer%20%3E%20(member)%202">Link to this property</a>

const DomainTransferInApproveTransferTrying DomainTransferInApproveTransfer = "trying"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20approve_transfer%20%3E%20(member)%203">Link to this property</a>

const DomainTransferInApproveTransferRejected DomainTransferInApproveTransfer = "rejected"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20approve_transfer%20%3E%20(member)%204">Link to this property</a>

const DomainTransferInApproveTransferUnknown DomainTransferInApproveTransfer = "unknown"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20approve_transfer%20%3E%20(member)%205">Link to this property</a>

</details>

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20approve_transfer">Link to this property</a>

CanCancelTransfer boolOptional

Indicates if cancellation is still possible.

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20can_cancel_transfer">Link to this property</a>

<details>

<summary>

DisablePrivacy DomainTransferInDisablePrivacyOptional

Status of the privacy-guard disabling step at the foreign registrar.

</summary>

One of the following:

const DomainTransferInDisablePrivacyNeeded DomainTransferInDisablePrivacy = "needed"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20disable_privacy%20%3E%20(member)%200">Link to this property</a>

const DomainTransferInDisablePrivacyOk DomainTransferInDisablePrivacy = "ok"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20disable_privacy%20%3E%20(member)%201">Link to this property</a>

const DomainTransferInDisablePrivacyUnknown DomainTransferInDisablePrivacy = "unknown"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20disable_privacy%20%3E%20(member)%202">Link to this property</a>

</details>

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20disable_privacy">Link to this property</a>

<details>

<summary>

EnterAuthCode DomainTransferInEnterAuthCodeOptional

Status of the auth-code entry and verification step.

</summary>

One of the following:

const DomainTransferInEnterAuthCodeNeeded DomainTransferInEnterAuthCode = "needed"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20enter_auth_code%20%3E%20(member)%200">Link to this property</a>

const DomainTransferInEnterAuthCodeOk DomainTransferInEnterAuthCode = "ok"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20enter_auth_code%20%3E%20(member)%201">Link to this property</a>

const DomainTransferInEnterAuthCodePending DomainTransferInEnterAuthCode = "pending"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20enter_auth_code%20%3E%20(member)%202">Link to this property</a>

const DomainTransferInEnterAuthCodeTrying DomainTransferInEnterAuthCode = "trying"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20enter_auth_code%20%3E%20(member)%203">Link to this property</a>

const DomainTransferInEnterAuthCodeRejected DomainTransferInEnterAuthCode = "rejected"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20enter_auth_code%20%3E%20(member)%204">Link to this property</a>

</details>

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20enter_auth_code">Link to this property</a>

<details>

<summary>

UnlockDomain DomainTransferInUnlockDomainOptional

Status of the domain-unlock step at the foreign registrar.

</summary>

One of the following:

const DomainTransferInUnlockDomainNeeded DomainTransferInUnlockDomain = "needed"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20unlock_domain%20%3E%20(member)%200">Link to this property</a>

const DomainTransferInUnlockDomainOk DomainTransferInUnlockDomain = "ok"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20unlock_domain%20%3E%20(member)%201">Link to this property</a>

const DomainTransferInUnlockDomainPending DomainTransferInUnlockDomain = "pending"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20unlock_domain%20%3E%20(member)%202">Link to this property</a>

const DomainTransferInUnlockDomainTrying DomainTransferInUnlockDomain = "trying"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20unlock_domain%20%3E%20(member)%203">Link to this property</a>

const DomainTransferInUnlockDomainUnknown DomainTransferInUnlockDomain = "unknown"

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20unlock_domain%20%3E%20(member)%204">Link to this property</a>

</details>

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in%20%3E%20(property)%20unlock_domain">Link to this property</a>

</details>

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20transfer_in">Link to this property</a>

UpdatedAt TimeOptional

Last updated.

formatdate-time

<a href="#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)%20%3E%20(property)%20updated_at">Link to this property</a>

</details>

[Link to this property](<#(resource)%20registrar.domains%20%3E%20(model)%20domain%20%3E%20(schema)>)

#### RegistrarRegistrations

##### [Create Registration](https://developers.cloudflare.com/api/go/resources/registrar/subresources/registrations/methods/create)

client.Registrar.Registrations.New(ctx, params) (\*[WorkflowStatus](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)>), error)

POST/accounts/{account\_id}/registrar/registrations

##### [List Registrations](https://developers.cloudflare.com/api/go/resources/registrar/subresources/registrations/methods/list)

client.Registrar.Registrations.List(ctx, params) (\*CursorPagination\[[Registration](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)>)], error)

GET/accounts/{account\_id}/registrar/registrations

##### [Get Registration](https://developers.cloudflare.com/api/go/resources/registrar/subresources/registrations/methods/get)

client.Registrar.Registrations.Get(ctx, domainName, query) (\*[Registration](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20registration%20%3E%20(schema)>), error)

GET/accounts/{account\_id}/registrar/registrations/{domain\_name}

##### [Update Registration](https://developers.cloudflare.com/api/go/resources/registrar/subresources/registrations/methods/edit)

client.Registrar.Registrations.Edit(ctx, domainName, params) (\*[WorkflowStatus](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)>), error)

PATCH/accounts/{account\_id}/registrar/registrations/{domain\_name}

#### RegistrarRegistration Status

##### [Get Registration Status](https://developers.cloudflare.com/api/go/resources/registrar/subresources/registration_status/methods/get)

client.Registrar.RegistrationStatus.Get(ctx, domainName, query) (\*[WorkflowStatus](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)>), error)

GET/accounts/{account\_id}/registrar/registrations/{domain\_name}/registration-status

#### RegistrarUpdate Status

##### [Get Update Status](https://developers.cloudflare.com/api/go/resources/registrar/subresources/update_status/methods/get)

client.Registrar.UpdateStatus.Get(ctx, domainName, query) (\*[WorkflowStatus](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)>), error)

GET/accounts/{account\_id}/registrar/registrations/{domain\_name}/update-status

#### RegistrarExtensions

##### [List extensions](https://developers.cloudflare.com/api/go/resources/registrar/subresources/extensions/methods/list)

client.Registrar.Extensions.List(ctx, params) (\*CursorPagination\[[ExtensionListResponse](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar.extensions%20%3E%20(model)%20ExtensionListResponse%20%3E%20(schema)>)], error)

GET/accounts/{account\_id}/registrar/extensions

##### [Get extension](https://developers.cloudflare.com/api/go/resources/registrar/subresources/extensions/methods/get)

client.Registrar.Extensions.Get(ctx, extension, query) (\*[ExtensionGetResponse](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar.extensions%20%3E%20(model)%20ExtensionGetResponse%20%3E%20(schema)>), error)

GET/accounts/{account\_id}/registrar/extensions/{extension}

#### RegistrarTransfer In

##### [Initiate Transfer](https://developers.cloudflare.com/api/go/resources/registrar/subresources/transfer_in/methods/create)

client.Registrar.TransferIn.New(ctx, domainName, params) (\*[WorkflowStatus](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)>), error)

POST/accounts/{account\_id}/registrar/registrations/{domain\_name}/transfer-in

#### RegistrarTransfer In Status

##### [Get Transfer Status](https://developers.cloudflare.com/api/go/resources/registrar/subresources/transfer_in_status/methods/get)

client.Registrar.TransferInStatus.Get(ctx, domainName, query) (\*[WorkflowStatus](<https://developers.cloudflare.com/api/go/resources/registrar#(resource)%20registrar%20%3E%20(model)%20workflow_status%20%3E%20(schema)>), error)

GET/accounts/{account\_id}/registrar/registrations/{domain\_name}/transfer-in-status