The profile, the latest traffic estimate and the latest employee estimate for one domain as a single flat object, built for tools that map JSON paths onto table columns: Clay's HTTP API column, n8n, Zapier, a spreadsheet. Every key is always present and null where we hold nothing. A hostname we hold nothing on is a 200 with found false, not a 404, so a table run does not stop on it.
The profile, the latest traffic estimate and the latest employee estimate for one domain as a single flat object, built for tools that map JSON paths onto table columns: Clay's HTTP API column, n8n, Zapier, a spreadsheet. Every key is always present and null where we hold nothing. A hostname we hold nothing on is a 200 with found false, not a 404, so a table run does not stop on it.
| Name | In | Type | Required | Meaning |
|---|---|---|---|---|
| input | body | string | yes | A domain, a URL or a work email address. We drop the scheme, path, port, a leading www. and the part before an @ ourselves. The same call works as GET /enrich?input=... for tools that only send GET. |
curl https://getdomaindata.com/api/v1/enrich \
-H "Authorization: Bearer gdd_live_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"https://www.gymshark.com/"}'const KEY = process.env.GDD_API_KEY;
const r = await fetch("https://getdomaindata.com/api/v1/enrich", {
method: "POST",
headers: { Authorization: "Bearer " + KEY, "Content-Type": "application/json" },
body: JSON.stringify({"input":"https://www.gymshark.com/"}),
});
const { data } = await r.json();
console.log(r.headers.get("X-Quota-Remaining"), data);import os, requests
h = {"Authorization": "Bearer " + os.environ["GDD_API_KEY"]}
r = requests.post("https://getdomaindata.com/api/v1/enrich", headers=h, json={"input":"https://www.gymshark.com/"})
print(r.headers.get("X-Quota-Remaining"), r.json()["data"]){
"data": {
"domain": "gymshark.com",
"found": true,
"resolves": true,
"platform": "shopify",
"network": "Shopify",
"country_iso": null,
"lang_norm": "en",
"technologies": [
"Adobe",
"Adobe Acrobat Sign",
"Afterpay",
"Algolia",
"Amazon CloudFront",
"Amazon Web Services",
"Anthropic",
"Apple",
"Atlassian",
"Cloudflare",
"Contentful",
"Facebook Pixel",
"GlobalSign",
"Google",
"Google Tag Manager",
"HSTS",
"HTTP/3",
"Linkedin Insight Tag",
"Mailchimp",
"Meta",
"Microsoft 365",
"Mixpanel",
"mParticle",
"Next.js",
"OneTrust",
"Open Graph",
"OpenAI",
"PayPal",
"Proofpoint",
"PWA",
"React",
"SendGrid",
"Shopify",
"Webpack",
"Zoom"
],
"technologies_text": "Adobe, Adobe Acrobat Sign, Afterpay, Algolia, Amazon CloudFront, Amazon Web Services, Anthropic, Apple, Atlassian, Cloudflare, Contentful, Facebook Pixel, GlobalSign, Google, Google Tag Manager, HSTS, HTTP/3, Linkedin Insight Tag, Mailchimp, Meta, Microsoft 365, Mixpanel, mParticle, Next.js, OneTrust, Open Graph, OpenAI, PayPal, Proofpoint, PWA, React, SendGrid, Shopify, Webpack, Zoom",
"technology_count": 35,
"tech_ecommerce": [
"Shopify"
],
"tech_payments": [
"Afterpay",
"PayPal"
],
"tech_website_platforms": [
"Contentful"
],
"tech_wordpress": null,
"tech_analytics": [
"Google Tag Manager"
],
"tech_advertising": [
"Facebook Pixel",
"Linkedin Insight Tag"
],
"tech_email_marketing": [
"Mailchimp"
],
"tech_marketing": null,
"tech_chat_support": null,
"tech_sales": null,
"tech_forms": null,
"tech_business_email": [
"Microsoft 365",
"Proofpoint"
],
"tech_business_collaboration": [
"Adobe",
"Atlassian",
"Zoom"
],
"tech_communications": [
"SendGrid"
],
"tech_hosting": [
"Amazon Web Services"
],
"tech_cdn": [
"Amazon CloudFront",
"Cloudflare"
],
"tech_security": [
"Apple",
"GlobalSign",
"HSTS"
],
"tech_privacy": [
"OneTrust"
],
"tech_web_servers": [
"HTTP/3"
],
"tech_languages_frameworks": null,
"tech_frontend_frameworks": [
"Next.js",
"PWA",
"React"
],
"tech_javascript_libraries": [
"Webpack"
],
"tech_databases": null,
"tech_performance": null,
"tech_media": null,
"tech_social_media_community": [
"Meta"
],
"tech_seo": [
"Google",
"Open Graph"
],
"tech_fonts_icons": null,
"tech_developer_tools": null,
"tech_other": [
"Adobe Acrobat Sign",
"Algolia",
"Anthropic",
"Mixpanel",
"mParticle",
"OpenAI"
],
"estimated_monthly_visits": 12676275,
"traffic_band": "10M-100M",
"traffic_month": "2026-09",
"estimated_employees_low": 501,
"estimated_employees_high": 2000,
"employees_range": "501 to 2,000",
"employees_as_of": "2026-09-10",
"employees_apex": "gymshark.com"
}
}| Field | Type | Meaning |
|---|---|---|
| domain | string | The hostname we looked up, after cleanup. |
| found | boolean | False when every other field is null: no profile, no traffic estimate for the hostname, no employee estimate for its registrable domain. The lookup is spent either way. |
| resolves | boolean | null | Whether the hostname resolved when last checked. |
| platform | string | null | The site platform when it is one we classify (for example shopify). |
| network | string | null | The network or provider the site is served from. |
| country_iso | string | null | Two-letter country code where we could place the site. |
| lang_norm | string | null | Primary language code where known. |
| technologies | string[] | null | Every technology we detected on the site, alphabetical. |
| technologies_text | string | null | The same list as one comma-separated string, for CRM fields and filters. |
| technology_count | number | null | How many technologies we detected. |
| tech_<category> | string[] | null | The technologies in one of our 30 categories, one key per category, always present: tech_ecommerce, tech_payments, tech_website_platforms, tech_wordpress, tech_analytics, tech_advertising and so on through tech_other. Null when the stack has nothing in that category. |
| estimated_monthly_visits | number | null | Our estimated visits for the latest month, for this hostname only. |
| traffic_band | string | null | The range the estimate falls in, for example 10M-100M. |
| traffic_month | string | null | The month the estimate is for, YYYY-MM. |
| estimated_employees_low | number | null | Lower bound of the employee band for the organization behind the hostname. |
| estimated_employees_high | number | null | Upper bound; null with a low value means the top band is open-ended. |
| employees_range | string | null | The band as the site prints it, for example 501 to 2,000 or 20,000+. |
| employees_as_of | string | null | Date of the employee estimate. |
| employees_apex | string | null | The registrable domain the employee estimate belongs to. |
| 401 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. |
| 429 rate_limited | Too many requests this minute for your plan. Back off until the reset time in the body, then retry. |
| 402 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. |
| 400 bad_domain | We could not read a hostname out of what you sent. No lookup was spent. Send a hostname or a URL. We drop the scheme, path, port and a leading www. before the lookup, so https://www.acme.com/about and acme.com are the same request. |
| 503 metering_unavailable | The quota could not be read, so nothing was served. Retry in a moment. No lookup was spent. |