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
import os
from cloudflare import Cloudflare
client = Cloudflare(
api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted
)
response = client.registrar.transfer_check(
account_id="023e105f4ecef8ad9ca31a8372d0c353",
domains=[{
"domain_name": "example.co.uk"
}],
)
print(response.domains){
"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
}