API reference
Read the public domain catalog and search for names. No account or API key is needed.
API quickstart · Changelog · Download OpenAPI JSON · Connect an AI assistant
Namegarage public domain catalog (1.3.0)
Anonymous read-only catalog and search. No account, API key, bearer token, or browser cookie is required.
Overview
Servers
https://namegarage.com
Endpoint details
Catalog
Read the deployed domain catalog snapshot.
GET /domains.json
List public domains for sale
Responses
200 — Public sales catalog
application/json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"base_url": {
"type": "string"
},
"brand": {
"type": "string"
},
"count": {
"minimum": 0,
"type": "integer"
},
"domains": {
"items": {
"additionalProperties": false,
"properties": {
"buy_now": {
"type": [
"integer",
"null"
]
},
"categories": {
"items": {
"type": "string"
},
"type": "array"
},
"deal": {
"additionalProperties": false,
"description": "A current or scheduled weekly offer. Its price applies only while starts \u003c= now \u003c ends; otherwise use buy_now.",
"properties": {
"ends": {
"format": "date-time",
"type": "string"
},
"price": {
"type": "integer"
},
"starts": {
"format": "date-time",
"type": "string"
}
},
"required": [
"price",
"starts",
"ends"
],
"type": "object"
},
"display": {
"type": "string"
},
"low": {
"type": [
"integer",
"null"
]
},
"name": {
"type": "string"
},
"path": {
"type": "string"
},
"promotion": {
"additionalProperties": false,
"properties": {
"ends": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"kind": {
"enum": [
"regular",
"weekly",
"price_drop"
]
},
"minimum": {
"type": [
"integer",
"null"
]
},
"next": {
"additionalProperties": false,
"properties": {
"price": {
"type": "integer"
},
"starts": {
"format": "date-time",
"type": "string"
}
},
"required": [
"starts",
"price"
],
"type": [
"object",
"null"
]
},
"price": {
"type": [
"integer",
"null"
]
},
"version": {
"pattern": "^[a-f0-9]{64}$",
"type": "string"
}
},
"required": [
"price",
"kind",
"minimum",
"ends",
"next",
"version"
],
"type": "object"
},
"regular_price": {
"type": [
"integer",
"null"
]
},
"sld": {
"type": "string"
},
"tier": {
"enum": [
"",
"Platinum",
"Gold",
"Silver",
"Bronze",
"Bargain"
],
"type": "string"
},
"tld": {
"type": "string"
},
"visits": {
"type": "integer"
},
"visits_through": {
"format": "date",
"type": "string"
}
},
"required": [
"name",
"sld",
"tld",
"path",
"tier",
"buy_now",
"categories",
"low"
],
"type": "object"
},
"type": "array"
},
"priced_at": {
"type": "integer"
},
"traffic_max_stale_days": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"brand",
"base_url",
"count",
"traffic_max_stale_days",
"domains"
],
"type": "object"
}
GET /api/domain
Look up a published domain
Parameters
namerequired- Complete domain name, including its suffix; no URL or path.
{ "description": "Complete domain name, including its suffix; no URL or path.", "maxLength": 200, "minLength": 3, "type": "string" }
Responses
200 — Public catalog operation result; missing lookup names use found:false
application/json
{
"additionalProperties": false,
"properties": {
"domain": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"description": {
"type": "string"
},
"display": {
"type": "string"
},
"fits": {
"description": "The published use case or description this name matched; null when the match was by spelling only or the name\u0027s copy is withheld.",
"type": [
"string",
"null"
]
},
"match": {
"description": "exact: the query is the whole name or its first label; keyword: a match by spelling; meaning: a match by what the name is for.",
"enum": [
"exact",
"keyword",
"meaning"
]
},
"name": {
"type": "string"
},
"price_usd": {
"description": "Current price in whole USD, a running deal included; null for an offer-only name, which has no fixed price (make an offer on its page).",
"type": [
"integer",
"null"
]
},
"regular_price_usd": {
"description": "The usual price, present only while a discount is running.",
"type": "integer"
},
"tier": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string"
},
"use_cases": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"url",
"tier",
"price_usd",
"match",
"fits"
],
"type": "object"
},
{
"type": "null"
}
]
},
"found": {
"type": "boolean"
},
"name": {
"type": "string"
},
"priced_at": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"name",
"priced_at",
"found",
"domain"
],
"type": "object"
}
400 — Invalid, unknown or duplicate query parameters
404 — Not this origin or path
429 — Busy; retry after the Retry-After header
503 — Prices cannot be verified right now ("prices_unverified") or search is unavailable; retry after the Retry-After header
405 — Only GET is supported
GET /api/purchase-options
Compare outright and lease-to-own options
Parameters
namerequired- Complete domain name, including its suffix; no URL or path.
{ "description": "Complete domain name, including its suffix; no URL or path.", "maxLength": 200, "minLength": 3, "type": "string" }
Responses
200 — Public catalog operation result; missing lookup names use found:false
application/json
{
"additionalProperties": false,
"properties": {
"domain": {
"oneOf": [
{
"additionalProperties": false,
"properties": {
"display": {
"type": "string"
},
"fits": {
"description": "The published use case or description this name matched; null when the match was by spelling only or the name\u0027s copy is withheld.",
"type": [
"string",
"null"
]
},
"match": {
"description": "exact: the query is the whole name or its first label; keyword: a match by spelling; meaning: a match by what the name is for.",
"enum": [
"exact",
"keyword",
"meaning"
]
},
"name": {
"type": "string"
},
"price_usd": {
"description": "Current price in whole USD, a running deal included; null for an offer-only name, which has no fixed price (make an offer on its page).",
"type": [
"integer",
"null"
]
},
"purchase_options": {
"additionalProperties": false,
"properties": {
"buy_outright": {
"oneOf": [
{
"type": "null"
},
{
"additionalProperties": false,
"properties": {
"total_usd": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"total_usd"
],
"type": "object"
}
]
},
"currency": {
"const": "USD"
},
"lease_base_price_usd": {
"minimum": 1,
"type": [
"integer",
"null"
]
},
"lease_to_own": {
"items": {
"additionalProperties": false,
"properties": {
"down_payment_usd": {
"minimum": 0,
"type": "integer"
},
"extra_cost_vs_buy_outright_usd": {
"minimum": 0,
"type": "integer"
},
"final_payment_usd": {
"minimum": 0,
"type": "integer"
},
"first_payment_usd": {
"minimum": 0,
"type": "integer"
},
"monthly_payment_usd": {
"minimum": 0,
"type": "integer"
},
"months": {
"minimum": 0,
"type": "integer"
},
"total_usd": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"months",
"down_payment_usd",
"first_payment_usd",
"monthly_payment_usd",
"final_payment_usd",
"total_usd",
"extra_cost_vs_buy_outright_usd"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"currency",
"buy_outright",
"lease_base_price_usd",
"lease_to_own"
],
"type": "object"
},
"regular_price_usd": {
"description": "The usual price, present only while a discount is running.",
"type": "integer"
},
"tier": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string"
}
},
"required": [
"name",
"url",
"tier",
"price_usd",
"match",
"fits",
"purchase_options"
],
"type": "object"
},
{
"type": "null"
}
]
},
"found": {
"type": "boolean"
},
"name": {
"type": "string"
},
"priced_at": {
"minimum": 0,
"type": "integer"
}
},
"required": [
"name",
"priced_at",
"found",
"domain"
],
"type": "object"
}
400 — Invalid, unknown or duplicate query parameters
404 — Not this origin or path
429 — Busy; retry after the Retry-After header
503 — Prices cannot be verified right now ("prices_unverified") or search is unavailable; retry after the Retry-After header
405 — Only GET is supported
Search
Find domains by keyword or by meaning, with optional filters.
GET /api/search
Search the public domains by keyword or by meaning
Parameters
qrequired- A domain, keyword, or description of the project the name should fit.
{ "maxLength": 200, "minLength": 2, "type": "string" } max_price- Maximum current price in whole USD.
{ "minimum": 1, "type": "integer" } tier- Limit matches to this pricing tier.
{ "enum": [ "Bargain", "Bronze", "Silver", "Gold", "Platinum" ] } tld- How the name ends: a TLD (com) or a longer suffix (co.uk), in ASCII (xn--p1ai) or Unicode; a leading dot is ignored.
{ "type": "string" } max_length- Maximum name length.
{ "maximum": 63, "minimum": 1, "type": "integer" } limit- Maximum number of matches to return.
{ "default": 20, "maximum": 50, "minimum": 1, "type": "integer" }
Responses
200 — Ranked matches with current prices
application/json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"count": {
"minimum": 0,
"type": "integer"
},
"meaning": {
"enum": [
"available",
"unavailable"
]
},
"priced_at": {
"type": "integer"
},
"query": {
"type": "string"
},
"results": {
"items": {
"additionalProperties": false,
"properties": {
"display": {
"type": "string"
},
"fits": {
"description": "The published use case or description this name matched; null when the match was by spelling only or the name\u0027s copy is withheld.",
"type": [
"string",
"null"
]
},
"match": {
"description": "exact: the query is the whole name or its first label; keyword: a match by spelling; meaning: a match by what the name is for.",
"enum": [
"exact",
"keyword",
"meaning"
]
},
"name": {
"type": "string"
},
"price_usd": {
"description": "Current price in whole USD, a running deal included; null for an offer-only name, which has no fixed price (make an offer on its page).",
"type": [
"integer",
"null"
]
},
"regular_price_usd": {
"description": "The usual price, present only while a discount is running.",
"type": "integer"
},
"tier": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string"
}
},
"required": [
"name",
"url",
"tier",
"price_usd",
"match",
"fits"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"query",
"priced_at",
"meaning",
"count",
"results"
],
"type": "object"
}
400 — A parameter is invalid: {"error": "invalid_parameter", "parameter": <name>}
404 — Not this origin or path
429 — Busy; retry after the Retry-After header
503 — Prices cannot be verified right now ("prices_unverified") or search is unavailable; retry after the Retry-After header
GET /api/alternatives
Find published alternatives
Parameters
namerequired- Complete reference domain name, including its suffix; no URL or path. It need not be in our catalog.
{ "description": "Complete reference domain name, including its suffix; no URL or path. It need not be in our catalog.", "maxLength": 200, "minLength": 3, "type": "string" } query- Optional project description or keywords to rank alternatives instead of the reference name’s first label.
{ "description": "Optional project description or keywords to rank alternatives instead of the reference name\u2019s first label.", "maxLength": 200, "minLength": 2, "type": "string" } max_price- Maximum whole USD cash price; excludes offer-only names.
{ "description": "Maximum whole USD cash price; excludes offer-only names.", "maximum": 9007199254740991, "minimum": 1, "type": "integer" } limit- limit
{ "default": 5, "maximum": 50, "minimum": 1, "type": "integer" }
Responses
200 — Public catalog operation result; missing lookup names use found:false
application/json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"count": {
"minimum": 0,
"type": "integer"
},
"meaning": {
"enum": [
"available",
"unavailable"
]
},
"name": {
"type": "string"
},
"priced_at": {
"type": "integer"
},
"query": {
"type": "string"
},
"results": {
"items": {
"additionalProperties": false,
"properties": {
"display": {
"type": "string"
},
"fits": {
"description": "The published use case or description this name matched; null when the match was by spelling only or the name\u0027s copy is withheld.",
"type": [
"string",
"null"
]
},
"match": {
"description": "exact: the query is the whole name or its first label; keyword: a match by spelling; meaning: a match by what the name is for.",
"enum": [
"exact",
"keyword",
"meaning"
]
},
"name": {
"type": "string"
},
"price_usd": {
"description": "Current price in whole USD, a running deal included; null for an offer-only name, which has no fixed price (make an offer on its page).",
"type": [
"integer",
"null"
]
},
"regular_price_usd": {
"description": "The usual price, present only while a discount is running.",
"type": "integer"
},
"tier": {
"type": [
"string",
"null"
]
},
"url": {
"type": "string"
}
},
"required": [
"name",
"url",
"tier",
"price_usd",
"match",
"fits"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"query",
"priced_at",
"meaning",
"count",
"results",
"name"
],
"type": "object"
}