Search for available domains
Searches for domain name suggestions based on a keyword, phrase, or partial domain name. Returns a list of potentially available domains with pricing information.
Important: Results are non-authoritative and based on cached data. Always use the
/domain-check endpoint to verify real-time availability before attempting registration.
Suggestions are scoped to extensions supported for programmatic registration
via this API (POST /registrations). Domains on unsupported extensions will
not appear in results, even if they are available at the registry level.
Use cases
- Brand name discovery (e.g., “acme corp” → acmecorp.com, acmecorp.dev)
- Keyword-based suggestions (e.g., “coffee shop” → coffeeshop.com, mycoffeeshop.net)
- Alternative extension discovery (e.g., “example.com” → example.com, example.app, example.xyz)
Workflow
- Call this endpoint with a keyword or domain name.
- Present suggestions to the user.
- Call
/domain-checkwith the user’s chosen domains to confirm real-time availability and pricing. - Proceed to
POST /registrationsonly for supported non-premium domains where the Check response returnsregistrable: true.
Note: Searching with just a domain extension (e.g., “com” or “.app”) is not supported. Provide a keyword or domain name.
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.
Search for available domains
package main
import (
"context"
"fmt"
"github.com/cloudflare/cloudflare-go"
"github.com/cloudflare/cloudflare-go/option"
"github.com/cloudflare/cloudflare-go/registrar"
)
func main() {
client := cloudflare.NewClient(
option.WithAPIToken("Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY"),
)
response, err := client.Registrar.Search(context.TODO(), registrar.RegistrarSearchParams{
AccountID: cloudflare.F("023e105f4ecef8ad9ca31a8372d0c353"),
Q: cloudflare.F("x"),
})
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", response.Domains)
}
{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "acmecorp.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "acmecorp.dev",
"pricing": {
"currency": "USD",
"registration_cost": "10.11",
"renewal_cost": "10.11"
},
"registrable": true,
"tier": "standard"
},
{
"name": "acmecorp.app",
"pricing": {
"currency": "USD",
"registration_cost": "11.00",
"renewal_cost": "11.00"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "bestpizza.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "bestpizza.net",
"pricing": {
"currency": "USD",
"registration_cost": "9.95",
"renewal_cost": "9.95"
},
"registrable": true,
"tier": "standard"
},
{
"name": "bestpizzashop.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "coffeeshop.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "coffeeshoponline.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "mycoffeeshop.net",
"pricing": {
"currency": "USD",
"registration_cost": "9.95",
"renewal_cost": "9.95"
},
"registrable": true,
"tier": "standard"
},
{
"name": "thecoffeeshop.shop",
"pricing": {
"currency": "USD",
"registration_cost": "11.00",
"renewal_cost": "11.00"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": []
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "crypto.com",
"pricing": {
"currency": "USD",
"registration_cost": "100000.00",
"renewal_cost": "5000.00"
},
"registrable": true,
"tier": "premium"
},
{
"name": "cryptotrading.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "mycrypto.net",
"pricing": {
"currency": "USD",
"registration_cost": "9.95",
"renewal_cost": "9.95"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [
{
"code": 1002,
"message": "Parameter q exceeds maximum length of 100 characters"
}
],
"messages": [],
"result": null,
"success": false
}{
"errors": [
{
"code": 1001,
"message": "Missing required parameter: q"
}
],
"messages": [],
"result": null,
"success": false
}Returns Examples
{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "acmecorp.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "acmecorp.dev",
"pricing": {
"currency": "USD",
"registration_cost": "10.11",
"renewal_cost": "10.11"
},
"registrable": true,
"tier": "standard"
},
{
"name": "acmecorp.app",
"pricing": {
"currency": "USD",
"registration_cost": "11.00",
"renewal_cost": "11.00"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "bestpizza.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "bestpizza.net",
"pricing": {
"currency": "USD",
"registration_cost": "9.95",
"renewal_cost": "9.95"
},
"registrable": true,
"tier": "standard"
},
{
"name": "bestpizzashop.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "coffeeshop.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "coffeeshoponline.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "mycoffeeshop.net",
"pricing": {
"currency": "USD",
"registration_cost": "9.95",
"renewal_cost": "9.95"
},
"registrable": true,
"tier": "standard"
},
{
"name": "thecoffeeshop.shop",
"pricing": {
"currency": "USD",
"registration_cost": "11.00",
"renewal_cost": "11.00"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": []
},
"success": true
}{
"errors": [],
"messages": [],
"result": {
"domains": [
{
"name": "crypto.com",
"pricing": {
"currency": "USD",
"registration_cost": "100000.00",
"renewal_cost": "5000.00"
},
"registrable": true,
"tier": "premium"
},
{
"name": "cryptotrading.com",
"pricing": {
"currency": "USD",
"registration_cost": "8.57",
"renewal_cost": "8.57"
},
"registrable": true,
"tier": "standard"
},
{
"name": "mycrypto.net",
"pricing": {
"currency": "USD",
"registration_cost": "9.95",
"renewal_cost": "9.95"
},
"registrable": true,
"tier": "standard"
}
]
},
"success": true
}{
"errors": [
{
"code": 1002,
"message": "Parameter q exceeds maximum length of 100 characters"
}
],
"messages": [],
"result": null,
"success": false
}{
"errors": [
{
"code": 1001,
"message": "Missing required parameter: q"
}
],
"messages": [],
"result": null,
"success": false
}