curl --request GET \
--url https://metasearch.namify.host/v1/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://metasearch.namify.host/v1/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://metasearch.namify.host/v1/search', 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://metasearch.namify.host/v1/search",
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://metasearch.namify.host/v1/search"
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://metasearch.namify.host/v1/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://metasearch.namify.host/v1/search")
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": [
{
"domain_name": "mycafe.store",
"sld": "mycafe",
"tld": "store",
"available": true,
"type": "hero",
"is_searched_exact": false,
"pricing": {
"currency": "USD",
"register": 0,
"renew": 9.99,
"period": "year",
"is_free_first_year": true,
"summary": "1st Year Free, then $9.99/yr"
}
},
{
"domain_name": "mycafe.com",
"sld": "mycafe",
"tld": "com",
"available": true,
"type": "result",
"is_searched_exact": false,
"pricing": {
"currency": "USD",
"register": 12.99,
"renew": 14.99,
"period": "year",
"is_free_first_year": false,
"summary": "$12.99/yr"
}
},
{
"domain_name": "mycafehq.store",
"sld": "mycafehq",
"tld": "store",
"available": true,
"type": "ai_suggestion",
"is_searched_exact": false,
"pricing": {
"currency": "USD",
"register": 0,
"renew": 9.99,
"period": "year",
"is_free_first_year": true,
"summary": "1st Year Free, then $9.99/yr"
}
}
],
"results_total": 8,
"results_hidden": 0,
"meta": {
"search_term": "mycafe",
"typed_tld": null,
"autosuggest": true,
"aisuggest": true
}
}{
"error": "search_term is required and must not be empty after sanitisation"
}{
"error": "Invalid partner token"
}{
"error": "Internal server error"
}{
"error": "Domain availability service unavailable"
}MetaSearch
Search a name and return the best available domains: the exact match, available alternatives, and optional AI-generated suggestions, each with live pricing.
curl --request GET \
--url https://metasearch.namify.host/v1/search \
--header 'Authorization: Bearer <token>'import requests
url = "https://metasearch.namify.host/v1/search"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://metasearch.namify.host/v1/search', 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://metasearch.namify.host/v1/search",
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://metasearch.namify.host/v1/search"
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://metasearch.namify.host/v1/search")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://metasearch.namify.host/v1/search")
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": [
{
"domain_name": "mycafe.store",
"sld": "mycafe",
"tld": "store",
"available": true,
"type": "hero",
"is_searched_exact": false,
"pricing": {
"currency": "USD",
"register": 0,
"renew": 9.99,
"period": "year",
"is_free_first_year": true,
"summary": "1st Year Free, then $9.99/yr"
}
},
{
"domain_name": "mycafe.com",
"sld": "mycafe",
"tld": "com",
"available": true,
"type": "result",
"is_searched_exact": false,
"pricing": {
"currency": "USD",
"register": 12.99,
"renew": 14.99,
"period": "year",
"is_free_first_year": false,
"summary": "$12.99/yr"
}
},
{
"domain_name": "mycafehq.store",
"sld": "mycafehq",
"tld": "store",
"available": true,
"type": "ai_suggestion",
"is_searched_exact": false,
"pricing": {
"currency": "USD",
"register": 0,
"renew": 9.99,
"period": "year",
"is_free_first_year": true,
"summary": "1st Year Free, then $9.99/yr"
}
}
],
"results_total": 8,
"results_hidden": 0,
"meta": {
"search_term": "mycafe",
"typed_tld": null,
"autosuggest": true,
"aisuggest": true
}
}{
"error": "search_term is required and must not be empty after sanitisation"
}{
"error": "Invalid partner token"
}{
"error": "Internal server error"
}{
"error": "Domain availability service unavailable"
}search_term: either a bare name (coffee) or a full domain including a TLD (coffee.com). The response leads with a featured result (type: "hero"), followed by the results list, and (when enabled) a trailing block of AI-suggested names. Every item carries a live available flag and a pricing object (null when the domain is taken).
Suggestions: Set autosuggest=true and MetaSearch automatically suggests additional available names (close variations around your search term) in the results list. Set aisuggest=true and it appends a block of AI-suggested, brandable names (each type: "ai_suggestion"). Both are off by default; enable either or both.
Pricing: Each available result includes a pricing object with the registration and renewal price, an is_free_first_year flag, and a ready-to-display summary string (e.g. "1st Year Free, then $9.99/yr"). Prices are scoped to your partner account’s catalogue.
The searched domain: When the search includes a TLD (e.g. coffee.com), the row matching that exact domain is flagged with is_searched_exact: true, so you can highlight “the domain you searched,” whether it’s available or taken.Authorizations
Your partner API key. Include it in the Authorization header as Bearer <token>. Unauthenticated requests return 401 Unauthorized.
Query Parameters
The name to search: either a bare label (coffee) or a full domain including a TLD (coffee.com). Include a TLD to search that exact domain; the matching row is returned flagged is_searched_exact: true. Maximum 63 characters.
"coffee"
When true, MetaSearch automatically suggests additional available names (close variations coined around your search_term) and folds them into the results list alongside the exact match. Defaults to false.
true
When true, MetaSearch appends a block of AI-suggested names: brandable, model-coined alternatives to your search_term, each returned with type: "ai_suggestion". Independent of autosuggest; defaults to false.
true
Response
Ranked search results with live availability and pricing.
The full result set, in render order: the hero first (when present), then the results list, then any AI-suggested names. Never paginated.
Show child attributes
Show child attributes
Total number of results-list items.
Results-list items beyond the first 10 (use to drive a "show more" affordance).
Present only when there are no results (e.g. "No results for this name").
Show child attributes
Show child attributes