Domain Intelligence Suite: WHOIS, DNS, SSL, Tech Stack & More
Pricing
Pay per event
Domain Intelligence Suite: WHOIS, DNS, SSL, Tech Stack & More
Bulk domain enrichment in one call: WHOIS/RDAP, DNS, SSL, tech stack, subdomains, Wayback history, email checks, and social links. Nine modules, pay only for what you use. No headless browser, no proxy costs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Donovan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Domain Intelligence Suite
Bulk domain enrichment in one call: WHOIS/RDAP, DNS, SSL certificates, tech-stack fingerprinting, HTTP headers, subdomain enumeration, Wayback Machine history, email deliverability, and social links.
Built for sales teams enriching leads, security researchers, competitive intel, domain investors, and brand-protection teams.
What sets this apart
There are several domain-enrichment actors on the store — this isn't an uncontested category. Most cover WHOIS + DNS, a couple add SSL or tech-stack detection. None combine all nine modules in one call with per-module pricing, so you pay only for what you actually use:
- Nine modules, one request per domain. WHOIS, DNS, SSL, tech stack, HTTP headers, subdomains, Wayback history, email deliverability, and social links — pick any subset per run.
- Pure HTTP/DNS, no headless browser. Every module is a protocol-level call (RDAP, DNS-over-HTTPS, a raw TLS handshake, certificate-transparency search) — no Playwright, no proxy costs, low compute, high margin, and nothing that breaks when a site changes its frontend markup.
- Modules fail independently. If one module can't complete for a domain (a flaky upstream service, a blocked port), that domain's report still ships with every other module's data intact and the failure listed in
modules_failed— one bad module never blanks the whole record. - Honest about what's actually free. Some competing tools and research docs describe a "favicon → company name" enrichment step; that's a commercial product (Clearbit and similar), not something derivable for free. This actor doesn't claim it. The social-links module is scoped to what it actually does: reading known link patterns off the domain's own homepage.
Modules
| Module | What it returns | Notes |
|---|---|---|
whois | Registrar, creation/expiry dates, domain age, nameservers, status codes | Via RDAP, the modern JSON/HTTP standard — not raw WHOIS-over-port-43 |
dns | A, AAAA, MX, TXT, NS, CNAME records | Via DNS-over-HTTPS |
ssl | Certificate issuer, validity window, SAN entries (reveals related domains), wildcard flag | Real TLS handshake, not a third-party lookup API |
tech_stack | CDN, analytics tools, and frameworks detected | Pattern-matched from the page already fetched for http_headers/social. Covers common, high-confidence signals — not a claim of full Wappalyzer-level fingerprint coverage |
http_headers | Status code, server header, HSTS presence, response time | |
email_check | Whether MX records exist, and whether the top mail host accepts an SMTP connection | Never sends mail. Confirmed on Apify's own platform: outbound port 25 is blocked, so smtp_connectable will always be null in production — this module currently only delivers mx_found there. Kept in because MX presence is still real signal, and the code fails soft rather than misreporting false. |
subdomains | Subdomains found via certificate transparency logs | Best-effort. The underlying free service (crt.sh) is community-run and occasionally overloaded; a degraded run returns source_degraded: true with an empty list rather than failing the domain |
wayback | Earliest known snapshot date | Via the Internet Archive's CDX API |
social | Twitter/X, LinkedIn, and GitHub links found on the homepage | Only what's actually linked from the page — not a brand-matching guess |
Input
{"domains": ["stripe.com", "ramp.com"],"modules": ["whois", "dns", "ssl", "tech_stack", "http_headers"]}
| Field | Type | Default | What it does |
|---|---|---|---|
domains | string[] | required | Bare hostnames or full URLs (path ignored). Duplicates removed automatically. |
modules | string[] | ["whois","dns","ssl","tech_stack","http_headers"] | Which modules to run. Omit a module to skip its cost entirely. |
Output
One record per domain in the default dataset:
{"domain": "stripe.com","resolved_at": "2026-08-03T20:00:00.000Z","whois": { "registrar": "SafeNames Ltd.", "created_at": "1995-09-12T04:00:00.000Z", "age_days": 11283, "expires_at": "2027-09-11T04:00:00.000Z", "nameservers": ["ns-1087.awsdns-07.org"], "status": ["clientTransferProhibited"] },"dns": { "a": ["198.202.176.231"], "aaaa": [], "mx": [{ "priority": 10, "host": "aspmx.l.google.com" }], "txt": ["v=spf1 include:_spf.google.com ~all"], "ns": ["ns-1087.awsdns-07.org"], "cname": [] },"ssl": { "issuer": "DigiCert Inc DigiCert Global G3 TLS ECC SHA384 2020 CA1", "valid_from": "2026-07-28T00:00:00.000Z", "valid_to": "2026-11-12T23:59:59.000Z", "san": ["stripe.com", "www.stripe.com"], "wildcard": false },"tech_stack": { "cdn": [], "analytics": ["Google Analytics"], "frameworks": ["React"], "server": null },"http_headers": { "status": 200, "server": null, "x_powered_by": null, "strict_transport_security": true, "response_time_ms": 142 },"modules_failed": []}
A run-level summary (domains processed, module charges issued, per-domain failures, whether the run stopped early on a spending cap) is written to the key-value store under RUN_SUMMARY.
Pricing
Pay-per-event: $0.00005 actor start, $0.0005 per domain attempted, $0.001 per module that successfully completes. A 5-module default run costs about $0.0056/domain; the full 9-module set costs about $0.0096/domain. You're only charged for modules that actually returned data — a module that fails for a given domain isn't billed.
Status
Built, pushed, monetized, and published to the Apify Store.