Check domain transfer eligibility
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
- Call this endpoint with domains the user wants to transfer.
- For each domain where
transferable: true, present pricing to the user. - For each domain where
transferable: false, present reasons to the user - Proceed to
POST /registrations/:domain_name/transfer-inonly for thetransferable: truedomains.
Security
API Token
The preferred authorization scheme for interacting with the Cloudflare API. Create a token.
API Email + API Key
The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.
The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.
Check domain transfer eligibility
curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/registrar/domain-transfer-check \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-d '{
"domains": [
{
"domain_name": "example.co.uk"
}
]
}'{
"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
{
"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
}