---
title: Check domain transfer eligibility
---

[Skip to content](#_top)

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

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

Copy Markdown

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

---

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

# Check domain transfer eligibility

client.registrar.transferCheck(RegistrarTransferCheckParams {account\_id, domains } params, RequestOptionsoptions?): [RegistrarTransferCheckResponse](<https://developers.cloudflare.com/api/typescript/resources/registrar#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)>) {domains }

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

Performs real-time, authoritative eligibility checks directly against needed requirements. Use this endpoint to verify a domain is available before attempting a transfer via `POST /registrations/:domain_name/transfer-in`.

**Note:** This endpoint uses POST to accept a list of domains in the request body. It is a read-only operation — it does not create, modify, or reserve any domains.

### Behavior

- Maximum 10 domains per request
- Pricing is only returned for domains where `transferable: true`
- Results are not cached; each request queries the registry & other needed upstreams

## Extension Support

All `.uk` extensions (`.uk`, `.co.uk`, etc) do not support auth codes. As such, Cloudflare will ignore the `auth_code` section of this request for `.uk` domains.

This means that a `.uk` domain depends on public data to obtain domain information, so it might be a few minutes outdated.

### Workflow

1. Call this endpoint with domains the user wants to transfer.
2. For each domain where `transferable: true`, present pricing to the user.
3. For each domain where `transferable: false`, present reasons to the user
4. Proceed to `POST /registrations/:domain_name/transfer-in` only for the `transferable: true` domains.

##### Security

<details>

<summary>API Token</summary>



The preferred authorization scheme for interacting with the Cloudflare API. <a href="https://developers.cloudflare.com/fundamentals/api/get-started/create-token/">Create a token</a>.

**Example:**<code>Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY</code>

</details>

<details>

<summary>API Email + API Key</summary>



The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

**Example:**<code>X-Auth-Email: user@example.com</code>

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

**Example:**<code>X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194</code>

</details>

##### ParametersExpand Collapse

<details>

<summary>

params: RegistrarTransferCheckParams {account\_id, domains }

</summary>

account\_id: string

Path param: Identifier.

maxLength32

<a href="#(resource)%20registrar%20%3E%20(method)%20transfer_check%20%3E%20(params)%20default%20%3E%20(param)%20account_id">Link to this property</a>

<details>

<summary>

domains: Array&lt;Domain&gt;

Body param: List of domain objects to evaluate for transfer eligibility.

</summary>

domain\_name: string

Fully qualified domain name (FQDN) to check for transfer eligibility.

<a href="#(resource)%20registrar%20%3E%20(method)%20transfer_check%20%3E%20(params)%20default%20%3E%20(param)%20domains%20%3E%20(schema)%20%3E%20(items)%20%3E%20(property)%20domain_name">Link to this property</a>

auth\_code?: string

Base64-encoded auth/EPP code from the current registrar. Required for most TLDs. <code>.uk</code> namespaces do not use auth codes.

formatbyte

<a href="#(resource)%20registrar%20%3E%20(method)%20transfer_check%20%3E%20(params)%20default%20%3E%20(param)%20domains%20%3E%20(schema)%20%3E%20(items)%20%3E%20(property)%20auth_code">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(method)%20transfer_check%20%3E%20(params)%20default%20%3E%20(param)%20domains">Link to this property</a>

</details>

[Link to this property](<#(resource)%20registrar%20%3E%20(method)%20transfer_check%20%3E%20(params)%20default>)

##### ReturnsExpand Collapse

<details>

<summary>

RegistrarTransferCheckResponse {domains }

Contains the transfer eligibility results.

</summary>

<details>

<summary>

domains: Record&lt;string, TransferableResult {pricing, transferable, name, reasons } | NonTransferableResult {transferable, name, pricing, reasons } &gt;

Maps domain names to transfer eligibility results. Each value contains <code>name</code>, <code>transferable</code>, and <code>reasons</code>.

</summary>

One of the following:

<details>

<summary>

TransferableResult {pricing, transferable, name, reasons }

</summary>

<details>

<summary>

pricing: Pricing {currency, renewal\_cost, transfer\_cost }

Provides annual pricing information for a given domain. The API returns all per-year prices as strings to preserve decimal precision.

<code>renewal_cost</code> and <code>registration_cost</code> or <code>transfer_cost</code> are frequently the same value, but may differ due to premium rates for certain domains.

For a multi-year operations, the operation’s cost applies to the first year and <code>renewal_cost</code> applies to each subsequent year. The values reflect the current registry rate, which can change over time.

</summary>

currency: string

ISO-4217 currency code for the prices (e.g., “USD”, “EUR”, “GBP”).

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20pricing%20%3E%20(property)%20currency">Link to this property</a>

renewal\_cost: string

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 <code>registration_cost</code>, especially for premium domains where initial registration often costs more than renewals.

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20pricing%20%3E%20(property)%20renewal_cost">Link to this property</a>

transfer\_cost: string

The first-year cost to transfer this domain.

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20pricing%20%3E%20(property)%20transfer_cost">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20pricing">Link to this property</a>

transferable: true

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20transferable">Link to this property</a>

name?: string

The check evaluates this domain name.

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20name">Link to this property</a>

<details>

<summary>

reasons?: Array&lt;Reason&gt;

</summary>

<details>

<summary>

code: "extension\_not\_supported\_via\_api"| "extension\_not\_supported"| "domain\_premium"| 14 more

Transfer eligibility reason code.

- <code>extension_not_supported_via_api</code>: This API excludes the extension; dashboard flows support it.
- <code>extension_not_supported</code>: Cloudflare Registrar excludes the extension.
- <code>domain_premium</code>: This API currently excludes premium transfers.
- <code>extension_disallows_transfer</code>: Extension currently blocks transfer operations.
- <code>domain_not_exists</code>: No registration record exists for the domain.
- <code>domain_on_cloudflare</code>: Cloudflare already serves as the domain’s registrar.
- <code>domain_locked</code>: Losing registrar reports transfer-prohibited lock status.
- <code>registry_status</code>: Registry status currently blocks transfer (for example, pending transfer or deletion state).
- <code>domain_outside_transfer_window</code>: Domain is within a transfer wait window (for example, recently registered).
- <code>domain_max_term</code>: Completing transfer would exceed the registry maximum term.
- <code>invalid_auth_code</code>: The provided auth code is incorrect.
- <code>invalid_auth_code_format</code>: Auth code fails Base64 validation.
- <code>dnssec_enabled</code>: DNSSEC is enabled. It must be disabled before transfer.
- <code>zone_not_found</code>: The target account lacks a Cloudflare zone for the domain.
- <code>zone_status_invalid</code>: The Cloudflare zone cannot transfer in its current state.
- <code>invalid_zone_plan</code>: The zone plan fails transfer requirements.
- <code>domain_unsupported</code>: This endpoint rejects the domain name format.

</summary>

One of the following:

"extension\_not\_supported\_via\_api"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%200">Link to this property</a>

"extension\_not\_supported"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%201">Link to this property</a>

"domain\_premium"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%202">Link to this property</a>

"extension\_disallows\_transfer"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%203">Link to this property</a>

"domain\_not\_exists"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%204">Link to this property</a>

"domain\_on\_cloudflare"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%205">Link to this property</a>

"domain\_locked"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%206">Link to this property</a>

"registry\_status"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%207">Link to this property</a>

"domain\_outside\_transfer\_window"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%208">Link to this property</a>

"domain\_max\_term"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%209">Link to this property</a>

"invalid\_auth\_code"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2010">Link to this property</a>

"invalid\_auth\_code\_format"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2011">Link to this property</a>

"dnssec\_enabled"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2012">Link to this property</a>

"zone\_not\_found"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2013">Link to this property</a>

"zone\_status\_invalid"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2014">Link to this property</a>

"invalid\_zone\_plan"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2015">Link to this property</a>

"domain\_unsupported"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2016">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200%20%3E%20(property)%20reasons">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%200">Link to this property</a>

<details>

<summary>

NonTransferableResult {transferable, name, pricing, reasons }

</summary>

transferable: false

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20transferable">Link to this property</a>

name?: string

The check evaluates this domain name.

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20name">Link to this property</a>

<details>

<summary>

pricing?: Pricing {currency, renewal\_cost, transfer\_cost }

Provides annual pricing information for a given domain. The API returns all per-year prices as strings to preserve decimal precision.

<code>renewal_cost</code> and <code>registration_cost</code> or <code>transfer_cost</code> are frequently the same value, but may differ due to premium rates for certain domains.

For a multi-year operations, the operation’s cost applies to the first year and <code>renewal_cost</code> applies to each subsequent year. The values reflect the current registry rate, which can change over time.

</summary>

currency: string

ISO-4217 currency code for the prices (e.g., “USD”, “EUR”, “GBP”).

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20pricing%20%3E%20(property)%20currency">Link to this property</a>

renewal\_cost: string

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 <code>registration_cost</code>, especially for premium domains where initial registration often costs more than renewals.

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20pricing%20%3E%20(property)%20renewal_cost">Link to this property</a>

transfer\_cost: string

The first-year cost to transfer this domain.

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20pricing%20%3E%20(property)%20transfer_cost">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20pricing">Link to this property</a>

<details>

<summary>

reasons?: Array&lt;Reason&gt;

</summary>

<details>

<summary>

code: "extension\_not\_supported\_via\_api"| "extension\_not\_supported"| "domain\_premium"| 14 more

Transfer eligibility reason code.

- <code>extension_not_supported_via_api</code>: This API excludes the extension; dashboard flows support it.
- <code>extension_not_supported</code>: Cloudflare Registrar excludes the extension.
- <code>domain_premium</code>: This API currently excludes premium transfers.
- <code>extension_disallows_transfer</code>: Extension currently blocks transfer operations.
- <code>domain_not_exists</code>: No registration record exists for the domain.
- <code>domain_on_cloudflare</code>: Cloudflare already serves as the domain’s registrar.
- <code>domain_locked</code>: Losing registrar reports transfer-prohibited lock status.
- <code>registry_status</code>: Registry status currently blocks transfer (for example, pending transfer or deletion state).
- <code>domain_outside_transfer_window</code>: Domain is within a transfer wait window (for example, recently registered).
- <code>domain_max_term</code>: Completing transfer would exceed the registry maximum term.
- <code>invalid_auth_code</code>: The provided auth code is incorrect.
- <code>invalid_auth_code_format</code>: Auth code fails Base64 validation.
- <code>dnssec_enabled</code>: DNSSEC is enabled. It must be disabled before transfer.
- <code>zone_not_found</code>: The target account lacks a Cloudflare zone for the domain.
- <code>zone_status_invalid</code>: The Cloudflare zone cannot transfer in its current state.
- <code>invalid_zone_plan</code>: The zone plan fails transfer requirements.
- <code>domain_unsupported</code>: This endpoint rejects the domain name format.

</summary>

One of the following:

"extension\_not\_supported\_via\_api"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%200">Link to this property</a>

"extension\_not\_supported"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%201">Link to this property</a>

"domain\_premium"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%202">Link to this property</a>

"extension\_disallows\_transfer"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%203">Link to this property</a>

"domain\_not\_exists"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%204">Link to this property</a>

"domain\_on\_cloudflare"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%205">Link to this property</a>

"domain\_locked"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%206">Link to this property</a>

"registry\_status"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%207">Link to this property</a>

"domain\_outside\_transfer\_window"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%208">Link to this property</a>

"domain\_max\_term"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%209">Link to this property</a>

"invalid\_auth\_code"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2010">Link to this property</a>

"invalid\_auth\_code\_format"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2011">Link to this property</a>

"dnssec\_enabled"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2012">Link to this property</a>

"zone\_not\_found"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2013">Link to this property</a>

"zone\_status\_invalid"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2014">Link to this property</a>

"invalid\_zone\_plan"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2015">Link to this property</a>

"domain\_unsupported"

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code%20%3E%20(member)%2016">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons%20%3E%20(items)%20%3E%20(property)%20code">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201%20%3E%20(property)%20reasons">Link to this property</a>

</details>

<a href="#(resource)%20registrar%20%3E%20(model)%20registrar_transfer_check_response%20%3E%20(schema)%20%3E%20(property)%20domains%20%3E%20(items)%20%3E%20(variant)%201">Link to this property</a>

</details>

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

</details>

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

### Check domain transfer eligibility

TypeScript

HTTPTypeScriptPythonGoTerraform

```
import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const response = await client.registrar.transferCheck({
  account_id: '023e105f4ecef8ad9ca31a8372d0c353',
  domains: [{ domain_name: 'example.co.uk' }],
});

console.log(response.domains);
```

200 example

200 example

200 example

200 example

200 example

400 example

400 example

400 example

503 example

```
{
  "errors": [],
  "messages": [],
  "result": {
    "domains": {
      "example.com": {
        "name": "example.com",
        "pricing": {
          "currency": "USD",
          "renewal_cost": "10.11",
          "transfer_cost": "8.57"
        },
        "reasons": [],
        "transferable": true
      },
      "mybrand.net": {
        "name": "mybrand.net",
        "pricing": {
          "currency": "USD",
          "renewal_cost": "12.50",
          "transfer_cost": "9.99"
        },
        "reasons": [],
        "transferable": true
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [],
  "messages": [],
  "result": {
    "domains": {
      "example.com": {
        "name": "example.com",
        "reasons": [
          {
            "code": "invalid_auth_code"
          }
        ],
        "transferable": false
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [],
  "messages": [],
  "result": {
    "domains": {
      "cloudflare.com": {
        "name": "cloudflare.com",
        "reasons": [
          {
            "code": "domain_on_cloudflare"
          }
        ],
        "transferable": false
      },
      "locked-example.com": {
        "name": "locked-example.com",
        "reasons": [
          {
            "code": "domain_locked"
          }
        ],
        "transferable": false
      },
      "move-ready.net": {
        "name": "move-ready.net",
        "pricing": {
          "currency": "USD",
          "renewal_cost": "12.50",
          "transfer_cost": "9.99"
        },
        "reasons": [],
        "transferable": true
      },
      "pending-transfer.dev": {
        "name": "pending-transfer.dev",
        "reasons": [
          {
            "code": "registry_status"
          }
        ],
        "transferable": false
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Internal API failure for domain flaky-example.com",
      "source": {
        "pointer": "/domains/1"
      }
    }
  ],
  "messages": [],
  "result": {
    "domains": {
      "stable-example.com": {
        "name": "stable-example.com",
        "pricing": {
          "currency": "USD",
          "renewal_cost": "10.11",
          "transfer_cost": "8.57"
        },
        "reasons": [],
        "transferable": true
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [],
  "messages": [],
  "result": {
    "domains": {
      "example.horse": {
        "name": "example.horse",
        "reasons": [
          {
            "code": "extension_not_supported"
          }
        ],
        "transferable": false
      },
      "invalid@@domain": {
        "name": "invalid@@domain",
        "reasons": [
          {
            "code": "domain_unsupported"
          }
        ],
        "transferable": false
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "object at root is missing required properties: domains",
      "source": {
        "pointer": "/domains"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Duplicate domain name",
      "source": {
        "pointer": "/domains/1"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "array at `/domains` is too long (maximum: 10)",
      "source": {
        "pointer": "/domains"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Internal API failure for domain example.com",
      "source": {
        "pointer": "/domains/0"
      }
    },
    {
      "code": 10000,
      "message": "Internal API failure for domain mybrand.net",
      "source": {
        "pointer": "/domains/1"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

##### Returns Examples

200 example

200 example

200 example

200 example

200 example

400 example

400 example

400 example

503 example

```
{
  "errors": [],
  "messages": [],
  "result": {
    "domains": {
      "example.com": {
        "name": "example.com",
        "pricing": {
          "currency": "USD",
          "renewal_cost": "10.11",
          "transfer_cost": "8.57"
        },
        "reasons": [],
        "transferable": true
      },
      "mybrand.net": {
        "name": "mybrand.net",
        "pricing": {
          "currency": "USD",
          "renewal_cost": "12.50",
          "transfer_cost": "9.99"
        },
        "reasons": [],
        "transferable": true
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [],
  "messages": [],
  "result": {
    "domains": {
      "example.com": {
        "name": "example.com",
        "reasons": [
          {
            "code": "invalid_auth_code"
          }
        ],
        "transferable": false
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [],
  "messages": [],
  "result": {
    "domains": {
      "cloudflare.com": {
        "name": "cloudflare.com",
        "reasons": [
          {
            "code": "domain_on_cloudflare"
          }
        ],
        "transferable": false
      },
      "locked-example.com": {
        "name": "locked-example.com",
        "reasons": [
          {
            "code": "domain_locked"
          }
        ],
        "transferable": false
      },
      "move-ready.net": {
        "name": "move-ready.net",
        "pricing": {
          "currency": "USD",
          "renewal_cost": "12.50",
          "transfer_cost": "9.99"
        },
        "reasons": [],
        "transferable": true
      },
      "pending-transfer.dev": {
        "name": "pending-transfer.dev",
        "reasons": [
          {
            "code": "registry_status"
          }
        ],
        "transferable": false
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Internal API failure for domain flaky-example.com",
      "source": {
        "pointer": "/domains/1"
      }
    }
  ],
  "messages": [],
  "result": {
    "domains": {
      "stable-example.com": {
        "name": "stable-example.com",
        "pricing": {
          "currency": "USD",
          "renewal_cost": "10.11",
          "transfer_cost": "8.57"
        },
        "reasons": [],
        "transferable": true
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [],
  "messages": [],
  "result": {
    "domains": {
      "example.horse": {
        "name": "example.horse",
        "reasons": [
          {
            "code": "extension_not_supported"
          }
        ],
        "transferable": false
      },
      "invalid@@domain": {
        "name": "invalid@@domain",
        "reasons": [
          {
            "code": "domain_unsupported"
          }
        ],
        "transferable": false
      }
    }
  },
  "success": true
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "object at root is missing required properties: domains",
      "source": {
        "pointer": "/domains"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Duplicate domain name",
      "source": {
        "pointer": "/domains/1"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "array at `/domains` is too long (maximum: 10)",
      "source": {
        "pointer": "/domains"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```

```
{
  "errors": [
    {
      "code": 10000,
      "message": "Internal API failure for domain example.com",
      "source": {
        "pointer": "/domains/0"
      }
    },
    {
      "code": 10000,
      "message": "Internal API failure for domain mybrand.net",
      "source": {
        "pointer": "/domains/1"
      }
    }
  ],
  "messages": [],
  "result": null,
  "success": false
}
```