curl --request GET \
--url https://dev.namify.host/api/v1/domains/availability \
--header 'Authorization: Bearer <token>'import requests
url = "https://dev.namify.host/api/v1/domains/availability"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://dev.namify.host/api/v1/domains/availability', 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://dev.namify.host/api/v1/domains/availability",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://dev.namify.host/api/v1/domains/availability"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dev.namify.host/api/v1/domains/availability")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.namify.host/api/v1/domains/availability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"results": [
{
"product_category": "domain_registration",
"domain_name": "example.com",
"sld": "example",
"tld": "com",
"available": true,
"premium": false
},
{
"product_category": "domain_registration",
"domain_name": "example.tech",
"sld": "example",
"tld": "tech",
"available": false,
"premium": false
}
]
}{
"message": "Bad Request."
}{
"message": "Unauthorized"
}{
"message": "The search term field is required."
}{
"message": "Server Error."
}Availability
Being phased out. This endpoint will be retired soon. New integrations should use MetaSearch, which returns exact-match availability, alternative names, AI-generated suggestions, and live pricing in one call.
Checks whether one or more domain names are available for registration across the specified TLDs.
Input format: search_term accepts a single SLD string or an array of SLD strings (label only — no dots or TLD). Pass the TLD(s) separately via tlds[]. This allows you to check the same name across multiple extensions in one request (e.g. search_term=example&tlds[]=com&tlds[]=store&tlds[]=tech).
TLD filtering: Only TLDs enabled on your partner account are checked. Any requested TLD not in your allowed list is silently ignored. If no valid TLDs remain after filtering, the request falls back to your first allowed TLD.
Premium domains: If a result has premium: true, the domain is available but carries a premium price. If your partner account does not support premium registrations, these are returned with available: false.
Result interpretation: Each result in the results array corresponds to one domain+TLD combination. Check the available field to determine purchasability. Use this endpoint before calling POST /api/v1/domains/register to avoid failed registration attempts.
curl --request GET \
--url https://dev.namify.host/api/v1/domains/availability \
--header 'Authorization: Bearer <token>'import requests
url = "https://dev.namify.host/api/v1/domains/availability"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://dev.namify.host/api/v1/domains/availability', 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://dev.namify.host/api/v1/domains/availability",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://dev.namify.host/api/v1/domains/availability"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dev.namify.host/api/v1/domains/availability")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.namify.host/api/v1/domains/availability")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"results": [
{
"product_category": "domain_registration",
"domain_name": "example.com",
"sld": "example",
"tld": "com",
"available": true,
"premium": false
},
{
"product_category": "domain_registration",
"domain_name": "example.tech",
"sld": "example",
"tld": "tech",
"available": false,
"premium": false
}
]
}{
"message": "Bad Request."
}{
"message": "Unauthorized"
}{
"message": "The search term field is required."
}{
"message": "Server Error."
}Premium domains are not currently supported by our APIs for registration.
Authorizations
A personal access token. Obtain one from the dashboard under Settings > API Key. Include it in the Authorization header as Bearer <token>. Unauthenticated requests to protected routes return 401 Unauthorized.
Query Parameters
SLD (label only, no dots) to check. Accepts a single string or a repeated parameter for multiple SLDs (e.g. search_term[]=example&search_term[]=myshop). Must be 1–63 alphanumeric characters or hyphens; cannot start or end with a hyphen.
"example"
TLD extensions to check (without leading dot, e.g. com, store, tech, online). Filtered to your partner's allowed TLD list. If omitted or all values are unrecognised, defaults to your first allowed TLD.
["com", "store", "tech"]
Response
Availability results for each requested domain+TLD combination.
Show child attributes
Show child attributes