Public API quickstart
Find published domains with curl or the official JavaScript and TypeScript client.
Authentication
These requests are anonymous. Do not add an Authorization header, API key, or browser cookie.
1. Read the catalog
curl --fail-with-body --silent --show-error 'https://namegarage.com/domains.json'
The response is JSON with brand, count, and a domains array.
For filtered results with current prices, use search instead of downloading the catalog repeatedly.
2. Search by project description
curl --fail-with-body --silent --show-error --get 'https://namegarage.com/api/search' \
--data-urlencode 'q=meal-planning app' \
--data-urlencode 'limit=3'
The JSON response has query, priced_at, meaning, count, and results.
Each result has name, url, tier, price_usd, match, and fits.
A query may return no matches. A null price_usd means offer-only, not zero.
Add --data-urlencode 'max_price=5000' to set a whole-USD budget.
You can also filter by tier, tld, or max_length. The maximum limit is 50.
The OpenAPI reference describes every parameter.
3. Connect an MCP client
In a client that supports remote MCP, choose Streamable HTTP and no authentication. Use this server URL:
https://namegarage.com/api/mcp
Call search_domains with these arguments:
{"query":"meal-planning app","limit":3}
To check one result, call get_domain with its complete name, including the suffix.
See MCP connection instructions for client guidance.
Handle the response
Open a returned url to review the domain. Prices and availability can change.
Search and MCP do not reserve names or buy them.
If you receive 429 or 503, wait for Retry-After before retrying.
For HTTP 400, correct the parameter named in the error.
Do not retry form, account, or transaction endpoints as alternatives.
Read the API documentation for limits and price semantics.
JavaScript and TypeScript
Install the official SDK:
npm install @namegarage/[email protected]
import { Namegarage } from '@namegarage/sdk';
const client = new Namegarage();
const matches = await client.searchDomains('meal-planning app', {
maxPrice: 5000,
limit: 3,
});
for (const domain of matches.results) {
console.log(domain.name, domain.price_usd, domain.url);
}
const catalog = await client.getCatalog();
console.log(catalog.count);
Use Node.js 22 or later, or bundle the SDK for a modern browser. It supports ESM and CommonJS,
includes TypeScript declarations, and has no runtime dependencies. No credentials are required.
Options use maxPrice and maxLength; response fields keep their API names, including price_usd.
The client never retries automatically. HTTP failures throw NamegarageApiError, with status,
code, and retryAfterSeconds; honor the server's retry time. A null price still means offer-only.
See the source and complete examples for cancellation,
timeouts, and error handling. The SDK only reads the public catalog and search API.