Look up what any domain runs, over HTTPS, in JSON. Keys live on your account page.
Create a key on your account page, then ask about a domain:
curl https://getdomaindata.com/api/v1/domain/allbirds.com \
-H "Authorization: Bearer gdd_live_YOUR_KEY"The response is the domain profile we serve on the site:
{
"data": {
"domain": "allbirds.com",
"resolves": true,
"technologies": ["Shopify", "Cloudflare", "Google Tag Manager",
"PayPal", "Zendesk", "..."],
"network": "Shopify",
"platform": "shopify",
"country_iso": null,
"lang_norm": "en"
}
}Every request carries Authorization: Bearer gdd_live_…. We store a hash of the key, never the key, so the full secret appears once, at creation. A revoked key stops working on the next request. Keys belong to your account, not to a seat, and there is no charge for extra keys.
| Endpoint | Returns | Costs |
|---|---|---|
| GET /api/v1/domain/{domain} | One domain profile | 1 lookup |
| POST /api/v1/domains/batch | Up to 100 profiles per call. Body: {"domains": [...]}. Domains we do not hold come back in a missing array. | 1 lookup per domain |
| GET /api/v1/traffic/{host} | Our estimated monthly visits for one hostname, with the monthly history (estimated_monthly_visits, band,as_of, history[]). Estimates are per hostname and do not carry across subdomains. | 1 lookup |
| GET /api/v1/employees/{host} | Our estimated employee count for the organisation behind a hostname (low, high, and apoint figure when we hold one). Keyed by the registrable domain, so every host under it returns the same estimate. | 1 lookup |
| GET /api/v1/technology/{name} | The domain count for one technology | Free |
| GET /api/v1/meta/technologies | The full technology catalog with counts, by category | Free |
| Plan | Lookups a month | Requests a minute |
|---|---|---|
| Pro | 2,000 | 60 |
| Business | 50,000 | 300 |
| Business Plus | 250,000 | 600 |
| 401 invalid_key | The key is missing, malformed, or revoked. |
| 402 quota_exhausted | The month's lookups are spent. The API never throttles silently: at the limit it answers 402 until the month rolls over or a pack is added. |
| 429 rate_limited | Too many requests this minute. The body carries a reset time. |
| 404 not_found | We do not hold that domain. The lookup is still spent. |