curl --request POST \
--url https://api.dev.name.com/core/v1/domains:checkAvailability \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"domainNames": [
"<string>"
]
}
'import requests
url = "https://api.dev.name.com/core/v1/domains:checkAvailability"
payload = { "domainNames": ["<string>"] }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({domainNames: ['<string>']})
};
fetch('https://api.dev.name.com/core/v1/domains:checkAvailability', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.name.com/core/v1/domains:checkAvailability",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'domainNames' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dev.name.com/core/v1/domains:checkAvailability"
payload := strings.NewReader("{\n \"domainNames\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dev.name.com/core/v1/domains:checkAvailability")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"domainNames\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.name.com/core/v1/domains:checkAvailability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"domainNames\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"domainName": "example.com",
"purchasable": true,
"sld": "example",
"tld": "com",
"premium": true,
"purchasePrice": 10.99,
"purchaseType": "registration",
"renewalPrice": 10.99,
"reason": "<string>"
}
]
}{
"message": "Unauthorized"
}{
"message": "Permission denied",
"details": "Failed authentication"
}{
"message": "Method Not Allowed"
}{
"message": "The 'Content-Type' header must be 'application/json' for this request."
}{
"message": "Unprocessable Entity",
"details": "The pricing information required to process this request is temporarily unavailable. This is an internal system error. Please try again in a few minutes or contact support if the issue persists."
}{
"message": "Rate Limit Exceeded"
}{
"message": "Internal Server Error",
"details": "Something went wrong."
}{
"message": "The server received an invalid response from the upstream server."
}{
"message": "Service Unavailable",
"details": "The API is offline for scheduled maintenance. See https://status.name.com for updates."
}{
"message": "The upstream server is taking too long to respond."
}Check Availability
Checks whether up to 50 domain names are purchasable and returns discovery pricing for each result.
Discovery endpoint: Returns SearchResult fields — purchaseType, purchasePrice, premium, purchasable. Search returns the same fields for keyword/suggestion flows. Use this endpoint to determine what to send on Create Domain.
When results show premium: true or a non-registration purchaseType, follow the Domain pricing guide before calling Create Domain. For non-registration types, re-check Check Availability immediately before create — acquisition prices can change.
Recommendation: Set purchaseType to registration. Most resellers
restrict results to domains with a purchaseType of registration
to ensure predictable pricing and immediate fulfillment. Other purchase types
(such as aftermarket variants) can introduce higher costs and non-instant
transactions that may be delayed or declined by third parties.
curl --request POST \
--url https://api.dev.name.com/core/v1/domains:checkAvailability \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"domainNames": [
"<string>"
]
}
'import requests
url = "https://api.dev.name.com/core/v1/domains:checkAvailability"
payload = { "domainNames": ["<string>"] }
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({domainNames: ['<string>']})
};
fetch('https://api.dev.name.com/core/v1/domains:checkAvailability', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.dev.name.com/core/v1/domains:checkAvailability",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'domainNames' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.dev.name.com/core/v1/domains:checkAvailability"
payload := strings.NewReader("{\n \"domainNames\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.dev.name.com/core/v1/domains:checkAvailability")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"domainNames\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.dev.name.com/core/v1/domains:checkAvailability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"domainNames\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"results": [
{
"domainName": "example.com",
"purchasable": true,
"sld": "example",
"tld": "com",
"premium": true,
"purchasePrice": 10.99,
"purchaseType": "registration",
"renewalPrice": 10.99,
"reason": "<string>"
}
]
}{
"message": "Unauthorized"
}{
"message": "Permission denied",
"details": "Failed authentication"
}{
"message": "Method Not Allowed"
}{
"message": "The 'Content-Type' header must be 'application/json' for this request."
}{
"message": "Unprocessable Entity",
"details": "The pricing information required to process this request is temporarily unavailable. This is an internal system error. Please try again in a few minutes or contact support if the issue persists."
}{
"message": "Rate Limit Exceeded"
}{
"message": "Internal Server Error",
"details": "Something went wrong."
}{
"message": "The server received an invalid response from the upstream server."
}{
"message": "Service Unavailable",
"details": "The API is offline for scheduled maintenance. See https://status.name.com for updates."
}{
"message": "The upstream server is taking too long to respond."
}Authorizations
Authenticate via HTTP Basic with your account username and API token. Examples use an explicit 'Authorization: Basic <base64(username:token)>' header; 'curl -u username:token' is equivalent. For sandbox, append "-test" to your username and use your sandbox token on api.dev.name.com.
Body
AvailabilityRequest is used to list the domain names to check availability for.
Checks if one or more domain names are available for registration (up to 50 domains). Important: Do not encode the : in the path. Use /core/v1/domains:checkAvailability, not /core/v1/domains%3AcheckAvailability.
DomainNames is the list of domains to check if they are available.
1 - 50 elements1Optional filter. Recommended: registration for most integrations — omit only if you support acquisition types. Non-matching domains are returned with purchasable: false (Search omits them instead). See the Domain purchase pricing guide.
registration, aftermarket_i, expiring, backorder, aftermarket_s, aftermarket_b Response
A successful response.
SearchResponse returns a list of search results.
Results of the search are returned here, the order should not be relied upon.
Show child attributes
Show child attributes
Was this page helpful?