Check domain availability
Performs real-time, authoritative availability checks directly against domain
registries. Use this endpoint to verify a domain is available before attempting
registration via POST /registrations.
Important: Unlike the Search endpoint, these results are authoritative and reflect current registry status. Always check availability immediately before registration as domain status can change rapidly.
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.
Extension support
Only domains on extensions supported for programmatic registration by this API
can be registered. If you check a domain on an unsupported extension, the response
will include registrable: false with a reason field explaining why:
extension_not_supported_via_api— Cloudflare Registrar supports this extension in the dashboard, but it is not yet available for programmatic registration via this API. Register viahttps://dash.cloudflare.com/{account_id}/domains/registrationsinstead.extension_not_supported— This extension is not supported by Cloudflare Registrar.extension_disallows_registration— The extension’s registry has temporarily or permanently frozen new registrations. No registrar can register domains on this extension at this time.domain_premium— The domain is premium priced. Premium registration is not currently supported by this API.domain_unavailable— The domain is already registered, reserved, or otherwise not available for registration on a supported extension.
The reason field is only present when registrable is false.
Behavior
- Maximum 20 domains per request
- Pricing is only returned for domains where
registrable: true - Results are not cached; each request queries the registry
Workflow
- Call this endpoint with domains the user wants to register.
- For each domain where
registrable: true, present pricing to the user. - If
tier: premium, note that premium registration is not currently supported by this API and do not proceed toPOST /registrations. - Proceed to
POST /registrationsonly for supported non-premium domains.
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.
Body ParametersJSON
List of fully qualified domain names (FQDNs) to check for availability. Each domain must include the extension.
- Minimum: 1 domain
- Maximum: 20 domains per request
- Domains on unsupported extensions are returned with
registrable: falseand areasonfield - Malformed domain names (e.g., missing extension) may be omitted from the response
Check domain availability
curl https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/registrar/domain-check \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
-d '{
"domains": [
"myawesomebrand.com",
"myawesomebrand.net",
"myawesomebrand.org",
"myawesomebrand.app",
"myawesomebrand.dev"
]
}'{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "xq7mz9brand.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "xq7mz9brand.net",
"pricing": {
"currency": "USD",
"registration_cost": "9.95",
"renewal_cost": "9.95"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "example.com",
"reason": "domain_unavailable",
"registrable": false
},
{
"name": "example.net",
"reason": "domain_unavailable",
"registrable": false
},
{
"name": "example.org",
"reason": "domain_unavailable",
"registrable": false
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "cloudflare.com",
"reason": "domain_unavailable",
"registrable": false
},
{
"name": "my-unique-startup-name-2024.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "my-unique-startup-name-2024.dev",
"pricing": {
"currency": "USD",
"registration_cost": "10.11",
"renewal_cost": "10.11"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "coffee.xyz",
"reason": "domain_premium",
"registrable": false,
"tier": "premium"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "example.py",
"reason": "extension_disallows_registration",
"registrable": false
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "example.horse",
"reason": "extension_not_supported",
"registrable": false
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "mybrand.uk",
"reason": "extension_not_supported_via_api",
"registrable": false
},
{
"name": "mybrand.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [
{
"code": 1006,
"message": "domains array must contain at least one domain"
}
],
"messages": [],
"result": null,
"success": false
}{
"errors": [
{
"code": 1008,
"message": "None of the provided domains are valid or have supported extensions"
}
],
"messages": [],
"result": null,
"success": false
}{
"errors": [
{
"code": 1007,
"message": "domains array exceeds maximum of 20 domains"
}
],
"messages": [],
"result": null,
"success": false
}Returns Examples
{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "xq7mz9brand.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "xq7mz9brand.net",
"pricing": {
"currency": "USD",
"registration_cost": "9.95",
"renewal_cost": "9.95"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "example.com",
"reason": "domain_unavailable",
"registrable": false
},
{
"name": "example.net",
"reason": "domain_unavailable",
"registrable": false
},
{
"name": "example.org",
"reason": "domain_unavailable",
"registrable": false
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "cloudflare.com",
"reason": "domain_unavailable",
"registrable": false
},
{
"name": "my-unique-startup-name-2024.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "my-unique-startup-name-2024.dev",
"pricing": {
"currency": "USD",
"registration_cost": "10.11",
"renewal_cost": "10.11"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "coffee.xyz",
"reason": "domain_premium",
"registrable": false,
"tier": "premium"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "example.py",
"reason": "extension_disallows_registration",
"registrable": false
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "example.horse",
"reason": "extension_not_supported",
"registrable": false
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "mybrand.uk",
"reason": "extension_not_supported_via_api",
"registrable": false
},
{
"name": "mybrand.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [
{
"code": 1006,
"message": "domains array must contain at least one domain"
}
],
"messages": [],
"result": null,
"success": false
}{
"errors": [
{
"code": 1008,
"message": "None of the provided domains are valid or have supported extensions"
}
],
"messages": [],
"result": null,
"success": false
}{
"errors": [
{
"code": 1007,
"message": "domains array exceeds maximum of 20 domains"
}
],
"messages": [],
"result": null,
"success": false
}