{"openapi":"3.1.0","info":{"title":"Domain Overview API - Traffic, Authority, Tech Stack, Hiring","version":"1.0.0","description":"One domain in, a compact company-website profile out in a few seconds: Chrome traffic rank, authority score, technologies, live job openings, domain age and AI-crawler policy, with a one-line summary. Sections run in parallel, each with a time limit, and a failing section never blocks the rest. Built from open datasets, our ATS job index, RDAP and the site's own home page and robots.txt.\n\nAll endpoints accept GET (query string) or POST (JSON body). Errors use one shape: `{\"success\": false, \"error\": {\"code\", \"message\", \"retryable\"}}`. When a numeric `Retry-After` header is present, `error.retryAfterSeconds` is included.","contact":{"name":"TidyTools","url":"https://apify.com/tidytools"}},"servers":[{"url":"https://webcapture-api.yukailin.workers.dev","description":"Origin (reachable only through the marketplace gateway)"}],"tags":[{"name":"Domain Overview"}],"paths":{"/api/v1/domain-overview":{"get":{"operationId":"domainOverviewGet","summary":"Profile of one domain: authority, traffic, tech, hiring, age, AI policy (GET)","description":"One domain in, a compact profile out: Chrome traffic rank and trend, authority score and referring domains, the technologies on the home page, live job openings from our ATS index, domain age and registrar (RDAP), and the site's robots.txt policy for AI crawlers, with a one-line `summary`. Sections run in parallel and each is cut at 8 seconds (typical total 1-4 s), so a slow or blocked part never delays the rest: a section that failed is null with its reason in `sectionErrors`. A website that refuses our plain HTTP request (HTTP 403, bot check) still gets its traffic, authority, hiring, age and robots.txt sections. Only the home page, robots.txt, llms.txt, DNS and RDAP are read, with identifying User-Agents; no browser is used.","tags":["Domain Overview"],"parameters":[{"name":"domain","schema":{"type":"string"},"description":"A domain or website address: `stripe.com`, `https://www.stripe.com/pricing`. Alias: `url`. One domain per call.","required":true,"example":"stripe.com","in":"query"},{"name":"sections","schema":{"type":"string"},"description":"Comma-separated sections to include: `traffic`, `authority`, `techStack`, `hiring`, `domainAge`, `aiCrawlers`. Default: all. Fewer sections are faster.","required":false,"example":"authority,traffic,hiring","in":"query"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"const":true,"description":"Always true here."},"input":{"type":"string","description":"What you sent."},"domain":{"type":"string","description":"The registrable domain profiled (the home page and robots.txt are read from the host you gave, without `www.`)."},"website":{"type":"object","properties":{"status":{"type":"string"},"finalUrl":{"type":"string"},"httpStatus":{"type":"integer"}},"description":"Only with the techStack section: whether the home page could be read (`online`, `blocked`, `timeout`, `not_found`, `unreachable`, `error`), its final URL and HTTP status.","nullable":true},"summary":{"type":"string","description":"One plain-English line built from the sections present."},"traffic":{"type":"object","properties":{"globalTrafficRank":{"type":"integer"},"globalTrafficRankLabel":{"type":"string"},"trafficTrend":{"type":"string"},"topCountry":{"type":"string"},"topCountryRankLabel":{"type":"string"},"countriesListed":{"type":"integer"},"topCountries":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string"},"rank":{"type":"integer"},"rankLabel":{"type":"string"}}}}},"description":"Chrome UX Report: global bucket, 6-month trend, top country and the five most relevant countries.","nullable":true},"authority":{"type":"object","properties":{"authorityScore":{"type":"integer"},"referringDomains":{"type":"integer"},"webGraphRank":{"type":"integer"},"majesticRank":{"type":"integer"}},"description":"Authority score 0-100, referring domains, web-graph rank, Majestic rank (the Domain Authority API).","nullable":true},"techStack":{"type":"object","properties":{"technologyCount":{"type":"integer"},"technologies":{"type":"array","items":{"type":"string"}},"cms":{"type":"string","nullable":true},"ecommerce":{"type":"string","nullable":true},"analytics":{"type":"string","nullable":true},"hosting":{"type":"string","nullable":true}},"description":"Technologies detected on the home page by plain HTTP (the Tech Stack API without a browser): count, names with versions, CMS, e-commerce, analytics, hosting/CDN.","nullable":true},"hiring":{"type":"object","properties":{"hiringIndexed":{"type":"boolean"},"openJobs":{"type":"integer"},"remoteJobs":{"type":"integer"},"hiringCountries":{"type":"array","items":{"type":"string"}},"sampleJobTitles":{"type":"array","items":{"type":"string"}},"careersUrl":{"type":"string"},"atsPlatforms":{"type":"array","items":{"type":"string"}},"newestJobPostedAt":{"type":"string"}},"description":"Live openings from our ATS job index (16 ATS platforms): count, remote count, countries, sample titles, careers URL. `hiringIndexed: false` means the company has no careers board in the index, which is not the same as zero jobs.","nullable":true},"domainAge":{"type":"object","properties":{"domainCreatedAt":{"type":"string"},"domainAgeYears":{"type":"integer"},"registrar":{"type":"string"},"domainExpiresAt":{"type":"string"}},"description":"RDAP registration data: creation and expiry date, age in years, registrar.","nullable":true},"aiCrawlers":{"type":"object","properties":{"aiCrawlerPolicy":{"type":"string"},"aiSearchScore":{"type":"integer"},"aiBotsBlocked":{"type":"array","items":{"type":"string"}},"hasLlmsTxt":{"type":"boolean"}},"description":"robots.txt policy for AI crawlers (`open`, `search-only`, `blocks-search`, `restrictive`, `no-robots`, `unknown`), AI-search score, blocked bots, llms.txt.","nullable":true},"sections":{"type":"array","items":{"type":"string","enum":["traffic","authority","techStack","hiring","domainAge","aiCrawlers"]},"description":"The sections that were requested."},"dataVersions":{"type":"object","properties":{"trafficRankMonth":{"type":"string"},"authorityRelease":{"type":"string"}},"description":"Data release of the authority dataset and month of the traffic dataset."},"checkedAt":{"type":"string","description":"When the call started."},"durationMs":{"type":"integer","description":"Time taken in milliseconds (a few seconds: sections run in parallel, each cut at 8 s)."},"sectionErrors":{"type":"object","additionalProperties":{"type":"string"},"description":"Only when a section failed or took longer than 8 s: its reason. That section is null; the others are delivered."}}},"example":{"success":true,"input":"stripe.com","domain":"stripe.com","website":{"status":"online","finalUrl":"https://stripe.com/","httpStatus":200},"summary":"Top 10K worldwide (stable); authority 85/100 (710,778 referring domains); Next.js, React; 711 open jobs; domain 31 years old; open to AI crawlers","traffic":{"globalTrafficRank":10000,"globalTrafficRankLabel":"Top 10K websites worldwide","trafficTrend":"stable","topCountry":"it","topCountryRankLabel":"Top 1K in Italy","countriesListed":220,"topCountries":[{"country":"it","rank":1000,"rankLabel":"Top 1K"},{"country":"us","rank":5000,"rankLabel":"Top 5K"},{"country":"gb","rank":5000,"rankLabel":"Top 5K"},{"country":"fr","rank":5000,"rankLabel":"Top 5K"}]},"authority":{"authorityScore":85,"referringDomains":710778,"webGraphRank":64,"majesticRank":143},"techStack":{"technologyCount":2,"technologies":["Next.js","React"],"cms":null,"ecommerce":null,"analytics":null,"hosting":null},"hiring":{"hiringIndexed":true,"openJobs":711,"remoteJobs":111,"hiringCountries":["US","SG","CA","IE"],"sampleJobTitles":["Software Engineer, New Grad","Software Engineer, Intern","Abuse Investigator","Account Executive, Product - Local Payment Methods"],"careersUrl":"https://job-boards.greenhouse.io/stripe","atsPlatforms":["greenhouse"],"newestJobPostedAt":"2026-10-02T16:06:44.000Z"},"domainAge":{"domainCreatedAt":"1995-09-12T04:00:00Z","domainAgeYears":31,"registrar":"SafeNames Ltd.","domainExpiresAt":"2027-09-11T04:00:00Z"},"aiCrawlers":{"aiCrawlerPolicy":"open","aiSearchScore":100,"aiBotsBlocked":[],"hasLlmsTxt":true},"sections":["traffic","authority","techStack","hiring"],"dataVersions":{"trafficRankMonth":"2026-08","authorityRelease":"cc-main-2026-jul-aug-sep"},"checkedAt":"2026-10-03T14:16:00.487Z","durationMs":1093}}}},"400":{"description":"`invalid_request`: a parameter is missing, has the wrong type or is out of range (the message names it); a list that is too long; a string that is not a domain or website address.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"`too_large`: the request body is over 256 KB.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"`target_unreachable`: the domain does not resolve in DNS and is in none of our datasets, so there is nothing to report. Not billed (non-2xx).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"target_unreachable","message":"thisdomain-does-not-exist-xk29.com does not resolve in DNS and is in none of our datasets: there is nothing to report.","details":{"domain":"thisdomain-does-not-exist-xk29.com","sectionErrors":{"techStack":"The target site could not be reached (its domain name does not resolve).","aiCrawlers":"The site could not be reached (its domain name does not resolve)."}}}}}}},"502":{"description":"`upstream_error`: a source could not be read right now (a dataset is not available, or every section of an overview failed). Safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"domainOverview","summary":"Profile of one domain: authority, traffic, tech, hiring, age, AI policy","description":"One domain in, a compact profile out: Chrome traffic rank and trend, authority score and referring domains, the technologies on the home page, live job openings from our ATS index, domain age and registrar (RDAP), and the site's robots.txt policy for AI crawlers, with a one-line `summary`. Sections run in parallel and each is cut at 8 seconds (typical total 1-4 s), so a slow or blocked part never delays the rest: a section that failed is null with its reason in `sectionErrors`. A website that refuses our plain HTTP request (HTTP 403, bot check) still gets its traffic, authority, hiring, age and robots.txt sections. Only the home page, robots.txt, llms.txt, DNS and RDAP are read, with identifying User-Agents; no browser is used.\n\nThe same parameters as the GET form, sent as a JSON body.","tags":["Domain Overview"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"A domain or website address: `stripe.com`, `https://www.stripe.com/pricing`. Alias: `url`. One domain per call."},"sections":{"type":"string","description":"Comma-separated sections to include: `traffic`, `authority`, `techStack`, `hiring`, `domainAge`, `aiCrawlers`. Default: all. Fewer sections are faster."}},"required":["domain"]}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"const":true,"description":"Always true here."},"input":{"type":"string","description":"What you sent."},"domain":{"type":"string","description":"The registrable domain profiled (the home page and robots.txt are read from the host you gave, without `www.`)."},"website":{"type":"object","properties":{"status":{"type":"string"},"finalUrl":{"type":"string"},"httpStatus":{"type":"integer"}},"description":"Only with the techStack section: whether the home page could be read (`online`, `blocked`, `timeout`, `not_found`, `unreachable`, `error`), its final URL and HTTP status.","nullable":true},"summary":{"type":"string","description":"One plain-English line built from the sections present."},"traffic":{"type":"object","properties":{"globalTrafficRank":{"type":"integer"},"globalTrafficRankLabel":{"type":"string"},"trafficTrend":{"type":"string"},"topCountry":{"type":"string"},"topCountryRankLabel":{"type":"string"},"countriesListed":{"type":"integer"},"topCountries":{"type":"array","items":{"type":"object","properties":{"country":{"type":"string"},"rank":{"type":"integer"},"rankLabel":{"type":"string"}}}}},"description":"Chrome UX Report: global bucket, 6-month trend, top country and the five most relevant countries.","nullable":true},"authority":{"type":"object","properties":{"authorityScore":{"type":"integer"},"referringDomains":{"type":"integer"},"webGraphRank":{"type":"integer"},"majesticRank":{"type":"integer"}},"description":"Authority score 0-100, referring domains, web-graph rank, Majestic rank (the Domain Authority API).","nullable":true},"techStack":{"type":"object","properties":{"technologyCount":{"type":"integer"},"technologies":{"type":"array","items":{"type":"string"}},"cms":{"type":"string","nullable":true},"ecommerce":{"type":"string","nullable":true},"analytics":{"type":"string","nullable":true},"hosting":{"type":"string","nullable":true}},"description":"Technologies detected on the home page by plain HTTP (the Tech Stack API without a browser): count, names with versions, CMS, e-commerce, analytics, hosting/CDN.","nullable":true},"hiring":{"type":"object","properties":{"hiringIndexed":{"type":"boolean"},"openJobs":{"type":"integer"},"remoteJobs":{"type":"integer"},"hiringCountries":{"type":"array","items":{"type":"string"}},"sampleJobTitles":{"type":"array","items":{"type":"string"}},"careersUrl":{"type":"string"},"atsPlatforms":{"type":"array","items":{"type":"string"}},"newestJobPostedAt":{"type":"string"}},"description":"Live openings from our ATS job index (16 ATS platforms): count, remote count, countries, sample titles, careers URL. `hiringIndexed: false` means the company has no careers board in the index, which is not the same as zero jobs.","nullable":true},"domainAge":{"type":"object","properties":{"domainCreatedAt":{"type":"string"},"domainAgeYears":{"type":"integer"},"registrar":{"type":"string"},"domainExpiresAt":{"type":"string"}},"description":"RDAP registration data: creation and expiry date, age in years, registrar.","nullable":true},"aiCrawlers":{"type":"object","properties":{"aiCrawlerPolicy":{"type":"string"},"aiSearchScore":{"type":"integer"},"aiBotsBlocked":{"type":"array","items":{"type":"string"}},"hasLlmsTxt":{"type":"boolean"}},"description":"robots.txt policy for AI crawlers (`open`, `search-only`, `blocks-search`, `restrictive`, `no-robots`, `unknown`), AI-search score, blocked bots, llms.txt.","nullable":true},"sections":{"type":"array","items":{"type":"string","enum":["traffic","authority","techStack","hiring","domainAge","aiCrawlers"]},"description":"The sections that were requested."},"dataVersions":{"type":"object","properties":{"trafficRankMonth":{"type":"string"},"authorityRelease":{"type":"string"}},"description":"Data release of the authority dataset and month of the traffic dataset."},"checkedAt":{"type":"string","description":"When the call started."},"durationMs":{"type":"integer","description":"Time taken in milliseconds (a few seconds: sections run in parallel, each cut at 8 s)."},"sectionErrors":{"type":"object","additionalProperties":{"type":"string"},"description":"Only when a section failed or took longer than 8 s: its reason. That section is null; the others are delivered."}}},"example":{"success":true,"input":"stripe.com","domain":"stripe.com","website":{"status":"online","finalUrl":"https://stripe.com/","httpStatus":200},"summary":"Top 10K worldwide (stable); authority 85/100 (710,778 referring domains); Next.js, React; 711 open jobs; domain 31 years old; open to AI crawlers","traffic":{"globalTrafficRank":10000,"globalTrafficRankLabel":"Top 10K websites worldwide","trafficTrend":"stable","topCountry":"it","topCountryRankLabel":"Top 1K in Italy","countriesListed":220,"topCountries":[{"country":"it","rank":1000,"rankLabel":"Top 1K"},{"country":"us","rank":5000,"rankLabel":"Top 5K"},{"country":"gb","rank":5000,"rankLabel":"Top 5K"},{"country":"fr","rank":5000,"rankLabel":"Top 5K"}]},"authority":{"authorityScore":85,"referringDomains":710778,"webGraphRank":64,"majesticRank":143},"techStack":{"technologyCount":2,"technologies":["Next.js","React"],"cms":null,"ecommerce":null,"analytics":null,"hosting":null},"hiring":{"hiringIndexed":true,"openJobs":711,"remoteJobs":111,"hiringCountries":["US","SG","CA","IE"],"sampleJobTitles":["Software Engineer, New Grad","Software Engineer, Intern","Abuse Investigator","Account Executive, Product - Local Payment Methods"],"careersUrl":"https://job-boards.greenhouse.io/stripe","atsPlatforms":["greenhouse"],"newestJobPostedAt":"2026-10-02T16:06:44.000Z"},"domainAge":{"domainCreatedAt":"1995-09-12T04:00:00Z","domainAgeYears":31,"registrar":"SafeNames Ltd.","domainExpiresAt":"2027-09-11T04:00:00Z"},"aiCrawlers":{"aiCrawlerPolicy":"open","aiSearchScore":100,"aiBotsBlocked":[],"hasLlmsTxt":true},"sections":["traffic","authority","techStack","hiring"],"dataVersions":{"trafficRankMonth":"2026-08","authorityRelease":"cc-main-2026-jul-aug-sep"},"checkedAt":"2026-10-03T14:16:00.487Z","durationMs":1093}}}},"400":{"description":"`invalid_request`: a parameter is missing, has the wrong type or is out of range (the message names it); a list that is too long; a string that is not a domain or website address.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"413":{"description":"`too_large`: the request body is over 256 KB.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"`target_unreachable`: the domain does not resolve in DNS and is in none of our datasets, so there is nothing to report. Not billed (non-2xx).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"target_unreachable","message":"thisdomain-does-not-exist-xk29.com does not resolve in DNS and is in none of our datasets: there is nothing to report.","details":{"domain":"thisdomain-does-not-exist-xk29.com","sectionErrors":{"techStack":"The target site could not be reached (its domain name does not resolve).","aiCrawlers":"The site could not be reached (its domain name does not resolve)."}}}}}}},"502":{"description":"`upstream_error`: a source could not be read right now (a dataset is not available, or every section of an overview failed). Safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["success","error"],"properties":{"success":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["not_configured","unauthorized","not_found","method_not_allowed","invalid_request","rate_limited","url_not_allowed","target_blocked","target_unreachable","target_error","unsupported_content","too_large","timeout","upstream_error","board_not_found","app_not_found","robots_disallowed","browser_busy","region_unavailable","no_region_delivered","location_not_found","domain_not_found"]},"message":{"type":"string"},"retryable":{"type":"boolean","description":"true for rate_limited, timeout, upstream_error and browser_busy; false for other errors."},"retryAfterSeconds":{"type":"integer","description":"Seconds to wait before retrying, when a numeric Retry-After header is present."},"details":{"type":"object","additionalProperties":true}}}}}}}}