{"openapi":"3.1.0","info":{"title":"Company Enrichment API - Domain to Company Profile","version":"1.0.0","description":"One domain in, a company profile out: name, description, logo, industry, social profiles, public emails (role vs other) and phones, address, country, founding year and employee count when stated, languages, tech stack, the SaaS tools visible in DNS (email provider, SPF includes such as HubSpot or Salesforce, verification records), hiring signals (careers page, ATS, live open-job count) and domain age (RDAP), each with the URL it came from. Or send a company name: its website is looked up and verified. Deterministic by default; a second endpoint adds an AI industry classification, business model and one-line summary. Parked and placeholder domains are refused with `422 parked_domain`.\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":"Company"}],"paths":{"/api/v1/company/enrich":{"get":{"operationId":"companyEnrichGet","summary":"Enrich a company from its domain (GET)","description":"Returns the company profile built from its website and public DNS / RDAP records. No AI: `industry` is a deterministic guess (schema.org type, government domains, keywords) with its `signals`. Pages read: the home page plus about, contact and careers pages (maxPages, default 4), decoded with the site's real charset; a real browser only when the site blocks bots or needs JavaScript. DNS, RDAP and one public ATS job feed are read in parallel. Every fact carries the page it came from (`evidence`). Results are cached for 12 hours.","tags":["Company"],"parameters":[{"name":"domain","schema":{"type":"string"},"description":"Company domain or website URL (`stripe.com`, `https://www.acme.de/en`). An e-mail address works too (its domain is used). Aliases: `url`, `website`. Required unless `name` is sent. Private and local addresses are refused.","required":false,"example":"stripe.com","in":"query"},{"name":"name","schema":{"type":"string"},"description":"Company name, used only when no `domain` is sent: candidate domains are built from the name (+ `country`), resolved over DNS, and a site counts only when its own name (schema.org, og:site_name or title) is this name. Otherwise `422 company_not_found`: send the domain.","required":false,"example":"Notion","in":"query"},{"name":"country","schema":{"type":"string"},"description":"With `name`: 2-letter ISO country code; its domain endings (e.g. `.de`, `.co.uk`, `.co.jp`) are tried before `.com`.","required":false,"in":"query"},{"name":"maxPages","schema":{"type":"integer","default":4,"minimum":1,"maximum":6},"description":"Pages of the site to read, home page included: about, contact and careers pages first, then imprint, team and locations.","required":false,"in":"query"},{"name":"render","schema":{"type":"string","default":"auto","enum":["auto","never"]},"description":"`auto` (default): plain HTTP, and a real Chrome browser for the home page only when the site blocks plain requests or needs JavaScript. `never`: HTTP only.","required":false,"in":"query"},{"name":"includeJobs","schema":{"type":"boolean","default":true},"description":"Look for the company's ATS job board and count open jobs (`companySize`).","required":false,"in":"query"},{"name":"includeDns","schema":{"type":"boolean","default":true},"description":"Return the DNS findings (`dns`: MX provider, SPF includes, verification records, DNS host).","required":false,"in":"query"},{"name":"includeRdap","schema":{"type":"boolean","default":true},"description":"Look up the domain's registration (`domainRegistration`: creation date, age, registrar).","required":false,"in":"query"},{"name":"includeEvidence","schema":{"type":"boolean","default":true},"description":"Return `evidence` (source and page URL per field) and `foundedYearText`.","required":false,"in":"query"},{"name":"ai","schema":{"type":"boolean","default":false},"description":"Only `false` is accepted here: the AI classification is the `/api/v1/company/enrich/ai` endpoint (billed separately).","required":false,"in":"query"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"input":{"type":"object","description":"What you sent: `domain`, or `name` (+ `country`).","properties":{"domain":{"type":"string"},"name":{"type":"string"},"country":{"type":"string"}}},"domain":{"type":"string"},"url":{"type":"string"},"finalUrl":{"type":"string"},"name":{"type":"string","nullable":true,"description":"Company name: schema.org Organization, else og:site_name, application-name, the <title> (\"official site\" suffixes removed). On /enrich/ai the AI name fills it when none is found."},"legalName":{"type":"string","nullable":true,"description":"schema.org legalName when published."},"description":{"type":"string","nullable":true,"description":"Meta description, else og:description, else schema.org description (up to 600 characters)."},"logo":{"type":"string","nullable":true,"description":"schema.org logo, else apple-touch-icon, else the largest declared icon. `evidence.logo.source` says which."},"favicon":{"type":"string","nullable":true,"description":"Largest <link rel=icon> declared."},"industry":{"type":"object","nullable":true,"description":"Industry guess. /enrich: from the schema.org type, a government domain or keywords (`method`). /enrich/ai: the AI label (`method: ai`), with the keyword guess in `keywordGuess`. null when nothing points to an industry.","properties":{"label":{"type":"string","enum":["software-saas","it-services","cybersecurity","ecommerce-retail","consumer-products","financial-services","insurance","healthcare","pharma-biotech-medtech","manufacturing-industrial","construction-engineering","real-estate","marketing-advertising","media-publishing","education","legal-services","professional-services","hr-staffing","travel-hospitality","restaurants-food-service","transportation-logistics","automotive","energy-utilities","telecommunications","agriculture-food-production","entertainment-gaming-sports","health-wellness-beauty","local-home-services","government-public-sector","nonprofit","other"]},"confidence":{"type":"string","enum":["high","medium","low"]},"method":{"type":"string","enum":["schema.org","domain","keywords","ai"]},"signals":{"type":"array","items":{"type":"string"},"description":"Keywords or the schema.org type that decided it (not on AI answers)."},"reason":{"type":"string","description":"AI only: one sentence."},"keywordGuess":{"type":"string","nullable":true,"description":"AI only: the deterministic guess, for comparison."}}},"organizationType":{"type":"string","nullable":true,"description":"schema.org @type of the site's organization (e.g. Corporation, Restaurant, Dentist)."},"foundedYear":{"type":"integer","nullable":true,"description":"Only when stated: schema.org foundingDate or a sentence such as \"founded in 2012\", \"since 1921\", \"2005年設立\". Never estimated."},"socialProfiles":{"type":"object","additionalProperties":{"type":"string"},"description":"The company's own profiles, keyed by network (linkedin, x, facebook, instagram, youtube, tiktok, github, pinterest, threads, ...)."},"primaryEmail":{"type":"string","nullable":true,"description":"Best contact address: own domain, role mailbox first."},"emails":{"type":"array","description":"Public addresses published on the pages read (up to 25), own-domain first.","items":{"type":"object","properties":{"email":{"type":"string"},"type":{"type":"string","enum":["role","other"],"description":"`role`: shared mailbox (info@, sales@, support@, press@, jobs@...). `other`: anything else (often a person)."},"sameDomain":{"type":"boolean"},"source":{"type":"string","description":"Page it was found on."}}}},"primaryPhone":{"type":"string","nullable":true,"description":"First phone number (not fax)."},"phones":{"type":"array","description":"Phone and fax numbers in E.164 (up to 15), validated with libphonenumber.","items":{"type":"object","properties":{"number":{"type":"string"},"type":{"type":"string","enum":["phone","fax"]},"country":{"type":"string","nullable":true},"source":{"type":"string"}}}},"address":{"type":"string","nullable":true,"description":"Postal address from schema.org, formatted."},"addressDetails":{"type":"object","nullable":true,"properties":{"street":{"type":"string","nullable":true},"locality":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"formatted":{"type":"string","nullable":true}}},"country":{"type":"string","nullable":true,"description":"ISO country of the company: postal address, else its phone numbers, else the ccTLD."},"countrySource":{"type":"string","nullable":true,"description":"Where `country` came from.","enum":["address","phone","tld"]},"languages":{"type":"array","items":{"type":"string"},"description":"ISO 639-1 codes the site is published in: <html lang>, hreflang alternates, og:locale."},"contactFormUrl":{"type":"string","nullable":true,"description":"Page with a contact form, when one was seen."},"techStack":{"type":"object","properties":{"count":{"type":"integer"},"categories":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"technologies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"category":{"type":"string"},"confidence":{"type":"string"}}}}},"description":"Technologies seen on the home page (325 fingerprints, the same as the Tech Stack API): `categories` maps category -> names."},"dns":{"type":"object","nullable":true,"description":"Tools visible in public DNS (null with includeDns=false or when DNS could not be read).","properties":{"mxProvider":{"type":"string","nullable":true,"description":"Email provider from the MX records (Google Workspace, Microsoft 365, Proofpoint, Zoho Mail, ...), `self-hosted or other`, or null without MX."},"mxHosts":{"type":"array","items":{"type":"string"}},"dnsHost":{"type":"string","nullable":true,"description":"DNS provider from the nameservers (Cloudflare, Amazon Route 53, Azure DNS, GoDaddy, ...)."},"nameservers":{"type":"array","items":{"type":"string"}},"spfIncludes":{"type":"array","items":{"type":"string"}},"emailAuth":{"type":"object","properties":{"spf":{"type":"boolean"},"spfPolicy":{"type":"string","nullable":true,"description":"fail, softfail, neutral, pass, none or redirect."},"dmarc":{"type":"boolean"},"dmarcPolicy":{"type":"string","nullable":true,"description":"none, quarantine, reject or invalid."}}},"services":{"type":"array","description":"SaaS tools the domain is set up for: MX provider, SPF includes (HubSpot, Salesforce, SendGrid, Mailchimp, Zendesk, ...) and TXT verification records (Google Search Console, Microsoft 365, Atlassian, Slack, Stripe, OpenAI, ...).","items":{"type":"object","properties":{"name":{"type":"string"},"category":{"type":"string"},"evidence":{"type":"string","description":"e.g. `SPF include:_spf.salesforce.com`, `TXT atlassian-domain-verification`."}}}}}},"domainRegistration":{"type":"object","nullable":true,"description":"RDAP (WHOIS for TLDs without RDAP, e.g. .jp). null with includeRdap=false or when the registry could not be read (see notes).","properties":{"domain":{"type":"string"},"registrar":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true,"description":"ISO 8601."},"expiresAt":{"type":"string","nullable":true,"description":"ISO 8601."},"domainAgeDays":{"type":"integer","nullable":true},"domainAgeYears":{"type":"number","nullable":true},"registrantOrg":{"type":"string","nullable":true,"description":"Only when not redacted."},"registrantCountry":{"type":"string","nullable":true},"source":{"type":"string","enum":["rdap","whois"]},"server":{"type":"string","nullable":true}}},"companySize":{"type":"object","description":"Size and hiring signals. Nothing is estimated: only stated employee counts and live job-board totals.","properties":{"employeesStated":{"type":"object","nullable":true,"description":"Employee count the site states (schema.org numberOfEmployees or text like \"over 1,200 employees\", \"a team of 45\").","properties":{"value":{"type":"integer"},"approximate":{"type":"boolean"},"text":{"type":"string"}}},"careersPage":{"type":"string","nullable":true,"description":"Careers page linked from the home page."},"ats":{"type":"string","nullable":true,"description":"Applicant tracking system seen (greenhouse, lever, ashby, workday, smartrecruiters, workable, ...; or one without a public feed such as icims)."},"atsSupported":{"type":"boolean","nullable":true,"description":"true when its public job feed was read."},"jobBoard":{"type":"string","description":"`ats:slug` of the board (use it with a jobs API)."},"jobBoardUrl":{"type":"string","nullable":true},"atsDetection":{"type":"string","enum":["site-link","verified-guess"],"description":"`site-link`: linked or embedded on the site. `verified-guess`: the board named after the domain on Greenhouse, Lever or Ashby, verified against the domain."},"openJobs":{"type":"integer","nullable":true,"description":"Open postings on the board right now."},"hiring":{"type":"boolean","nullable":true}}},"evidence":{"type":"object","description":"With includeEvidence=true: for each field, where it came from (`source`) and the page (`url`). Keys: name, description, logo, foundedYear, employees, ats, domainAge, socialProfiles, address.","additionalProperties":{"type":"object","properties":{"source":{"type":"string"},"url":{"type":"string","nullable":true}}}},"foundedYearText":{"type":"string","nullable":true,"description":"The sentence the founding year came from (with includeEvidence)."},"pagesChecked":{"type":"array","description":"Pages read: home, then about, contact, careers, imprint, team, locations (up to maxPages).","items":{"type":"object","properties":{"url":{"type":"string"},"kind":{"type":"string"},"via":{"type":"string","enum":["http","browser"]},"httpStatus":{"type":"integer","nullable":true}}}},"pagesFailed":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"error":{"type":"string"},"httpStatus":{"type":"integer","nullable":true}}}},"renderedWith":{"type":"string","enum":["http","browser"],"description":"How the home page was read. `browser`: the site blocked plain requests or needed JavaScript (render=auto, at most one render per call)."},"charset":{"type":"string","nullable":true,"description":"Character encoding the home page was decoded with (BOM, Content-Type or <meta>); null for browser renders."},"notes":{"type":"array","items":{"type":"string"},"description":"Plain-language notes on missing parts (DNS or RDAP unavailable, ATS without public feed, ...)."},"aiGenerated":{"type":"boolean","description":"true only on /enrich/ai when the AI classification succeeded."},"resolvedFrom":{"type":"object","description":"Only for `name` lookups: how the website was found and verified.","properties":{"name":{"type":"string"},"country":{"type":"string"},"method":{"type":"string","enum":["domain-guess"]},"matchedOn":{"type":"string","description":"The site's own name (schema.org, og:site_name, application-name or title) that matched."},"tried":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"result":{"type":"string"}}}}}},"redirectedTo":{"type":"string","description":"Only when the website redirected to another domain."},"warning":{"type":"string","description":"Only with redirectedTo."},"skippedPages":{"type":"array","items":{"type":"string"},"description":"Pages not read because the time budget ran out (the answer is then not cached; header x-partial: true)."},"fallbackReason":{"type":"string","description":"Why the browser was used."}}},"example":{"success":true,"input":{"domain":"stripe.com"},"domain":"stripe.com","url":"https://stripe.com/","finalUrl":"https://stripe.com/en-sg","name":"Stripe","legalName":"Stripe, LLC","description":"Stripe is a financial services platform that helps all types of businesses accept payments, build flexible billing models and manage money movement.","logo":"https://images.stripeassets.com/fzn2n1nzq965/1hgcBNd12BfT9VLgbId7By/01d91920114b124fb4cf6d448f9f06eb/favicon.svg","favicon":"https://images.stripeassets.com/fzn2n1nzq965/1hgcBNd12BfT9VLgbId7By/01d91920114b124fb4cf6d448f9f06eb/favicon.svg","industry":{"label":"software-saas","confidence":"medium","method":"keywords","signals":["saas","platform","developers","integrations"]},"organizationType":"Organization","foundedYear":null,"socialProfiles":{"x":"https://twitter.com/stripe","youtube":"https://youtube.com/@stripe","linkedin":"https://www.linkedin.com/company/stripe","facebook":"https://www.facebook.com/StripeHQ","github":"https://github.com/stripe","instagram":"https://www.instagram.com/stripehq"},"primaryEmail":"careers@stripe.com","emails":[{"email":"careers@stripe.com","type":"role","sameDomain":true,"source":"https://stripe.com/en-sg/careers"}],"primaryPhone":null,"phones":[],"address":null,"addressDetails":null,"country":null,"countrySource":null,"languages":["en","es","zh","de"],"contactFormUrl":null,"techStack":{"count":2,"categories":{"JavaScript framework":["Next.js","React"]},"technologies":[{"name":"Next.js","category":"JavaScript framework","confidence":"high"},{"name":"React","category":"JavaScript framework","confidence":"high"}]},"dns":{"mxProvider":"Google Workspace","mxHosts":["aspmx.l.google.com","alt1.aspmx.l.google.com","alt2.aspmx.l.google.com","aspmx2.googlemail.com"],"dnsHost":"Amazon Route 53","nameservers":["ns-1087.awsdns-07.org","ns-1882.awsdns-43.co.uk","ns-423.awsdns-52.com","ns-705.awsdns-24.net"],"spfIncludes":["spf1.stripe.com","greenhouse-outbound-mail.stripe.com","_spf.qualtrics.com"],"emailAuth":{"spf":true,"spfPolicy":"softfail","dmarc":true,"dmarcPolicy":"reject"},"services":[{"name":"Google Workspace","category":"Email hosting","evidence":"MX aspmx.l.google.com"},{"name":"Qualtrics","category":"Surveys","evidence":"SPF include:_spf.qualtrics.com"},{"name":"Microsoft 365","category":"Email hosting","evidence":"TXT MS=…"},{"name":"Anthropic","category":"AI","evidence":"TXT anthropic-domain-verification-zk7x9c=…"}]},"domainRegistration":{"domain":"stripe.com","registrar":"SafeNames Ltd.","createdAt":"1995-09-12T04:00:00Z","expiresAt":"2027-09-11T04:00:00Z","domainAgeDays":11342,"domainAgeYears":31,"registrantOrg":null,"registrantCountry":null,"source":"rdap","server":"rdap.verisign.com"},"companySize":{"employeesStated":null,"careersPage":"https://stripe.com/en-sg/careers","ats":"greenhouse","atsSupported":true,"jobBoardUrl":"https://job-boards.greenhouse.io/stripe","openJobs":716,"hiring":true,"jobBoard":"greenhouse:stripe","atsDetection":"verified-guess"},"evidence":{"name":{"source":"schema.org Organization","url":"https://stripe.com/en-sg"},"description":{"source":"meta description","url":"https://stripe.com/en-sg"},"logo":{"source":"schema.org logo","url":"https://stripe.com/en-sg"},"ats":{"source":"job board named after the domain, verified","url":"https://job-boards.greenhouse.io/stripe"},"domainAge":{"source":"RDAP","url":"https://rdap.verisign.com/"},"socialProfiles":{"source":"links on the site","url":"https://stripe.com/en-sg"}},"foundedYearText":null,"pagesChecked":[{"url":"https://stripe.com/en-sg","kind":"home","via":"http","httpStatus":200},{"url":"https://stripe.com/en-sg/about","kind":"about","via":"http","httpStatus":200},{"url":"https://stripe.com/en-sg/contact/sales","kind":"contact","via":"http","httpStatus":200},{"url":"https://stripe.com/en-sg/careers","kind":"careers","via":"http","httpStatus":200}],"pagesFailed":[],"renderedWith":"http","charset":"utf-8","notes":[],"aiGenerated":false}}}},"400":{"description":"Invalid parameter (`invalid_request`) or a private/local target (`url_not_allowed`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"url_not_allowed","message":"private, local and reserved hosts are not allowed"}}}}},"413":{"description":"Request body or target document too large (`too_large`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The domain is parked, for sale or a placeholder (`parked_domain`, `details.siteStatus`: parked, placeholder or default_server_page), no website could be verified for a `name` (`company_not_found`, with the domains tried), the site could not be reached or its domain does not exist (`target_unreachable`), refused even a real browser (`target_blocked`) or its home page failed (`target_error`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"parked_domain","message":"example.com: the site is a placeholder (coming soon, under construction or an example page), so there is no company profile to build.","details":{"domain":"example.com","finalUrl":"https://example.com/","siteStatus":"placeholder","title":"Example Domain"}}}}}},"502":{"description":"Temporary failure on our side (`upstream_error`); safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"The target did not respond in time (`timeout`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"companyEnrich","summary":"Enrich a company from its domain","description":"Returns the company profile built from its website and public DNS / RDAP records. No AI: `industry` is a deterministic guess (schema.org type, government domains, keywords) with its `signals`. Pages read: the home page plus about, contact and careers pages (maxPages, default 4), decoded with the site's real charset; a real browser only when the site blocks bots or needs JavaScript. DNS, RDAP and one public ATS job feed are read in parallel. Every fact carries the page it came from (`evidence`). Results are cached for 12 hours.\n\nThe same parameters as the GET form, sent as a JSON body.","tags":["Company"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Company domain or website URL (`stripe.com`, `https://www.acme.de/en`). An e-mail address works too (its domain is used). Aliases: `url`, `website`. Required unless `name` is sent. Private and local addresses are refused."},"name":{"type":"string","description":"Company name, used only when no `domain` is sent: candidate domains are built from the name (+ `country`), resolved over DNS, and a site counts only when its own name (schema.org, og:site_name or title) is this name. Otherwise `422 company_not_found`: send the domain."},"country":{"type":"string","description":"With `name`: 2-letter ISO country code; its domain endings (e.g. `.de`, `.co.uk`, `.co.jp`) are tried before `.com`."},"maxPages":{"type":"integer","default":4,"minimum":1,"maximum":6,"description":"Pages of the site to read, home page included: about, contact and careers pages first, then imprint, team and locations."},"render":{"type":"string","default":"auto","enum":["auto","never"],"description":"`auto` (default): plain HTTP, and a real Chrome browser for the home page only when the site blocks plain requests or needs JavaScript. `never`: HTTP only."},"includeJobs":{"type":"boolean","default":true,"description":"Look for the company's ATS job board and count open jobs (`companySize`)."},"includeDns":{"type":"boolean","default":true,"description":"Return the DNS findings (`dns`: MX provider, SPF includes, verification records, DNS host)."},"includeRdap":{"type":"boolean","default":true,"description":"Look up the domain's registration (`domainRegistration`: creation date, age, registrar)."},"includeEvidence":{"type":"boolean","default":true,"description":"Return `evidence` (source and page URL per field) and `foundedYearText`."},"ai":{"type":"boolean","default":false,"description":"Only `false` is accepted here: the AI classification is the `/api/v1/company/enrich/ai` endpoint (billed separately)."}}}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"input":{"type":"object","description":"What you sent: `domain`, or `name` (+ `country`).","properties":{"domain":{"type":"string"},"name":{"type":"string"},"country":{"type":"string"}}},"domain":{"type":"string"},"url":{"type":"string"},"finalUrl":{"type":"string"},"name":{"type":"string","nullable":true,"description":"Company name: schema.org Organization, else og:site_name, application-name, the <title> (\"official site\" suffixes removed). On /enrich/ai the AI name fills it when none is found."},"legalName":{"type":"string","nullable":true,"description":"schema.org legalName when published."},"description":{"type":"string","nullable":true,"description":"Meta description, else og:description, else schema.org description (up to 600 characters)."},"logo":{"type":"string","nullable":true,"description":"schema.org logo, else apple-touch-icon, else the largest declared icon. `evidence.logo.source` says which."},"favicon":{"type":"string","nullable":true,"description":"Largest <link rel=icon> declared."},"industry":{"type":"object","nullable":true,"description":"Industry guess. /enrich: from the schema.org type, a government domain or keywords (`method`). /enrich/ai: the AI label (`method: ai`), with the keyword guess in `keywordGuess`. null when nothing points to an industry.","properties":{"label":{"type":"string","enum":["software-saas","it-services","cybersecurity","ecommerce-retail","consumer-products","financial-services","insurance","healthcare","pharma-biotech-medtech","manufacturing-industrial","construction-engineering","real-estate","marketing-advertising","media-publishing","education","legal-services","professional-services","hr-staffing","travel-hospitality","restaurants-food-service","transportation-logistics","automotive","energy-utilities","telecommunications","agriculture-food-production","entertainment-gaming-sports","health-wellness-beauty","local-home-services","government-public-sector","nonprofit","other"]},"confidence":{"type":"string","enum":["high","medium","low"]},"method":{"type":"string","enum":["schema.org","domain","keywords","ai"]},"signals":{"type":"array","items":{"type":"string"},"description":"Keywords or the schema.org type that decided it (not on AI answers)."},"reason":{"type":"string","description":"AI only: one sentence."},"keywordGuess":{"type":"string","nullable":true,"description":"AI only: the deterministic guess, for comparison."}}},"organizationType":{"type":"string","nullable":true,"description":"schema.org @type of the site's organization (e.g. Corporation, Restaurant, Dentist)."},"foundedYear":{"type":"integer","nullable":true,"description":"Only when stated: schema.org foundingDate or a sentence such as \"founded in 2012\", \"since 1921\", \"2005年設立\". Never estimated."},"socialProfiles":{"type":"object","additionalProperties":{"type":"string"},"description":"The company's own profiles, keyed by network (linkedin, x, facebook, instagram, youtube, tiktok, github, pinterest, threads, ...)."},"primaryEmail":{"type":"string","nullable":true,"description":"Best contact address: own domain, role mailbox first."},"emails":{"type":"array","description":"Public addresses published on the pages read (up to 25), own-domain first.","items":{"type":"object","properties":{"email":{"type":"string"},"type":{"type":"string","enum":["role","other"],"description":"`role`: shared mailbox (info@, sales@, support@, press@, jobs@...). `other`: anything else (often a person)."},"sameDomain":{"type":"boolean"},"source":{"type":"string","description":"Page it was found on."}}}},"primaryPhone":{"type":"string","nullable":true,"description":"First phone number (not fax)."},"phones":{"type":"array","description":"Phone and fax numbers in E.164 (up to 15), validated with libphonenumber.","items":{"type":"object","properties":{"number":{"type":"string"},"type":{"type":"string","enum":["phone","fax"]},"country":{"type":"string","nullable":true},"source":{"type":"string"}}}},"address":{"type":"string","nullable":true,"description":"Postal address from schema.org, formatted."},"addressDetails":{"type":"object","nullable":true,"properties":{"street":{"type":"string","nullable":true},"locality":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"formatted":{"type":"string","nullable":true}}},"country":{"type":"string","nullable":true,"description":"ISO country of the company: postal address, else its phone numbers, else the ccTLD."},"countrySource":{"type":"string","nullable":true,"description":"Where `country` came from.","enum":["address","phone","tld"]},"languages":{"type":"array","items":{"type":"string"},"description":"ISO 639-1 codes the site is published in: <html lang>, hreflang alternates, og:locale."},"contactFormUrl":{"type":"string","nullable":true,"description":"Page with a contact form, when one was seen."},"techStack":{"type":"object","properties":{"count":{"type":"integer"},"categories":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"technologies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"category":{"type":"string"},"confidence":{"type":"string"}}}}},"description":"Technologies seen on the home page (325 fingerprints, the same as the Tech Stack API): `categories` maps category -> names."},"dns":{"type":"object","nullable":true,"description":"Tools visible in public DNS (null with includeDns=false or when DNS could not be read).","properties":{"mxProvider":{"type":"string","nullable":true,"description":"Email provider from the MX records (Google Workspace, Microsoft 365, Proofpoint, Zoho Mail, ...), `self-hosted or other`, or null without MX."},"mxHosts":{"type":"array","items":{"type":"string"}},"dnsHost":{"type":"string","nullable":true,"description":"DNS provider from the nameservers (Cloudflare, Amazon Route 53, Azure DNS, GoDaddy, ...)."},"nameservers":{"type":"array","items":{"type":"string"}},"spfIncludes":{"type":"array","items":{"type":"string"}},"emailAuth":{"type":"object","properties":{"spf":{"type":"boolean"},"spfPolicy":{"type":"string","nullable":true,"description":"fail, softfail, neutral, pass, none or redirect."},"dmarc":{"type":"boolean"},"dmarcPolicy":{"type":"string","nullable":true,"description":"none, quarantine, reject or invalid."}}},"services":{"type":"array","description":"SaaS tools the domain is set up for: MX provider, SPF includes (HubSpot, Salesforce, SendGrid, Mailchimp, Zendesk, ...) and TXT verification records (Google Search Console, Microsoft 365, Atlassian, Slack, Stripe, OpenAI, ...).","items":{"type":"object","properties":{"name":{"type":"string"},"category":{"type":"string"},"evidence":{"type":"string","description":"e.g. `SPF include:_spf.salesforce.com`, `TXT atlassian-domain-verification`."}}}}}},"domainRegistration":{"type":"object","nullable":true,"description":"RDAP (WHOIS for TLDs without RDAP, e.g. .jp). null with includeRdap=false or when the registry could not be read (see notes).","properties":{"domain":{"type":"string"},"registrar":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true,"description":"ISO 8601."},"expiresAt":{"type":"string","nullable":true,"description":"ISO 8601."},"domainAgeDays":{"type":"integer","nullable":true},"domainAgeYears":{"type":"number","nullable":true},"registrantOrg":{"type":"string","nullable":true,"description":"Only when not redacted."},"registrantCountry":{"type":"string","nullable":true},"source":{"type":"string","enum":["rdap","whois"]},"server":{"type":"string","nullable":true}}},"companySize":{"type":"object","description":"Size and hiring signals. Nothing is estimated: only stated employee counts and live job-board totals.","properties":{"employeesStated":{"type":"object","nullable":true,"description":"Employee count the site states (schema.org numberOfEmployees or text like \"over 1,200 employees\", \"a team of 45\").","properties":{"value":{"type":"integer"},"approximate":{"type":"boolean"},"text":{"type":"string"}}},"careersPage":{"type":"string","nullable":true,"description":"Careers page linked from the home page."},"ats":{"type":"string","nullable":true,"description":"Applicant tracking system seen (greenhouse, lever, ashby, workday, smartrecruiters, workable, ...; or one without a public feed such as icims)."},"atsSupported":{"type":"boolean","nullable":true,"description":"true when its public job feed was read."},"jobBoard":{"type":"string","description":"`ats:slug` of the board (use it with a jobs API)."},"jobBoardUrl":{"type":"string","nullable":true},"atsDetection":{"type":"string","enum":["site-link","verified-guess"],"description":"`site-link`: linked or embedded on the site. `verified-guess`: the board named after the domain on Greenhouse, Lever or Ashby, verified against the domain."},"openJobs":{"type":"integer","nullable":true,"description":"Open postings on the board right now."},"hiring":{"type":"boolean","nullable":true}}},"evidence":{"type":"object","description":"With includeEvidence=true: for each field, where it came from (`source`) and the page (`url`). Keys: name, description, logo, foundedYear, employees, ats, domainAge, socialProfiles, address.","additionalProperties":{"type":"object","properties":{"source":{"type":"string"},"url":{"type":"string","nullable":true}}}},"foundedYearText":{"type":"string","nullable":true,"description":"The sentence the founding year came from (with includeEvidence)."},"pagesChecked":{"type":"array","description":"Pages read: home, then about, contact, careers, imprint, team, locations (up to maxPages).","items":{"type":"object","properties":{"url":{"type":"string"},"kind":{"type":"string"},"via":{"type":"string","enum":["http","browser"]},"httpStatus":{"type":"integer","nullable":true}}}},"pagesFailed":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"error":{"type":"string"},"httpStatus":{"type":"integer","nullable":true}}}},"renderedWith":{"type":"string","enum":["http","browser"],"description":"How the home page was read. `browser`: the site blocked plain requests or needed JavaScript (render=auto, at most one render per call)."},"charset":{"type":"string","nullable":true,"description":"Character encoding the home page was decoded with (BOM, Content-Type or <meta>); null for browser renders."},"notes":{"type":"array","items":{"type":"string"},"description":"Plain-language notes on missing parts (DNS or RDAP unavailable, ATS without public feed, ...)."},"aiGenerated":{"type":"boolean","description":"true only on /enrich/ai when the AI classification succeeded."},"resolvedFrom":{"type":"object","description":"Only for `name` lookups: how the website was found and verified.","properties":{"name":{"type":"string"},"country":{"type":"string"},"method":{"type":"string","enum":["domain-guess"]},"matchedOn":{"type":"string","description":"The site's own name (schema.org, og:site_name, application-name or title) that matched."},"tried":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"result":{"type":"string"}}}}}},"redirectedTo":{"type":"string","description":"Only when the website redirected to another domain."},"warning":{"type":"string","description":"Only with redirectedTo."},"skippedPages":{"type":"array","items":{"type":"string"},"description":"Pages not read because the time budget ran out (the answer is then not cached; header x-partial: true)."},"fallbackReason":{"type":"string","description":"Why the browser was used."}}},"example":{"success":true,"input":{"domain":"stripe.com"},"domain":"stripe.com","url":"https://stripe.com/","finalUrl":"https://stripe.com/en-sg","name":"Stripe","legalName":"Stripe, LLC","description":"Stripe is a financial services platform that helps all types of businesses accept payments, build flexible billing models and manage money movement.","logo":"https://images.stripeassets.com/fzn2n1nzq965/1hgcBNd12BfT9VLgbId7By/01d91920114b124fb4cf6d448f9f06eb/favicon.svg","favicon":"https://images.stripeassets.com/fzn2n1nzq965/1hgcBNd12BfT9VLgbId7By/01d91920114b124fb4cf6d448f9f06eb/favicon.svg","industry":{"label":"software-saas","confidence":"medium","method":"keywords","signals":["saas","platform","developers","integrations"]},"organizationType":"Organization","foundedYear":null,"socialProfiles":{"x":"https://twitter.com/stripe","youtube":"https://youtube.com/@stripe","linkedin":"https://www.linkedin.com/company/stripe","facebook":"https://www.facebook.com/StripeHQ","github":"https://github.com/stripe","instagram":"https://www.instagram.com/stripehq"},"primaryEmail":"careers@stripe.com","emails":[{"email":"careers@stripe.com","type":"role","sameDomain":true,"source":"https://stripe.com/en-sg/careers"}],"primaryPhone":null,"phones":[],"address":null,"addressDetails":null,"country":null,"countrySource":null,"languages":["en","es","zh","de"],"contactFormUrl":null,"techStack":{"count":2,"categories":{"JavaScript framework":["Next.js","React"]},"technologies":[{"name":"Next.js","category":"JavaScript framework","confidence":"high"},{"name":"React","category":"JavaScript framework","confidence":"high"}]},"dns":{"mxProvider":"Google Workspace","mxHosts":["aspmx.l.google.com","alt1.aspmx.l.google.com","alt2.aspmx.l.google.com","aspmx2.googlemail.com"],"dnsHost":"Amazon Route 53","nameservers":["ns-1087.awsdns-07.org","ns-1882.awsdns-43.co.uk","ns-423.awsdns-52.com","ns-705.awsdns-24.net"],"spfIncludes":["spf1.stripe.com","greenhouse-outbound-mail.stripe.com","_spf.qualtrics.com"],"emailAuth":{"spf":true,"spfPolicy":"softfail","dmarc":true,"dmarcPolicy":"reject"},"services":[{"name":"Google Workspace","category":"Email hosting","evidence":"MX aspmx.l.google.com"},{"name":"Qualtrics","category":"Surveys","evidence":"SPF include:_spf.qualtrics.com"},{"name":"Microsoft 365","category":"Email hosting","evidence":"TXT MS=…"},{"name":"Anthropic","category":"AI","evidence":"TXT anthropic-domain-verification-zk7x9c=…"}]},"domainRegistration":{"domain":"stripe.com","registrar":"SafeNames Ltd.","createdAt":"1995-09-12T04:00:00Z","expiresAt":"2027-09-11T04:00:00Z","domainAgeDays":11342,"domainAgeYears":31,"registrantOrg":null,"registrantCountry":null,"source":"rdap","server":"rdap.verisign.com"},"companySize":{"employeesStated":null,"careersPage":"https://stripe.com/en-sg/careers","ats":"greenhouse","atsSupported":true,"jobBoardUrl":"https://job-boards.greenhouse.io/stripe","openJobs":716,"hiring":true,"jobBoard":"greenhouse:stripe","atsDetection":"verified-guess"},"evidence":{"name":{"source":"schema.org Organization","url":"https://stripe.com/en-sg"},"description":{"source":"meta description","url":"https://stripe.com/en-sg"},"logo":{"source":"schema.org logo","url":"https://stripe.com/en-sg"},"ats":{"source":"job board named after the domain, verified","url":"https://job-boards.greenhouse.io/stripe"},"domainAge":{"source":"RDAP","url":"https://rdap.verisign.com/"},"socialProfiles":{"source":"links on the site","url":"https://stripe.com/en-sg"}},"foundedYearText":null,"pagesChecked":[{"url":"https://stripe.com/en-sg","kind":"home","via":"http","httpStatus":200},{"url":"https://stripe.com/en-sg/about","kind":"about","via":"http","httpStatus":200},{"url":"https://stripe.com/en-sg/contact/sales","kind":"contact","via":"http","httpStatus":200},{"url":"https://stripe.com/en-sg/careers","kind":"careers","via":"http","httpStatus":200}],"pagesFailed":[],"renderedWith":"http","charset":"utf-8","notes":[],"aiGenerated":false}}}},"400":{"description":"Invalid parameter (`invalid_request`) or a private/local target (`url_not_allowed`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"url_not_allowed","message":"private, local and reserved hosts are not allowed"}}}}},"413":{"description":"Request body or target document too large (`too_large`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The domain is parked, for sale or a placeholder (`parked_domain`, `details.siteStatus`: parked, placeholder or default_server_page), no website could be verified for a `name` (`company_not_found`, with the domains tried), the site could not be reached or its domain does not exist (`target_unreachable`), refused even a real browser (`target_blocked`) or its home page failed (`target_error`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"parked_domain","message":"example.com: the site is a placeholder (coming soon, under construction or an example page), so there is no company profile to build.","details":{"domain":"example.com","finalUrl":"https://example.com/","siteStatus":"placeholder","title":"Example Domain"}}}}}},"502":{"description":"Temporary failure on our side (`upstream_error`); safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"The target did not respond in time (`timeout`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/company/enrich/ai":{"get":{"operationId":"companyEnrichAiGet","summary":"Enrich a company and classify it with AI (GET)","description":"The same profile as `/api/v1/company/enrich`, plus `ai`: industry (one of 31 labels), business model (B2B, B2C, B2B2C, nonprofit, government), a one-sentence summary and the company name, from about 1,500 tokens of the home and about pages (output capped at 400 tokens). `industry` then holds the AI label (`method: ai`). Parked, placeholder and unreachable sites are refused before the model runs. `aiGenerated` and header `x-ai-generated` say whether the AI part is in the answer. Pages read: the home page plus about, contact and careers pages (maxPages, default 4), decoded with the site's real charset; a real browser only when the site blocks bots or needs JavaScript. DNS, RDAP and one public ATS job feed are read in parallel. Every fact carries the page it came from (`evidence`). Results are cached for 24 hours.","tags":["Company"],"parameters":[{"name":"domain","schema":{"type":"string"},"description":"Company domain or website URL (`stripe.com`, `https://www.acme.de/en`). An e-mail address works too (its domain is used). Aliases: `url`, `website`. Required unless `name` is sent. Private and local addresses are refused.","required":false,"example":"stripe.com","in":"query"},{"name":"name","schema":{"type":"string"},"description":"Company name, used only when no `domain` is sent: candidate domains are built from the name (+ `country`), resolved over DNS, and a site counts only when its own name (schema.org, og:site_name or title) is this name. Otherwise `422 company_not_found`: send the domain.","required":false,"example":"Notion","in":"query"},{"name":"country","schema":{"type":"string"},"description":"With `name`: 2-letter ISO country code; its domain endings (e.g. `.de`, `.co.uk`, `.co.jp`) are tried before `.com`.","required":false,"in":"query"},{"name":"maxPages","schema":{"type":"integer","default":4,"minimum":1,"maximum":6},"description":"Pages of the site to read, home page included: about, contact and careers pages first, then imprint, team and locations.","required":false,"in":"query"},{"name":"render","schema":{"type":"string","default":"auto","enum":["auto","never"]},"description":"`auto` (default): plain HTTP, and a real Chrome browser for the home page only when the site blocks plain requests or needs JavaScript. `never`: HTTP only.","required":false,"in":"query"},{"name":"includeJobs","schema":{"type":"boolean","default":true},"description":"Look for the company's ATS job board and count open jobs (`companySize`).","required":false,"in":"query"},{"name":"includeDns","schema":{"type":"boolean","default":true},"description":"Return the DNS findings (`dns`: MX provider, SPF includes, verification records, DNS host).","required":false,"in":"query"},{"name":"includeRdap","schema":{"type":"boolean","default":true},"description":"Look up the domain's registration (`domainRegistration`: creation date, age, registrar).","required":false,"in":"query"},{"name":"includeEvidence","schema":{"type":"boolean","default":true},"description":"Return `evidence` (source and page URL per field) and `foundedYearText`.","required":false,"in":"query"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"input":{"type":"object","description":"What you sent: `domain`, or `name` (+ `country`).","properties":{"domain":{"type":"string"},"name":{"type":"string"},"country":{"type":"string"}}},"domain":{"type":"string"},"url":{"type":"string"},"finalUrl":{"type":"string"},"name":{"type":"string","nullable":true,"description":"Company name: schema.org Organization, else og:site_name, application-name, the <title> (\"official site\" suffixes removed). On /enrich/ai the AI name fills it when none is found."},"legalName":{"type":"string","nullable":true,"description":"schema.org legalName when published."},"description":{"type":"string","nullable":true,"description":"Meta description, else og:description, else schema.org description (up to 600 characters)."},"logo":{"type":"string","nullable":true,"description":"schema.org logo, else apple-touch-icon, else the largest declared icon. `evidence.logo.source` says which."},"favicon":{"type":"string","nullable":true,"description":"Largest <link rel=icon> declared."},"industry":{"type":"object","nullable":true,"description":"Industry guess. /enrich: from the schema.org type, a government domain or keywords (`method`). /enrich/ai: the AI label (`method: ai`), with the keyword guess in `keywordGuess`. null when nothing points to an industry.","properties":{"label":{"type":"string","enum":["software-saas","it-services","cybersecurity","ecommerce-retail","consumer-products","financial-services","insurance","healthcare","pharma-biotech-medtech","manufacturing-industrial","construction-engineering","real-estate","marketing-advertising","media-publishing","education","legal-services","professional-services","hr-staffing","travel-hospitality","restaurants-food-service","transportation-logistics","automotive","energy-utilities","telecommunications","agriculture-food-production","entertainment-gaming-sports","health-wellness-beauty","local-home-services","government-public-sector","nonprofit","other"]},"confidence":{"type":"string","enum":["high","medium","low"]},"method":{"type":"string","enum":["schema.org","domain","keywords","ai"]},"signals":{"type":"array","items":{"type":"string"},"description":"Keywords or the schema.org type that decided it (not on AI answers)."},"reason":{"type":"string","description":"AI only: one sentence."},"keywordGuess":{"type":"string","nullable":true,"description":"AI only: the deterministic guess, for comparison."}}},"organizationType":{"type":"string","nullable":true,"description":"schema.org @type of the site's organization (e.g. Corporation, Restaurant, Dentist)."},"foundedYear":{"type":"integer","nullable":true,"description":"Only when stated: schema.org foundingDate or a sentence such as \"founded in 2012\", \"since 1921\", \"2005年設立\". Never estimated."},"socialProfiles":{"type":"object","additionalProperties":{"type":"string"},"description":"The company's own profiles, keyed by network (linkedin, x, facebook, instagram, youtube, tiktok, github, pinterest, threads, ...)."},"primaryEmail":{"type":"string","nullable":true,"description":"Best contact address: own domain, role mailbox first."},"emails":{"type":"array","description":"Public addresses published on the pages read (up to 25), own-domain first.","items":{"type":"object","properties":{"email":{"type":"string"},"type":{"type":"string","enum":["role","other"],"description":"`role`: shared mailbox (info@, sales@, support@, press@, jobs@...). `other`: anything else (often a person)."},"sameDomain":{"type":"boolean"},"source":{"type":"string","description":"Page it was found on."}}}},"primaryPhone":{"type":"string","nullable":true,"description":"First phone number (not fax)."},"phones":{"type":"array","description":"Phone and fax numbers in E.164 (up to 15), validated with libphonenumber.","items":{"type":"object","properties":{"number":{"type":"string"},"type":{"type":"string","enum":["phone","fax"]},"country":{"type":"string","nullable":true},"source":{"type":"string"}}}},"address":{"type":"string","nullable":true,"description":"Postal address from schema.org, formatted."},"addressDetails":{"type":"object","nullable":true,"properties":{"street":{"type":"string","nullable":true},"locality":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"formatted":{"type":"string","nullable":true}}},"country":{"type":"string","nullable":true,"description":"ISO country of the company: postal address, else its phone numbers, else the ccTLD."},"countrySource":{"type":"string","nullable":true,"description":"Where `country` came from.","enum":["address","phone","tld"]},"languages":{"type":"array","items":{"type":"string"},"description":"ISO 639-1 codes the site is published in: <html lang>, hreflang alternates, og:locale."},"contactFormUrl":{"type":"string","nullable":true,"description":"Page with a contact form, when one was seen."},"techStack":{"type":"object","properties":{"count":{"type":"integer"},"categories":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"technologies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"category":{"type":"string"},"confidence":{"type":"string"}}}}},"description":"Technologies seen on the home page (325 fingerprints, the same as the Tech Stack API): `categories` maps category -> names."},"dns":{"type":"object","nullable":true,"description":"Tools visible in public DNS (null with includeDns=false or when DNS could not be read).","properties":{"mxProvider":{"type":"string","nullable":true,"description":"Email provider from the MX records (Google Workspace, Microsoft 365, Proofpoint, Zoho Mail, ...), `self-hosted or other`, or null without MX."},"mxHosts":{"type":"array","items":{"type":"string"}},"dnsHost":{"type":"string","nullable":true,"description":"DNS provider from the nameservers (Cloudflare, Amazon Route 53, Azure DNS, GoDaddy, ...)."},"nameservers":{"type":"array","items":{"type":"string"}},"spfIncludes":{"type":"array","items":{"type":"string"}},"emailAuth":{"type":"object","properties":{"spf":{"type":"boolean"},"spfPolicy":{"type":"string","nullable":true,"description":"fail, softfail, neutral, pass, none or redirect."},"dmarc":{"type":"boolean"},"dmarcPolicy":{"type":"string","nullable":true,"description":"none, quarantine, reject or invalid."}}},"services":{"type":"array","description":"SaaS tools the domain is set up for: MX provider, SPF includes (HubSpot, Salesforce, SendGrid, Mailchimp, Zendesk, ...) and TXT verification records (Google Search Console, Microsoft 365, Atlassian, Slack, Stripe, OpenAI, ...).","items":{"type":"object","properties":{"name":{"type":"string"},"category":{"type":"string"},"evidence":{"type":"string","description":"e.g. `SPF include:_spf.salesforce.com`, `TXT atlassian-domain-verification`."}}}}}},"domainRegistration":{"type":"object","nullable":true,"description":"RDAP (WHOIS for TLDs without RDAP, e.g. .jp). null with includeRdap=false or when the registry could not be read (see notes).","properties":{"domain":{"type":"string"},"registrar":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true,"description":"ISO 8601."},"expiresAt":{"type":"string","nullable":true,"description":"ISO 8601."},"domainAgeDays":{"type":"integer","nullable":true},"domainAgeYears":{"type":"number","nullable":true},"registrantOrg":{"type":"string","nullable":true,"description":"Only when not redacted."},"registrantCountry":{"type":"string","nullable":true},"source":{"type":"string","enum":["rdap","whois"]},"server":{"type":"string","nullable":true}}},"companySize":{"type":"object","description":"Size and hiring signals. Nothing is estimated: only stated employee counts and live job-board totals.","properties":{"employeesStated":{"type":"object","nullable":true,"description":"Employee count the site states (schema.org numberOfEmployees or text like \"over 1,200 employees\", \"a team of 45\").","properties":{"value":{"type":"integer"},"approximate":{"type":"boolean"},"text":{"type":"string"}}},"careersPage":{"type":"string","nullable":true,"description":"Careers page linked from the home page."},"ats":{"type":"string","nullable":true,"description":"Applicant tracking system seen (greenhouse, lever, ashby, workday, smartrecruiters, workable, ...; or one without a public feed such as icims)."},"atsSupported":{"type":"boolean","nullable":true,"description":"true when its public job feed was read."},"jobBoard":{"type":"string","description":"`ats:slug` of the board (use it with a jobs API)."},"jobBoardUrl":{"type":"string","nullable":true},"atsDetection":{"type":"string","enum":["site-link","verified-guess"],"description":"`site-link`: linked or embedded on the site. `verified-guess`: the board named after the domain on Greenhouse, Lever or Ashby, verified against the domain."},"openJobs":{"type":"integer","nullable":true,"description":"Open postings on the board right now."},"hiring":{"type":"boolean","nullable":true}}},"evidence":{"type":"object","description":"With includeEvidence=true: for each field, where it came from (`source`) and the page (`url`). Keys: name, description, logo, foundedYear, employees, ats, domainAge, socialProfiles, address.","additionalProperties":{"type":"object","properties":{"source":{"type":"string"},"url":{"type":"string","nullable":true}}}},"foundedYearText":{"type":"string","nullable":true,"description":"The sentence the founding year came from (with includeEvidence)."},"pagesChecked":{"type":"array","description":"Pages read: home, then about, contact, careers, imprint, team, locations (up to maxPages).","items":{"type":"object","properties":{"url":{"type":"string"},"kind":{"type":"string"},"via":{"type":"string","enum":["http","browser"]},"httpStatus":{"type":"integer","nullable":true}}}},"pagesFailed":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"error":{"type":"string"},"httpStatus":{"type":"integer","nullable":true}}}},"renderedWith":{"type":"string","enum":["http","browser"],"description":"How the home page was read. `browser`: the site blocked plain requests or needed JavaScript (render=auto, at most one render per call)."},"charset":{"type":"string","nullable":true,"description":"Character encoding the home page was decoded with (BOM, Content-Type or <meta>); null for browser renders."},"notes":{"type":"array","items":{"type":"string"},"description":"Plain-language notes on missing parts (DNS or RDAP unavailable, ATS without public feed, ...)."},"aiGenerated":{"type":"boolean","description":"true only on /enrich/ai when the AI classification succeeded."},"resolvedFrom":{"type":"object","description":"Only for `name` lookups: how the website was found and verified.","properties":{"name":{"type":"string"},"country":{"type":"string"},"method":{"type":"string","enum":["domain-guess"]},"matchedOn":{"type":"string","description":"The site's own name (schema.org, og:site_name, application-name or title) that matched."},"tried":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"result":{"type":"string"}}}}}},"redirectedTo":{"type":"string","description":"Only when the website redirected to another domain."},"warning":{"type":"string","description":"Only with redirectedTo."},"skippedPages":{"type":"array","items":{"type":"string"},"description":"Pages not read because the time budget ran out (the answer is then not cached; header x-partial: true)."},"fallbackReason":{"type":"string","description":"Why the browser was used."},"ai":{"type":"object","description":"AI classification (Llama 3.3 70B, about 1,500 tokens of site text in, 400 tokens out at most).","properties":{"industry":{"type":"string","nullable":true,"enum":["software-saas","it-services","cybersecurity","ecommerce-retail","consumer-products","financial-services","insurance","healthcare","pharma-biotech-medtech","manufacturing-industrial","construction-engineering","real-estate","marketing-advertising","media-publishing","education","legal-services","professional-services","hr-staffing","travel-hospitality","restaurants-food-service","transportation-logistics","automotive","energy-utilities","telecommunications","agriculture-food-production","entertainment-gaming-sports","health-wellness-beauty","local-home-services","government-public-sector","nonprofit","other"]},"businessModel":{"type":"string","nullable":true,"enum":["B2B","B2C","B2B2C","nonprofit","government"]},"summary":{"type":"string","nullable":true,"description":"One factual sentence on what the company does."},"companyName":{"type":"string","nullable":true},"confidence":{"type":"string","nullable":true,"enum":["high","medium","low"]},"reason":{"type":"string","nullable":true},"language":{"type":"string","nullable":true,"description":"ISO 639-1 of the site text."},"model":{"type":"string"},"usage":{"type":"object","properties":{"inputTokens":{"type":"integer"},"outputTokens":{"type":"integer"}}}}},"aiError":{"type":"string","description":"Only when the AI step failed (the rest of the profile is still returned; aiGenerated=false)."}}},"example":{"success":true,"input":{"domain":"redcross.org"},"domain":"redcross.org","url":"https://redcross.org/","finalUrl":"https://www.redcross.org/","name":"American Red Cross","legalName":null,"description":"Every 8 minutes the American Red Cross responds to an emergency. Support the Red Cross. Join us today by making a donation.","logo":"https://www.redcross.org/etc/designs/redcross/shared/favicon.ico","favicon":"https://www.redcross.org/etc/designs/redcross/shared/favicon.ico","industry":{"label":"nonprofit","confidence":"high","method":"ai","reason":"The website is focused on donations, volunteering, and disaster relief services, which are typical of a nonprofit organization.","keywordGuess":"nonprofit"},"organizationType":null,"foundedYear":null,"socialProfiles":{"facebook":"https://www.facebook.com/redcross","instagram":"https://www.instagram.com/americanredcross","linkedin":"https://www.linkedin.com/company/american-red-cross","tiktok":"https://www.tiktok.com/@americanredcross","x":"https://x.com/redcross","threads":"https://www.threads.net/@americanredcross"},"primaryEmail":"customercare@redcross.org","emails":[{"email":"customercare@redcross.org","type":"role","sameDomain":true,"source":"https://www.redcross.org/contact-us.html"},{"email":"hospitalsupport@redcross.org","type":"other","sameDomain":true,"source":"https://www.redcross.org/contact-us.html"},{"email":"dotcompliancecenter@redcross.org","type":"other","sameDomain":true,"source":"https://www.redcross.org/contact-us.html"},{"email":"ombudsman@redcross.org","type":"other","sameDomain":true,"source":"https://www.redcross.org/contact-us.html"}],"primaryPhone":"+18007332763","phones":[{"number":"+18007332763","type":"phone","country":"US","source":"https://www.redcross.org/"},{"number":"+18007332767","type":"phone","country":"US","source":"https://www.redcross.org/"},{"number":"+18662363276","type":"phone","country":"US","source":"https://www.redcross.org/contact-us.html"},{"number":"+18003672884","type":"phone","country":"US","source":"https://www.redcross.org/contact-us.html"}],"address":null,"addressDetails":null,"country":"US","countrySource":"phone","languages":["en"],"contactFormUrl":null,"techStack":{"count":5,"categories":{"CMS":["Adobe Experience Manager"],"Tag manager":["Adobe Experience Platform Launch"],"CDN":["Akamai"],"Fonts":["Google Fonts"],"Cookie consent":["OneTrust"]},"technologies":[{"name":"Adobe Experience Manager","category":"CMS","confidence":"high"},{"name":"Adobe Experience Platform Launch","category":"Tag manager","confidence":"high"},{"name":"Akamai","category":"CDN","confidence":"high"},{"name":"Google Fonts","category":"Fonts","confidence":"high"}]},"dns":{"mxProvider":"Microsoft 365","mxHosts":["redcross-org.mail.protection.outlook.com"],"dnsHost":"Azure DNS","nameservers":["ns1-06.azure-dns.com","ns2-06.azure-dns.net","ns3-06.azure-dns.org","ns4-06.azure-dns.info"],"spfIncludes":["spf.protection.outlook.com"],"emailAuth":{"spf":true,"spfPolicy":"softfail","dmarc":true,"dmarcPolicy":"reject"},"services":[{"name":"Microsoft 365","category":"Email hosting","evidence":"MX redcross-org.mail.protection.outlook.com"},{"name":"DocuSign","category":"E-signature","evidence":"TXT docusign=…"},{"name":"Adobe","category":"Software","evidence":"TXT adobe-idp-site-verification=…"},{"name":"Google Search Console","category":"SEO","evidence":"TXT google-site-verification=…"}]},"domainRegistration":{"domain":"redcross.org","registrar":"MarkMonitor Inc.","createdAt":"1995-09-05T04:00:00.131Z","expiresAt":"2027-09-04T04:00:00Z","domainAgeDays":11349,"domainAgeYears":31,"registrantOrg":null,"registrantCountry":null,"source":"rdap","server":"rdap.publicinterestregistry.org"},"companySize":{"employeesStated":null,"careersPage":"https://www.redcross.org/about-us/careers.html","ats":"workday","atsSupported":true,"jobBoardUrl":"https://americanredcross.wd1.myworkdayjobs.com/American_Red_Cross_Careers","openJobs":367,"hiring":true,"jobBoard":"workday:americanredcross/American_Red_Cross_Careers","atsDetection":"site-link"},"evidence":{"name":{"source":"<title>","url":"https://www.redcross.org/"},"description":{"source":"meta description","url":"https://www.redcross.org/"},"logo":{"source":"link rel=icon","url":"https://www.redcross.org/"},"ats":{"source":"job board link on the site","url":"https://www.redcross.org/about-us/careers.html"},"domainAge":{"source":"RDAP","url":"https://rdap.publicinterestregistry.org/"},"socialProfiles":{"source":"links on the site","url":"https://www.redcross.org/"}},"foundedYearText":null,"pagesChecked":[{"url":"https://www.redcross.org/","kind":"home","via":"http","httpStatus":200},{"url":"https://www.redcross.org/about-us/careers.html","kind":"about","via":"http","httpStatus":200},{"url":"https://www.redcross.org/contact-us.html","kind":"contact","via":"http","httpStatus":200},{"url":"https://www.redcross.org/find-your-local-chapter.html","kind":"locations","via":"http","httpStatus":200}],"pagesFailed":[],"renderedWith":"http","charset":"utf-8","notes":[],"aiGenerated":true,"ai":{"industry":"nonprofit","businessModel":"nonprofit","summary":"The American Red Cross responds to emergencies and provides disaster relief, blood donations, and training services.","companyName":"American Red Cross","confidence":"high","reason":"The website is focused on donations, volunteering, and disaster relief services, which are typical of a nonprofit organization.","language":"en","model":"llama-3.3-70b","usage":{"inputTokens":2292,"outputTokens":89}}}}}},"400":{"description":"Invalid parameter (`invalid_request`) or a private/local target (`url_not_allowed`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"url_not_allowed","message":"private, local and reserved hosts are not allowed"}}}}},"413":{"description":"Request body or target document too large (`too_large`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The domain is parked, for sale or a placeholder (`parked_domain`, `details.siteStatus`: parked, placeholder or default_server_page), no website could be verified for a `name` (`company_not_found`, with the domains tried), the site could not be reached or its domain does not exist (`target_unreachable`), refused even a real browser (`target_blocked`) or its home page failed (`target_error`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"parked_domain","message":"example.com: the site is a placeholder (coming soon, under construction or an example page), so there is no company profile to build.","details":{"domain":"example.com","finalUrl":"https://example.com/","siteStatus":"placeholder","title":"Example Domain"}}}}}},"502":{"description":"Temporary failure on our side (`upstream_error`); safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"The target did not respond in time (`timeout`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"companyEnrichAi","summary":"Enrich a company and classify it with AI","description":"The same profile as `/api/v1/company/enrich`, plus `ai`: industry (one of 31 labels), business model (B2B, B2C, B2B2C, nonprofit, government), a one-sentence summary and the company name, from about 1,500 tokens of the home and about pages (output capped at 400 tokens). `industry` then holds the AI label (`method: ai`). Parked, placeholder and unreachable sites are refused before the model runs. `aiGenerated` and header `x-ai-generated` say whether the AI part is in the answer. Pages read: the home page plus about, contact and careers pages (maxPages, default 4), decoded with the site's real charset; a real browser only when the site blocks bots or needs JavaScript. DNS, RDAP and one public ATS job feed are read in parallel. Every fact carries the page it came from (`evidence`). Results are cached for 24 hours.\n\nThe same parameters as the GET form, sent as a JSON body.","tags":["Company"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Company domain or website URL (`stripe.com`, `https://www.acme.de/en`). An e-mail address works too (its domain is used). Aliases: `url`, `website`. Required unless `name` is sent. Private and local addresses are refused."},"name":{"type":"string","description":"Company name, used only when no `domain` is sent: candidate domains are built from the name (+ `country`), resolved over DNS, and a site counts only when its own name (schema.org, og:site_name or title) is this name. Otherwise `422 company_not_found`: send the domain."},"country":{"type":"string","description":"With `name`: 2-letter ISO country code; its domain endings (e.g. `.de`, `.co.uk`, `.co.jp`) are tried before `.com`."},"maxPages":{"type":"integer","default":4,"minimum":1,"maximum":6,"description":"Pages of the site to read, home page included: about, contact and careers pages first, then imprint, team and locations."},"render":{"type":"string","default":"auto","enum":["auto","never"],"description":"`auto` (default): plain HTTP, and a real Chrome browser for the home page only when the site blocks plain requests or needs JavaScript. `never`: HTTP only."},"includeJobs":{"type":"boolean","default":true,"description":"Look for the company's ATS job board and count open jobs (`companySize`)."},"includeDns":{"type":"boolean","default":true,"description":"Return the DNS findings (`dns`: MX provider, SPF includes, verification records, DNS host)."},"includeRdap":{"type":"boolean","default":true,"description":"Look up the domain's registration (`domainRegistration`: creation date, age, registrar)."},"includeEvidence":{"type":"boolean","default":true,"description":"Return `evidence` (source and page URL per field) and `foundedYearText`."}}}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"input":{"type":"object","description":"What you sent: `domain`, or `name` (+ `country`).","properties":{"domain":{"type":"string"},"name":{"type":"string"},"country":{"type":"string"}}},"domain":{"type":"string"},"url":{"type":"string"},"finalUrl":{"type":"string"},"name":{"type":"string","nullable":true,"description":"Company name: schema.org Organization, else og:site_name, application-name, the <title> (\"official site\" suffixes removed). On /enrich/ai the AI name fills it when none is found."},"legalName":{"type":"string","nullable":true,"description":"schema.org legalName when published."},"description":{"type":"string","nullable":true,"description":"Meta description, else og:description, else schema.org description (up to 600 characters)."},"logo":{"type":"string","nullable":true,"description":"schema.org logo, else apple-touch-icon, else the largest declared icon. `evidence.logo.source` says which."},"favicon":{"type":"string","nullable":true,"description":"Largest <link rel=icon> declared."},"industry":{"type":"object","nullable":true,"description":"Industry guess. /enrich: from the schema.org type, a government domain or keywords (`method`). /enrich/ai: the AI label (`method: ai`), with the keyword guess in `keywordGuess`. null when nothing points to an industry.","properties":{"label":{"type":"string","enum":["software-saas","it-services","cybersecurity","ecommerce-retail","consumer-products","financial-services","insurance","healthcare","pharma-biotech-medtech","manufacturing-industrial","construction-engineering","real-estate","marketing-advertising","media-publishing","education","legal-services","professional-services","hr-staffing","travel-hospitality","restaurants-food-service","transportation-logistics","automotive","energy-utilities","telecommunications","agriculture-food-production","entertainment-gaming-sports","health-wellness-beauty","local-home-services","government-public-sector","nonprofit","other"]},"confidence":{"type":"string","enum":["high","medium","low"]},"method":{"type":"string","enum":["schema.org","domain","keywords","ai"]},"signals":{"type":"array","items":{"type":"string"},"description":"Keywords or the schema.org type that decided it (not on AI answers)."},"reason":{"type":"string","description":"AI only: one sentence."},"keywordGuess":{"type":"string","nullable":true,"description":"AI only: the deterministic guess, for comparison."}}},"organizationType":{"type":"string","nullable":true,"description":"schema.org @type of the site's organization (e.g. Corporation, Restaurant, Dentist)."},"foundedYear":{"type":"integer","nullable":true,"description":"Only when stated: schema.org foundingDate or a sentence such as \"founded in 2012\", \"since 1921\", \"2005年設立\". Never estimated."},"socialProfiles":{"type":"object","additionalProperties":{"type":"string"},"description":"The company's own profiles, keyed by network (linkedin, x, facebook, instagram, youtube, tiktok, github, pinterest, threads, ...)."},"primaryEmail":{"type":"string","nullable":true,"description":"Best contact address: own domain, role mailbox first."},"emails":{"type":"array","description":"Public addresses published on the pages read (up to 25), own-domain first.","items":{"type":"object","properties":{"email":{"type":"string"},"type":{"type":"string","enum":["role","other"],"description":"`role`: shared mailbox (info@, sales@, support@, press@, jobs@...). `other`: anything else (often a person)."},"sameDomain":{"type":"boolean"},"source":{"type":"string","description":"Page it was found on."}}}},"primaryPhone":{"type":"string","nullable":true,"description":"First phone number (not fax)."},"phones":{"type":"array","description":"Phone and fax numbers in E.164 (up to 15), validated with libphonenumber.","items":{"type":"object","properties":{"number":{"type":"string"},"type":{"type":"string","enum":["phone","fax"]},"country":{"type":"string","nullable":true},"source":{"type":"string"}}}},"address":{"type":"string","nullable":true,"description":"Postal address from schema.org, formatted."},"addressDetails":{"type":"object","nullable":true,"properties":{"street":{"type":"string","nullable":true},"locality":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"postalCode":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"formatted":{"type":"string","nullable":true}}},"country":{"type":"string","nullable":true,"description":"ISO country of the company: postal address, else its phone numbers, else the ccTLD."},"countrySource":{"type":"string","nullable":true,"description":"Where `country` came from.","enum":["address","phone","tld"]},"languages":{"type":"array","items":{"type":"string"},"description":"ISO 639-1 codes the site is published in: <html lang>, hreflang alternates, og:locale."},"contactFormUrl":{"type":"string","nullable":true,"description":"Page with a contact form, when one was seen."},"techStack":{"type":"object","properties":{"count":{"type":"integer"},"categories":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}}},"technologies":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"category":{"type":"string"},"confidence":{"type":"string"}}}}},"description":"Technologies seen on the home page (325 fingerprints, the same as the Tech Stack API): `categories` maps category -> names."},"dns":{"type":"object","nullable":true,"description":"Tools visible in public DNS (null with includeDns=false or when DNS could not be read).","properties":{"mxProvider":{"type":"string","nullable":true,"description":"Email provider from the MX records (Google Workspace, Microsoft 365, Proofpoint, Zoho Mail, ...), `self-hosted or other`, or null without MX."},"mxHosts":{"type":"array","items":{"type":"string"}},"dnsHost":{"type":"string","nullable":true,"description":"DNS provider from the nameservers (Cloudflare, Amazon Route 53, Azure DNS, GoDaddy, ...)."},"nameservers":{"type":"array","items":{"type":"string"}},"spfIncludes":{"type":"array","items":{"type":"string"}},"emailAuth":{"type":"object","properties":{"spf":{"type":"boolean"},"spfPolicy":{"type":"string","nullable":true,"description":"fail, softfail, neutral, pass, none or redirect."},"dmarc":{"type":"boolean"},"dmarcPolicy":{"type":"string","nullable":true,"description":"none, quarantine, reject or invalid."}}},"services":{"type":"array","description":"SaaS tools the domain is set up for: MX provider, SPF includes (HubSpot, Salesforce, SendGrid, Mailchimp, Zendesk, ...) and TXT verification records (Google Search Console, Microsoft 365, Atlassian, Slack, Stripe, OpenAI, ...).","items":{"type":"object","properties":{"name":{"type":"string"},"category":{"type":"string"},"evidence":{"type":"string","description":"e.g. `SPF include:_spf.salesforce.com`, `TXT atlassian-domain-verification`."}}}}}},"domainRegistration":{"type":"object","nullable":true,"description":"RDAP (WHOIS for TLDs without RDAP, e.g. .jp). null with includeRdap=false or when the registry could not be read (see notes).","properties":{"domain":{"type":"string"},"registrar":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true,"description":"ISO 8601."},"expiresAt":{"type":"string","nullable":true,"description":"ISO 8601."},"domainAgeDays":{"type":"integer","nullable":true},"domainAgeYears":{"type":"number","nullable":true},"registrantOrg":{"type":"string","nullable":true,"description":"Only when not redacted."},"registrantCountry":{"type":"string","nullable":true},"source":{"type":"string","enum":["rdap","whois"]},"server":{"type":"string","nullable":true}}},"companySize":{"type":"object","description":"Size and hiring signals. Nothing is estimated: only stated employee counts and live job-board totals.","properties":{"employeesStated":{"type":"object","nullable":true,"description":"Employee count the site states (schema.org numberOfEmployees or text like \"over 1,200 employees\", \"a team of 45\").","properties":{"value":{"type":"integer"},"approximate":{"type":"boolean"},"text":{"type":"string"}}},"careersPage":{"type":"string","nullable":true,"description":"Careers page linked from the home page."},"ats":{"type":"string","nullable":true,"description":"Applicant tracking system seen (greenhouse, lever, ashby, workday, smartrecruiters, workable, ...; or one without a public feed such as icims)."},"atsSupported":{"type":"boolean","nullable":true,"description":"true when its public job feed was read."},"jobBoard":{"type":"string","description":"`ats:slug` of the board (use it with a jobs API)."},"jobBoardUrl":{"type":"string","nullable":true},"atsDetection":{"type":"string","enum":["site-link","verified-guess"],"description":"`site-link`: linked or embedded on the site. `verified-guess`: the board named after the domain on Greenhouse, Lever or Ashby, verified against the domain."},"openJobs":{"type":"integer","nullable":true,"description":"Open postings on the board right now."},"hiring":{"type":"boolean","nullable":true}}},"evidence":{"type":"object","description":"With includeEvidence=true: for each field, where it came from (`source`) and the page (`url`). Keys: name, description, logo, foundedYear, employees, ats, domainAge, socialProfiles, address.","additionalProperties":{"type":"object","properties":{"source":{"type":"string"},"url":{"type":"string","nullable":true}}}},"foundedYearText":{"type":"string","nullable":true,"description":"The sentence the founding year came from (with includeEvidence)."},"pagesChecked":{"type":"array","description":"Pages read: home, then about, contact, careers, imprint, team, locations (up to maxPages).","items":{"type":"object","properties":{"url":{"type":"string"},"kind":{"type":"string"},"via":{"type":"string","enum":["http","browser"]},"httpStatus":{"type":"integer","nullable":true}}}},"pagesFailed":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"error":{"type":"string"},"httpStatus":{"type":"integer","nullable":true}}}},"renderedWith":{"type":"string","enum":["http","browser"],"description":"How the home page was read. `browser`: the site blocked plain requests or needed JavaScript (render=auto, at most one render per call)."},"charset":{"type":"string","nullable":true,"description":"Character encoding the home page was decoded with (BOM, Content-Type or <meta>); null for browser renders."},"notes":{"type":"array","items":{"type":"string"},"description":"Plain-language notes on missing parts (DNS or RDAP unavailable, ATS without public feed, ...)."},"aiGenerated":{"type":"boolean","description":"true only on /enrich/ai when the AI classification succeeded."},"resolvedFrom":{"type":"object","description":"Only for `name` lookups: how the website was found and verified.","properties":{"name":{"type":"string"},"country":{"type":"string"},"method":{"type":"string","enum":["domain-guess"]},"matchedOn":{"type":"string","description":"The site's own name (schema.org, og:site_name, application-name or title) that matched."},"tried":{"type":"array","items":{"type":"object","properties":{"domain":{"type":"string"},"result":{"type":"string"}}}}}},"redirectedTo":{"type":"string","description":"Only when the website redirected to another domain."},"warning":{"type":"string","description":"Only with redirectedTo."},"skippedPages":{"type":"array","items":{"type":"string"},"description":"Pages not read because the time budget ran out (the answer is then not cached; header x-partial: true)."},"fallbackReason":{"type":"string","description":"Why the browser was used."},"ai":{"type":"object","description":"AI classification (Llama 3.3 70B, about 1,500 tokens of site text in, 400 tokens out at most).","properties":{"industry":{"type":"string","nullable":true,"enum":["software-saas","it-services","cybersecurity","ecommerce-retail","consumer-products","financial-services","insurance","healthcare","pharma-biotech-medtech","manufacturing-industrial","construction-engineering","real-estate","marketing-advertising","media-publishing","education","legal-services","professional-services","hr-staffing","travel-hospitality","restaurants-food-service","transportation-logistics","automotive","energy-utilities","telecommunications","agriculture-food-production","entertainment-gaming-sports","health-wellness-beauty","local-home-services","government-public-sector","nonprofit","other"]},"businessModel":{"type":"string","nullable":true,"enum":["B2B","B2C","B2B2C","nonprofit","government"]},"summary":{"type":"string","nullable":true,"description":"One factual sentence on what the company does."},"companyName":{"type":"string","nullable":true},"confidence":{"type":"string","nullable":true,"enum":["high","medium","low"]},"reason":{"type":"string","nullable":true},"language":{"type":"string","nullable":true,"description":"ISO 639-1 of the site text."},"model":{"type":"string"},"usage":{"type":"object","properties":{"inputTokens":{"type":"integer"},"outputTokens":{"type":"integer"}}}}},"aiError":{"type":"string","description":"Only when the AI step failed (the rest of the profile is still returned; aiGenerated=false)."}}},"example":{"success":true,"input":{"domain":"redcross.org"},"domain":"redcross.org","url":"https://redcross.org/","finalUrl":"https://www.redcross.org/","name":"American Red Cross","legalName":null,"description":"Every 8 minutes the American Red Cross responds to an emergency. Support the Red Cross. Join us today by making a donation.","logo":"https://www.redcross.org/etc/designs/redcross/shared/favicon.ico","favicon":"https://www.redcross.org/etc/designs/redcross/shared/favicon.ico","industry":{"label":"nonprofit","confidence":"high","method":"ai","reason":"The website is focused on donations, volunteering, and disaster relief services, which are typical of a nonprofit organization.","keywordGuess":"nonprofit"},"organizationType":null,"foundedYear":null,"socialProfiles":{"facebook":"https://www.facebook.com/redcross","instagram":"https://www.instagram.com/americanredcross","linkedin":"https://www.linkedin.com/company/american-red-cross","tiktok":"https://www.tiktok.com/@americanredcross","x":"https://x.com/redcross","threads":"https://www.threads.net/@americanredcross"},"primaryEmail":"customercare@redcross.org","emails":[{"email":"customercare@redcross.org","type":"role","sameDomain":true,"source":"https://www.redcross.org/contact-us.html"},{"email":"hospitalsupport@redcross.org","type":"other","sameDomain":true,"source":"https://www.redcross.org/contact-us.html"},{"email":"dotcompliancecenter@redcross.org","type":"other","sameDomain":true,"source":"https://www.redcross.org/contact-us.html"},{"email":"ombudsman@redcross.org","type":"other","sameDomain":true,"source":"https://www.redcross.org/contact-us.html"}],"primaryPhone":"+18007332763","phones":[{"number":"+18007332763","type":"phone","country":"US","source":"https://www.redcross.org/"},{"number":"+18007332767","type":"phone","country":"US","source":"https://www.redcross.org/"},{"number":"+18662363276","type":"phone","country":"US","source":"https://www.redcross.org/contact-us.html"},{"number":"+18003672884","type":"phone","country":"US","source":"https://www.redcross.org/contact-us.html"}],"address":null,"addressDetails":null,"country":"US","countrySource":"phone","languages":["en"],"contactFormUrl":null,"techStack":{"count":5,"categories":{"CMS":["Adobe Experience Manager"],"Tag manager":["Adobe Experience Platform Launch"],"CDN":["Akamai"],"Fonts":["Google Fonts"],"Cookie consent":["OneTrust"]},"technologies":[{"name":"Adobe Experience Manager","category":"CMS","confidence":"high"},{"name":"Adobe Experience Platform Launch","category":"Tag manager","confidence":"high"},{"name":"Akamai","category":"CDN","confidence":"high"},{"name":"Google Fonts","category":"Fonts","confidence":"high"}]},"dns":{"mxProvider":"Microsoft 365","mxHosts":["redcross-org.mail.protection.outlook.com"],"dnsHost":"Azure DNS","nameservers":["ns1-06.azure-dns.com","ns2-06.azure-dns.net","ns3-06.azure-dns.org","ns4-06.azure-dns.info"],"spfIncludes":["spf.protection.outlook.com"],"emailAuth":{"spf":true,"spfPolicy":"softfail","dmarc":true,"dmarcPolicy":"reject"},"services":[{"name":"Microsoft 365","category":"Email hosting","evidence":"MX redcross-org.mail.protection.outlook.com"},{"name":"DocuSign","category":"E-signature","evidence":"TXT docusign=…"},{"name":"Adobe","category":"Software","evidence":"TXT adobe-idp-site-verification=…"},{"name":"Google Search Console","category":"SEO","evidence":"TXT google-site-verification=…"}]},"domainRegistration":{"domain":"redcross.org","registrar":"MarkMonitor Inc.","createdAt":"1995-09-05T04:00:00.131Z","expiresAt":"2027-09-04T04:00:00Z","domainAgeDays":11349,"domainAgeYears":31,"registrantOrg":null,"registrantCountry":null,"source":"rdap","server":"rdap.publicinterestregistry.org"},"companySize":{"employeesStated":null,"careersPage":"https://www.redcross.org/about-us/careers.html","ats":"workday","atsSupported":true,"jobBoardUrl":"https://americanredcross.wd1.myworkdayjobs.com/American_Red_Cross_Careers","openJobs":367,"hiring":true,"jobBoard":"workday:americanredcross/American_Red_Cross_Careers","atsDetection":"site-link"},"evidence":{"name":{"source":"<title>","url":"https://www.redcross.org/"},"description":{"source":"meta description","url":"https://www.redcross.org/"},"logo":{"source":"link rel=icon","url":"https://www.redcross.org/"},"ats":{"source":"job board link on the site","url":"https://www.redcross.org/about-us/careers.html"},"domainAge":{"source":"RDAP","url":"https://rdap.publicinterestregistry.org/"},"socialProfiles":{"source":"links on the site","url":"https://www.redcross.org/"}},"foundedYearText":null,"pagesChecked":[{"url":"https://www.redcross.org/","kind":"home","via":"http","httpStatus":200},{"url":"https://www.redcross.org/about-us/careers.html","kind":"about","via":"http","httpStatus":200},{"url":"https://www.redcross.org/contact-us.html","kind":"contact","via":"http","httpStatus":200},{"url":"https://www.redcross.org/find-your-local-chapter.html","kind":"locations","via":"http","httpStatus":200}],"pagesFailed":[],"renderedWith":"http","charset":"utf-8","notes":[],"aiGenerated":true,"ai":{"industry":"nonprofit","businessModel":"nonprofit","summary":"The American Red Cross responds to emergencies and provides disaster relief, blood donations, and training services.","companyName":"American Red Cross","confidence":"high","reason":"The website is focused on donations, volunteering, and disaster relief services, which are typical of a nonprofit organization.","language":"en","model":"llama-3.3-70b","usage":{"inputTokens":2292,"outputTokens":89}}}}}},"400":{"description":"Invalid parameter (`invalid_request`) or a private/local target (`url_not_allowed`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"url_not_allowed","message":"private, local and reserved hosts are not allowed"}}}}},"413":{"description":"Request body or target document too large (`too_large`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"The domain is parked, for sale or a placeholder (`parked_domain`, `details.siteStatus`: parked, placeholder or default_server_page), no website could be verified for a `name` (`company_not_found`, with the domains tried), the site could not be reached or its domain does not exist (`target_unreachable`), refused even a real browser (`target_blocked`) or its home page failed (`target_error`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"parked_domain","message":"example.com: the site is a placeholder (coming soon, under construction or an example page), so there is no company profile to build.","details":{"domain":"example.com","finalUrl":"https://example.com/","siteStatus":"placeholder","title":"Example Domain"}}}}}},"502":{"description":"Temporary failure on our side (`upstream_error`); safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"The target did not respond in time (`timeout`).","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","parked_domain","company_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}}}}}}}}