---
title: Registrations
---

[Skip to content](#%5Ftop) 

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

[Registrar Sandbox](https://developers.cloudflare.com/api/typescript/resources/registrar%5Fsandbox)

Copy Markdown

Open in **Claude**

Open in **ChatGPT**

Open in **Cursor**

---

**Copy Markdown**

**View as Markdown**

# Registrations

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

client.registrarSandbox.registrations.create(RegistrationCreateParams { account\_id, domain\_name, acknowledgements, 6 more } params, RequestOptionsoptions?): [RegistrationCreateResponse](https://developers.cloudflare.com/api/typescript/resources/registrar%5Fsandbox#%28resource%29%20registrar%5Fsandbox.registrations%20%3E%20%28model%29%20registration%5Fcreate%5Fresponse%20%3E%20%28schema%29) { completed, created\_at, links, 4 more } 

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

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

client.registrarSandbox.registrations.list(RegistrationListParams { account\_id, cursor, direction, 2 more } params, RequestOptionsoptions?): CursorPagination<[RegistrationListResponse](https://developers.cloudflare.com/api/typescript/resources/registrar%5Fsandbox#%28resource%29%20registrar%5Fsandbox.registrations%20%3E%20%28model%29%20registration%5Flist%5Fresponse%20%3E%20%28schema%29) { auto\_renew, created\_at, domain\_name, 4 more } \>

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

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

client.registrarSandbox.registrations.get(stringdomainName, RegistrationGetParams { account\_id } params, RequestOptionsoptions?): [RegistrationGetResponse](https://developers.cloudflare.com/api/typescript/resources/registrar%5Fsandbox#%28resource%29%20registrar%5Fsandbox.registrations%20%3E%20%28model%29%20registration%5Fget%5Fresponse%20%3E%20%28schema%29) { auto\_renew, created\_at, domain\_name, 4 more } 

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

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

client.registrarSandbox.registrations.edit(stringdomainName, RegistrationEditParams { account\_id, auto\_renew, Prefer } params, RequestOptionsoptions?): [RegistrationEditResponse](https://developers.cloudflare.com/api/typescript/resources/registrar%5Fsandbox#%28resource%29%20registrar%5Fsandbox.registrations%20%3E%20%28model%29%20registration%5Fedit%5Fresponse%20%3E%20%28schema%29) { completed, created\_at, links, 4 more } 

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

##### ModelsExpand Collapse 

RegistrationCreateResponse { completed, created\_at, links, 4 more } 

Status of an async registration workflow.

completed: boolean

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

created\_at: string

formatdate-time

links: Links { self, resource } 

self: string

URL to this status resource.

resource?: string

URL to the domain resource.

state: "pending" | "in\_progress" | "action\_required" | 3 more

Describes the workflow lifecycle state.

* `pending`: The workflow awaits processing.
* `in_progress`: Processing started. Continue polling `links.self`. An internal deadline limits the duration of this state.
* `action_required`: The workflow pauses for user action. See `context.action` for details. Stop automated polling until the user completes the required action.
* `blocked`: 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.
* `succeeded`: Terminal state. The operation completed successfully. `completed` equals `true`. For registrations, `context.registration` contains the resulting registration resource.
* `failed`: Terminal state. The operation failed. `completed` equals `true`. See `error.code` and `error.message` for the reason. Require user review before retrying.

One of the following:

"pending"

"in\_progress"

"action\_required"

"blocked"

"succeeded"

"failed"

updated\_at: string

formatdate-time

context?: Record<string, unknown\>

Provides workflow-specific data.

For domain-centric workflows, `context.domain_name` identifies the workflow subject.

error?: Error | null

Provides error details when a workflow reaches the `failed` 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 `errors[].code` values in non-2xx responses. Surface `error.message` to the user for context.

code: string

Machine-readable error code identifying the failure reason.

message: string

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

RegistrationListResponse { auto\_renew, created\_at, domain\_name, 4 more } 

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

auto\_renew: boolean

Whether automatic renewal occurs before expiration.

created\_at: string

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

formatdate-time

domain\_name: string

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.

expires\_at: string | null

When the domain registration expires. Ready registrations include this value; only `registration_pending` may return null.

formatdate-time

locked: boolean

Whether the domain is locked for transfer.

privacy\_mode: "off" | "redaction"

Current WHOIS privacy mode for the registration.

One of the following:

"off"

"redaction"

status: "active" | "registration\_pending" | "expired" | 3 more

Current registration status.

* `active`: The domain operates with an active registration.
* `registration_pending`: Registration remains in progress.
* `expired`: The domain registration expired.
* `suspended`: The registry suspended the domain.
* `redemption_period`: The domain entered the redemption grace period.
* `pending_delete`: The registry scheduled the domain for deletion.

One of the following:

"active"

"registration\_pending"

"expired"

"suspended"

"redemption\_period"

"pending\_delete"

RegistrationGetResponse { auto\_renew, created\_at, domain\_name, 4 more } 

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

auto\_renew: boolean

Whether automatic renewal occurs before expiration.

created\_at: string

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

formatdate-time

domain\_name: string

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.

expires\_at: string | null

When the domain registration expires. Ready registrations include this value; only `registration_pending` may return null.

formatdate-time

locked: boolean

Whether the domain is locked for transfer.

privacy\_mode: "off" | "redaction"

Current WHOIS privacy mode for the registration.

One of the following:

"off"

"redaction"

status: "active" | "registration\_pending" | "expired" | 3 more

Current registration status.

* `active`: The domain operates with an active registration.
* `registration_pending`: Registration remains in progress.
* `expired`: The domain registration expired.
* `suspended`: The registry suspended the domain.
* `redemption_period`: The domain entered the redemption grace period.
* `pending_delete`: The registry scheduled the domain for deletion.

One of the following:

"active"

"registration\_pending"

"expired"

"suspended"

"redemption\_period"

"pending\_delete"

RegistrationEditResponse { completed, created\_at, links, 4 more } 

Status of an async registration workflow.

completed: boolean

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

created\_at: string

formatdate-time

links: Links { self, resource } 

self: string

URL to this status resource.

resource?: string

URL to the domain resource.

state: "pending" | "in\_progress" | "action\_required" | 3 more

Describes the workflow lifecycle state.

* `pending`: The workflow awaits processing.
* `in_progress`: Processing started. Continue polling `links.self`. An internal deadline limits the duration of this state.
* `action_required`: The workflow pauses for user action. See `context.action` for details. Stop automated polling until the user completes the required action.
* `blocked`: 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.
* `succeeded`: Terminal state. The operation completed successfully. `completed` equals `true`. For registrations, `context.registration` contains the resulting registration resource.
* `failed`: Terminal state. The operation failed. `completed` equals `true`. See `error.code` and `error.message` for the reason. Require user review before retrying.

One of the following:

"pending"

"in\_progress"

"action\_required"

"blocked"

"succeeded"

"failed"

updated\_at: string

formatdate-time

context?: Record<string, unknown\>

Provides workflow-specific data.

For domain-centric workflows, `context.domain_name` identifies the workflow subject.

error?: Error | null

Provides error details when a workflow reaches the `failed` 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 `errors[].code` values in non-2xx responses. Surface `error.message` to the user for context.

code: string

Machine-readable error code identifying the failure reason.

message: string

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