{"openapi":"3.1.0","info":{"title":"getdomaindata.com API","version":"1","description":"Technology and domain intelligence over HTTPS: the technologies a website runs, its hosting and identity fields, and our latest traffic and employee estimates. Bearer-key auth. Metered by domains queried. Docs: https://getdomaindata.com/docs/api","contact":{"email":"contact@getdomaindata.com"},"termsOfService":"https://getdomaindata.com/terms"},"servers":[{"url":"https://getdomaindata.com/api/v1"}],"components":{"securitySchemes":{"bearerKey":{"type":"http","scheme":"bearer","description":"Keys look like gdd_live_ followed by 48 hex characters. Create one on https://getdomaindata.com/account (paid plans). Send it only in the Authorization header, never in a URL."}},"headers":{"X-Quota-Limit":{"description":"Lookups included this month (plan + packs).","schema":{"type":"integer"}},"X-Quota-Remaining":{"description":"Lookups left this month.","schema":{"type":"integer"}},"X-Quota-Reset":{"description":"When the month rolls over.","schema":{"type":"string"}}}},"paths":{"/domain/{domain}":{"get":{"operationId":"domain","summary":"Domain profile","description":"Everything we serve for one hostname: its technologies, network, platform, identity fields, and the latest traffic and employee estimates where we hold them. Costs 1 lookup.","security":[{"bearerKey":[]}],"parameters":[{"name":"domain","in":"path","required":true,"description":"A hostname, for example allbirds.com or shop.example.co.uk. Profiles are per hostname, so a subdomain is its own record.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"domain":"allbirds.com","resolves":true,"technologies":["Amazon SES","Apple","Cloudflare","DigiCert/Azure","DocuSign","Google","Google Tag Manager","HSTS","..."],"network":"Shopify","platform":"shopify","registrar":null,"age_days":null,"country_iso":null,"lang_norm":"en","http_status":null,"redirect_to":null,"traffic":{"estimated_monthly_visits":2137979,"band":"1M-10M","as_of":"2026-08"},"employees":{"apex":"allbirds.com","low":501,"high":2000,"point":null,"as_of":"2026-09-10"}}}}}},"400":{"description":"bad_domain: The domain is not a plausible hostname. Send lower-case hostnames of 3 to 253 characters, letters, digits, dots and hyphens only.","content":{"application/json":{"example":{"error":"bad_domain"}}}},"401":{"description":"invalid_key: The key is missing, malformed, or revoked. Check the Authorization header and the key on your account page. Revoked keys stop on the next request.","content":{"application/json":{"example":{"error":"invalid_key"}}}},"402":{"description":"quota_exhausted: This month's lookups are spent. Wait for the first of the month, or add a pack from the account page. The API never throttles silently.","content":{"application/json":{"example":{"error":"quota_exhausted"}}}},"404":{"description":"not_found: We do not hold that domain or technology. Nothing to retry. The lookup is still spent for domain calls.","content":{"application/json":{"example":{"error":"not_found"}}}},"429":{"description":"rate_limited: Too many requests this minute for your plan. Back off until the reset time in the body, then retry.","content":{"application/json":{"example":{"error":"rate_limited"}}}},"503":{"description":"metering_unavailable: The quota could not be read, so nothing was served. Retry in a moment. No lookup was spent.","content":{"application/json":{"example":{"error":"metering_unavailable"}}}}}}},"/domains/batch":{"post":{"operationId":"batch","summary":"Batch profiles","description":"Up to 100 profiles in one call, each with the same fields as the single-domain profile, including the latest traffic and employee estimates. Hostnames we do not hold come back in a missing array. Costs 1 lookup per domain, found or not.","security":[{"bearerKey":[]}],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"domain":"allbirds.com","resolves":true,"technologies":["Amazon SES","Apple","Cloudflare","DigiCert/Azure","DocuSign","Google","Google Tag Manager","HSTS","..."],"network":"Shopify","platform":"shopify","registrar":null,"age_days":null,"country_iso":null,"lang_norm":"en","http_status":null,"redirect_to":null,"traffic":{"estimated_monthly_visits":2137979,"band":"1M-10M","as_of":"2026-08"},"employees":{"apex":"allbirds.com","low":501,"high":2000,"point":null,"as_of":"2026-09-10"}}],"missing":["example.invalid"]}}}},"400":{"description":"bad_batch: The body is not {\"domains\": [...]} with 1 to 100 valid hostnames. Send a JSON body with a domains array of at most 100 hostnames.","content":{"application/json":{"example":{"error":"bad_batch"}}}},"401":{"description":"invalid_key: The key is missing, malformed, or revoked. Check the Authorization header and the key on your account page. Revoked keys stop on the next request.","content":{"application/json":{"example":{"error":"invalid_key"}}}},"402":{"description":"quota_exhausted: This month's lookups are spent. Wait for the first of the month, or add a pack from the account page. The API never throttles silently.","content":{"application/json":{"example":{"error":"quota_exhausted"}}}},"429":{"description":"rate_limited: Too many requests this minute for your plan. Back off until the reset time in the body, then retry.","content":{"application/json":{"example":{"error":"rate_limited"}}}},"503":{"description":"metering_unavailable: The quota could not be read, so nothing was served. Retry in a moment. No lookup was spent.","content":{"application/json":{"example":{"error":"metering_unavailable"}}}}},"requestBody":{"required":true,"content":{"application/json":{"example":{"domains":["allbirds.com","example.invalid"]}}}}}},"/traffic/{host}":{"get":{"operationId":"traffic","summary":"Traffic estimate with history","description":"Our estimated monthly visits for one hostname, with the month-by-month history behind the current figure. The basic profile already carries the latest figure; use this when you want the series. Costs 1 lookup.","security":[{"bearerKey":[]}],"parameters":[{"name":"host","in":"path","required":true,"description":"A hostname. Estimates are per hostname and do not carry across subdomains.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"host":"allbirds.com","estimated_monthly_visits":2137979,"band":"1M-10M","as_of":"2026-08","history":[{"month":"2026-06","visits":2050000},{"month":"2026-07","visits":2110000},{"month":"2026-08","visits":2137979}]}}}}},"400":{"description":"bad_host: The hostname is not plausible. Same rule as bad_domain.","content":{"application/json":{"example":{"error":"bad_host"}}}},"401":{"description":"invalid_key: The key is missing, malformed, or revoked. Check the Authorization header and the key on your account page. Revoked keys stop on the next request.","content":{"application/json":{"example":{"error":"invalid_key"}}}},"402":{"description":"quota_exhausted: This month's lookups are spent. Wait for the first of the month, or add a pack from the account page. The API never throttles silently.","content":{"application/json":{"example":{"error":"quota_exhausted"}}}},"404":{"description":"not_found: We do not hold that domain or technology. Nothing to retry. The lookup is still spent for domain calls.","content":{"application/json":{"example":{"error":"not_found"}}}},"429":{"description":"rate_limited: Too many requests this minute for your plan. Back off until the reset time in the body, then retry.","content":{"application/json":{"example":{"error":"rate_limited"}}}},"503":{"description":"metering_unavailable: The quota could not be read, so nothing was served. Retry in a moment. No lookup was spent.","content":{"application/json":{"example":{"error":"metering_unavailable"}}}}}}},"/employees/{host}":{"get":{"operationId":"employees","summary":"Employee estimate","description":"Our estimated headcount for the organisation behind a hostname. Keyed by the registrable domain, so every host under an apex returns the same figure. Costs 1 lookup.","security":[{"bearerKey":[]}],"parameters":[{"name":"host","in":"path","required":true,"description":"Any hostname under the organisation's domain.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"host":"allbirds.com","apex":"allbirds.com","estimated_employees":{"low":501,"high":2000,"point":null},"as_of":"2026-09-10"}}}}},"400":{"description":"bad_host: The hostname is not plausible. Same rule as bad_domain.","content":{"application/json":{"example":{"error":"bad_host"}}}},"401":{"description":"invalid_key: The key is missing, malformed, or revoked. Check the Authorization header and the key on your account page. Revoked keys stop on the next request.","content":{"application/json":{"example":{"error":"invalid_key"}}}},"402":{"description":"quota_exhausted: This month's lookups are spent. Wait for the first of the month, or add a pack from the account page. The API never throttles silently.","content":{"application/json":{"example":{"error":"quota_exhausted"}}}},"404":{"description":"not_found: We do not hold that domain or technology. Nothing to retry. The lookup is still spent for domain calls.","content":{"application/json":{"example":{"error":"not_found"}}}},"429":{"description":"rate_limited: Too many requests this minute for your plan. Back off until the reset time in the body, then retry.","content":{"application/json":{"example":{"error":"rate_limited"}}}},"503":{"description":"metering_unavailable: The quota could not be read, so nothing was served. Retry in a moment. No lookup was spent.","content":{"application/json":{"example":{"error":"metering_unavailable"}}}}}}},"/technology/{name}":{"get":{"operationId":"technology","summary":"Technology count","description":"How many domains we detected running one technology. Aggregates only; the domain lists themselves are a download, not an API surface. Costs Free.","security":[{"bearerKey":[]}],"parameters":[{"name":"name","in":"path","required":true,"description":"The technology name exactly as it appears on its page, URL-encoded, for example Google%20Tag%20Manager.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"tech":"Shopify","domains":7407815}}}}},"401":{"description":"invalid_key: The key is missing, malformed, or revoked. Check the Authorization header and the key on your account page. Revoked keys stop on the next request.","content":{"application/json":{"example":{"error":"invalid_key"}}}},"404":{"description":"not_found: We do not hold that domain or technology. Nothing to retry. The lookup is still spent for domain calls.","content":{"application/json":{"example":{"error":"not_found"}}}},"503":{"description":"metering_unavailable: The quota could not be read, so nothing was served. Retry in a moment. No lookup was spent.","content":{"application/json":{"example":{"error":"metering_unavailable"}}}}}}},"/meta/technologies":{"get":{"operationId":"catalog","summary":"Technology catalog","description":"Every technology we track with its domain count, grouped by category. Cache it; it changes with each data release. Costs Free.","security":[{"bearerKey":[]}],"parameters":[],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"category":"ecommerce","technologies":[{"tech":"Shopify","domains":7407815},{"tech":"WooCommerce","domains":0},"..."]},"..."]}}}},"401":{"description":"invalid_key: The key is missing, malformed, or revoked. Check the Authorization header and the key on your account page. Revoked keys stop on the next request.","content":{"application/json":{"example":{"error":"invalid_key"}}}}}}}},"x-quotas":[{"plan":"Pro","lookups":2000,"perMinute":60},{"plan":"Business","lookups":50000,"perMinute":300},{"plan":"Business Plus","lookups":250000,"perMinute":600}],"x-pack-lookups":25000,"x-changelog":[]}