API
Query the same domain database programmatically.
Authentication
Send your API key as a Bearer token (or in the X-API-Key header). Create an API key
curl -H "Authorization: Bearer sk_…" \ "https://new.namester.ai/api/v1/domains?view=auction&tld=com&maxPrice=100&sort=ends_at&order=asc"
- Rate limits: your plan's hourly allowance applies across all your keys (Free 20/hour, Pro 25,000/hour, Max 100,000/hour), plus a per-key burst guard of 600 requests/minute on paid plans. Every response carries X-RateLimit-* headers for the hourly window; 429 includes Retry-After.
- Responses are JSON with code, message and data fields; code 0 means success.
- Pagination is keyset-based: pass nextCursor back as cursor until it is null.
- Prices are USD, times are UTC (ISO 8601).
- Machine-readable spec: /api/v1/openapi.json
GET/api/v1/domains
List domains. Same filters as the /domains page; paid-plan filters return 403 without a paid plan.
| Parameter | Type | Description |
|---|---|---|
| q | string | Keywords Keywords; every token must appear in the label (name without the suffix). |
| anyOf | string (csv) | Contains any of Comma-separated tokens; at least one must appear in the label. |
| exclude | string (csv) | Exclude Comma-separated tokens that must not appear in the label. |
| startsWith | string | Starts with Label starts with this text. |
| endsWith | string | Ends with Label ends with this text. |
| view | all | auction | closeout | buy_now | make_offer | pre_release | pending_delete | deleted | registered | all = every domain with an active listing (best offer); a listing kind = one row per active listing of that kind; deleted / registered = registry drop events. |
| tld | string (csv) | Extensions Comma-separated public suffixes, e.g. com,io,co.uk. |
| tldGroup | legacy_gtld | cctld | new_gtld | private (csv) | Extension group Comma-separated: legacy_gtld, cctld, new_gtld, private. |
| source | namecheap | godaddy | dynadot | sedo | dropcatch | gname | catched | czds | registry-se | registry-pl | registry-uk (csv) | Source Comma-separated data sources. |
| minPrice | number 0–1000000000 | Min price Minimum price in USD (best offer in view=all, the listing price otherwise). |
| maxPrice | number 0–1000000000 | Max price Maximum price in USD. |
| minLength | integer 1–63 | Min length Minimum label length (characters, IDN decoded). |
| maxLength | integer 1–63 | Max length Maximum label length. |
| noHyphen | boolean | No hyphens Exclude labels with a hyphen. |
| noDigit | boolean | No digits Exclude labels with a digit. |
| onlyDigits | boolean | Digits only Only all-digit labels. |
| idn | exclude | include | only | IDN IDN handling: exclude, include (default) or only. |
| pattern | string | Pattern Character pattern: C consonant, V vowel, N digit, H hyphen, L any letter. E.g. CVCV, LLLL. |
| minWords | integer 1–3 | Min words Minimum dictionary words in the label (1–3). |
| maxWords | integer 1–3 | Max words Maximum dictionary words in the label (1–3). |
| dictionary | boolean | Single dictionary word Label is exactly one dictionary word. |
| endingWithin | integer 1–720 | Ending within Ends within N hours. |
| minScore | integer 0–100 | Min score Minimum Namester Score (0–100). |
| maxScore | integer 0–100 | Max score Maximum Namester Score. |
| minAge | integer 0–50 | Min age (years) Minimum age in years. |
| minBids | integer 0–10000 | Min bids Minimum bids (total across listings in view=all). |
| minBacklinksPaid | integer 0–1000000000 | Min backlinks Minimum backlinks. Paid plans only (403 otherwise). |
| minDrPaid | integer 0–100 | Min DR Minimum Ahrefs DR. Paid plans only (403 otherwise). |
| minTfPaid | integer 0–100 | Min TF Minimum Majestic Trust Flow. Paid plans only (403 otherwise). |
| minCfPaid | integer 0–100 | Min CF Minimum Majestic Citation Flow. Paid plans only (403 otherwise). |
| minTrafficPaid | integer 0–1000000000 | Min traffic Minimum estimated monthly traffic. Paid plans only (403 otherwise). |
| minTldsTakenPaid | integer 0–2000 | Min other TLDs (tracked) Minimum number of other TLDs of the same label in our data (TLDs we track, not registry totals). Paid plans only (403 otherwise). |
| minSearchVolumePaid | integer 0–1000000000 | Min search volume Minimum monthly search volume reported by a supplier. Paid plans only (403 otherwise). |
| minBirthYear | integer 1985–2100 | Earliest birth year Earliest registration year (where a source reports it). |
| maxBirthYear | integer 1985–2100 | Latest birth year Latest registration year. |
| minWaybackYear | integer 1996–2100 | First Wayback year from Earliest first Wayback Machine capture year (only names with Wayback data). |
| maxWaybackYear | integer 1996–2100 | First Wayback year to Latest first Wayback capture year. |
| minWaybackAge | integer 0–50 | Min Wayback age (years) Minimum years since the first Wayback capture (only names with Wayback data). |
| days | integer 1–90 | Last deleted / registered views: look-back window in days (default 7). |
| sort | score | price | ends_at | length | bids | name | age | first_seen | Sort field. Sorting by a field that can be empty (price, ends_at, age, bids) only returns rows where it is set. deleted / registered support first_seen (event date) and name. |
| order | asc | desc | asc or desc. |
| pageSize | 25 | 50 | 100 | 200 | Rows per page: 25, 50, 100 or 200. |
| cursor | string | Opaque cursor from the previous response (nextCursor). |
Response
{
"code": 0,
"message": "ok",
"data": {
"items": [{ "name": "…", "tld": "com", "score": 72, "kind": "auction",
"source": "godaddy", "priceUsd": 45, "bids": 3,
"endsAt": "2026-11-08T14:00:00.000Z", "listings": 2, … }],
"nextCursor": "eyJzIjoic2NvcmUi…",
"view": "auction", "sort": "ends_at", "order": "asc",
"ignoredFilters": []
}
}Errors: 400 invalid parameters · 401 missing/invalid key · 403 paid filter · 404 unknown domain · 429 rate limited.
GET/api/v1/domains/{name}
Domain profile: active listings across sources, score breakdown, SEO metrics, price history, comps, other extensions and similar names.
GET/api/v1/stats
Inventory totals by listing type, source and registry event (cached up to 5 minutes).