Domain → Company Enrichment — DNS, SSL, Stack
Pricing
$5.00 / 1,000 domain enricheds
Domain → Company Enrichment — DNS, SSL, Stack
One row per input domain. DNS records (A/AAAA/MX/NS/TXT/SPF/DMARC), SSL cert subject + issuer + validity window, homepage title/description/H1, and tech-stack tells (Cloudflare, Vercel, Netlify, Shopify, WordPress, React, Next.js, Stripe, Hubspot, GA). No paid WHOIS, no auth.
Domain → Company Enrichment
One row per domain. DNS, SSL, homepage meta, and tech-stack tells — without paid WHOIS, without auth, without a headless browser.
What you get
{"domain": "stripe.com","dns": {"a": ["3.18.12.63", "3.130.192.231"],"aaaa": [],"mx": [{ "preference": 10, "exchange": "aspmx.l.google.com" }],"ns": ["ns-1.awsdns-00.com", "ns-2048.awsdns-64.com"],"spf": "v=spf1 include:_spf.google.com ~all","dmarc": "v=DMARC1; p=reject; rua=mailto:dmarc@stripe.com","hasMx": true},"ssl": {"subject": "stripe.com","issuer": "DigiCert TLS Hybrid ECC SHA384 2020 CA1","notBefore": "2026-01-05T00:00:00+00:00","notAfter": "2027-02-04T23:59:59+00:00","subjectAltNames": ["stripe.com", "*.stripe.com"]},"homepage": {"status": 200,"title": "Stripe | Financial Infrastructure...","description": "Stripe is a suite of payment APIs...","h1": "Financial infrastructure to grow your revenue","tech": ["cloudflare", "react", "stripe"]},"companyName": "Stripe","company": {"emails": [{ "email": "press@stripe.com", "role": "press" },{ "email": "privacy@stripe.com", "role": "legal" }],"phones": ["+14155551212"],"socials": {"twitter": ["https://twitter.com/stripe"],"github": ["https://github.com/stripe"],"youtube": ["https://youtube.com/@stripe"]}}}
How to use
Input is a list of domains (stripe.com) or URLs (https://stripe.com).
URLs are reduced to host. The actor does:
- DNS — A, AAAA, MX (sorted by preference), NS, TXT, plus parsed
v=spf1and_dmarc.<host>records. - SSL peek (toggleable) — TLS handshake on 443, extracts subject CN, issuer, notBefore, notAfter, subjectAltNames. No CA validation needed for metadata.
- Homepage (toggleable) — single GET on
/, parses title, meta description, first H1, and tech-stack tells from response headers plus HTML substring matches.
What gets detected
| Layer | Tells |
|---|---|
| CDN / hosting | Cloudflare, Vercel, Netlify, GitHub Pages, AWS CloudFront, Akamai, Fastly |
| Site builder / CMS | Shopify, WordPress, Wix, Squarespace, Webflow |
| Framework | Next.js, Nuxt, Vue, React |
| Analytics | GA4, GTM, Segment, Mixpanel |
| Other | Stripe, Hubspot, Intercom |
v0.2 — what's new
Company profile in one row. When fetchHomepage is on, the actor
now also emits:
companyName— taken from aschema.org/OrganizationJSON-LD block if present, falling back to the<title>head (stripping common| Company/- Taglinesuffixes), and finally to a prettified host root.company.emails— same-domain emails harvested frommailto:anchors and free-text on the homepage. Each entry has aroletag inferred from the local part (info,support,sales,careers,legal,billing,security,press,ceo). Off-domain SDK noise (e.g.noreply@sentry.iofrom an embedded Sentry script) is dropped.company.phones—tel:links + free-text phone numbers, normalized to E.164 best-effort.company.socials— Twitter/X, Facebook, Instagram, YouTube, GitHub, TikTok. LinkedIn is deliberately excluded (LinkedIn TOS).
Zero extra HTTP requests, zero billing impact — every signal is parsed from the same homepage GET that already powers the title / H1 / tech fields.
What this actor does NOT do
- No paid WHOIS. Registrar / registration date / registrant org are paid lookups; we skip them. Use a dedicated WHOIS actor for that.
- No headless browser. Sites that ship the entire DOM via JS bundles
will surface as empty for
title/h1. Rare for marketing homepages. - No deep crawl. Single GET on
/. Pair with ourwebsite-contact-extractoractor for contact info on/contact,/about,/team, etc.
Pricing
PAY_PER_EVENT · $0.005 per domain_enriched · 200 domains = $1.