Website Tech Stack Detector API + DMARC, SPF, MX & SSL Checker avatar

Website Tech Stack Detector API + DMARC, SPF, MX & SSL Checker

Pricing

from $1.60 / 1,000 domains

Go to Apify Store
Website Tech Stack Detector API + DMARC, SPF, MX & SSL Checker

Website Tech Stack Detector API + DMARC, SPF, MX & SSL Checker

Tech stack lookup for any list of domains, a BuiltWith/Wappalyzer-style detector: 3,500+ technologies (CMS, ecommerce, frameworks, analytics, CDN), email provider from MX records, SPF, DMARC and DKIM checks, SSL expiry, llms.txt and security headers. One row per domain. $2 per 1,000 domains.

Pricing

from $1.60 / 1,000 domains

Rating

0.0

(0)

Developer

HireWatch

HireWatch

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 days ago

Last modified

Security

Limited permissions

Share

Website Tech Stack Detector + DMARC, SPF, MX & SSL Checker

A fast tech stack detector and technology lookup for any list of websites, plus email and domain checks in the same run: email provider from MX records, SPF / DMARC / DKIM validation and SSL certificate expiry. Use it as an affordable BuiltWith or Wappalyzer alternative for lead lists and domain audits.

Independent tool: not affiliated with or endorsed by BuiltWith or Wappalyzer. Names are used only to describe similar functionality.

Paste a list of domains and get one clean row per domain:

  • 🧩 Technologies: CMS, ecommerce platform, JS and web frameworks, analytics and tag managers, CDN and hosting, payments, live chat, marketing tools and 3,500+ more, with versions where the site exposes them.
  • 📧 E-mail provider: Google Workspace, Microsoft 365, Zoho, Proton and others, read from MX records. Security gateways such as Proofpoint, Mimecast and Cisco are reported too, along with the mailbox behind them when SPF reveals it.
  • 🔐 E-mail security: SPF (record, -all/~all, recursive DNS-lookup count vs the limit of 10, sending services), DMARC (policy, subdomain policy, pct, reporting service), DKIM keys on ~35 common selectors (with key size), MTA-STS, TLS-RPT and BIMI.
  • 🔒 SSL/TLS: issuer, validity dates, days until expiry, hostname coverage, chain verification, TLS version and key type.
  • 🤖 robots.txt, sitemap and llms.txt: whether each exists, which AI crawlers (GPTBot, ClaudeBot, Google-Extended, PerplexityBot, CCBot…) are blocked, the sitemap type and URL count, and the llms.txt title and link count.
  • 🌐 HTTP basics: status, redirects, final URL, server, response time, HTTP/3, HSTS, security headers, and whether HTTP redirects to HTTPS.
  • 🧾 DNS: DNS host (Cloudflare, Route 53…), CAA, IPs, and SaaS tools revealed by TXT verification records (Atlassian, DocuSign, Zoom, OpenAI, HubSpot, Stripe…).
  • ✅ Plain-language findings: e.g. "No DMARC record", "SPF needs 13 DNS lookups (limit 10)", "TLS certificate expires in 9 days", "No HSTS header".

Who it's for

  • Sales and lead generation: qualify accounts by stack ("uses Shopify + Klaviyo", "on Microsoft 365 behind Proofpoint", "WordPress sites without DMARC").
  • Agencies and MSPs: e-mail deliverability, security and SSL-expiry audits across many client or prospect domains in one run.
  • SEO and AI visibility: robots.txt, sitemap and llms.txt status, and which AI crawlers a site blocks.
  • Market research: technology adoption across a list of companies or competitors.

How to detect a website's tech stack

  1. Click Try for free (or Start) on this page. Apify's free plan includes monthly credit, so a first test costs nothing.
  2. Paste your domains or URLs into Domains, one per line (a CSV column of websites works).
  3. Leave every check on, or turn off the ones you don't need to go faster.
  4. Click Start. About 3 domains take 20 seconds; 1,000 domains take roughly 10–15 minutes with the default 10 in parallel.
  5. Open the Technologies or E-mail & DNS view, and download CSV, Excel or JSON.

Input

FieldWhat it does
domainsDomains or URLs, one per line. stripe.com, https://www.example.com/page and info@example.com all work (only the domain is used).
detectTechnologies, checkEmailDns, checkDkim, checkSsl, checkSiteFiles, checkHttpsRedirectTurn individual checks on or off (all on by default).
dkimSelectorsExtra DKIM selectors to test.
minTechConfidenceHide weaker technology matches (0–100).
maxConcurrencyDomains processed in parallel (default 10).
{ "domains": ["apify.com", "stripe.com", "shopify.com"] }

Output

One dataset item per domain. The table views are Overview, Technologies, E-mail & DNS and Audit findings, and you can export to CSV, Excel or JSON. A shortened example from a real run:

{
"domain": "apify.com",
"status": "ok",
"finalUrl": "https://apify.com/",
"httpStatus": 200,
"title": "Apify: Marketplace of ready-to-run tools for AI",
"hostingCdn": "Amazon Cloudfront, Amazon S3, Amazon Web Services",
"emailProvider": "Google Workspace",
"spfAll": "-all",
"dmarcPolicy": "reject",
"dkimFound": true,
"sslIssuer": "Amazon",
"sslDaysLeft": 100,
"hasRobotsTxt": true,
"hasSitemap": true,
"hasLlmsTxt": true,
"technologyNames": ["Algolia", "Amazon Cloudfront", "HubSpot", "Mixpanel", "React", "styled-components", "..."],
"technologies": [{ "name": "Algolia", "categories": ["Search engines"], "version": null, "confidence": 100 }],
"email": {
"provider": "Google Workspace",
"sendingServices": ["Google Workspace", "Mailgun", "Amazon SES", "HubSpot"],
"spf": { "allQualifier": "-all", "dnsLookups": 10, "tooManyLookups": false },
"dmarc": { "policy": "reject", "subdomainPolicy": "reject", "record": "v=DMARC1; p=reject; sp=reject; pct=100; rua=mailto:***@apify.com" },
"dkim": { "found": [{ "selector": "google", "keyBits": 2048 }, { "selector": "pic", "likelySender": "Mailgun", "keyBits": 1024 }] }
},
"dns": { "dnsProvider": "Amazon Route 53", "verifiedServices": ["OpenAI", "Google Search Console"] },
"robotsTxt": { "found": true, "aiCrawlersBlocked": [], "sitemaps": ["https://apify.com/sitemap.xml"] },
"llmsTxt": { "found": true, "title": "Apify", "linkCount": 73 },
"issues": []
}

status takes one of these values:

  • ok: the full profile.
  • partial: the website was unreachable, returned an error, or robots.txt disallowed it. DNS, e-mail and SSL data are still returned.
  • domain_not_found: the domain does not exist. Not charged.
  • invalid_input: the input could not be read as a domain. Not charged.

The RUN_REPORT record in the key-value store lists the status of every input.

Pricing

Pay per event, per domain profiled: $2.00 per 1,000 domains on the Free plan, $1.90 on Bronze, $1.70 on Silver and $1.60 on Gold and higher Apify plans. Every check above is included at no extra charge. You are not charged for invalid inputs, duplicates, or domains that don't exist. Set a maximum cost per run and the Actor stops cleanly when it reaches it.

DomainsFree planGold+ plansTypical use
100$0.20$0.16a prospect list or client audit
1,000$2.00$1.60a lead list for one campaign
10,000$20.00$16.00market-wide technology research

How it works, and why it's polite

  • It requests only the public homepage, /robots.txt, the sitemap (the first one listed in robots.txt, or /sitemap.xml), /llms.txt, and one request to http:// to check the HTTPS redirect, whose body is not downloaded. It never crawls deeper pages.
  • robots.txt is checked before every request, including each redirect hop (RFC 9309). If robots.txt disallows the homepage, the page is skipped and the domain is reported as partial.
  • At most one request per second per website, an honest User-Agent (HireWatchSiteProfiler), and size limits on every download.
  • DNS and TLS facts come from public DNS and a normal TLS handshake.
  • No personal data is collected. Page text, e-mail addresses and phone numbers are never output, and the mailbox part of DMARC report addresses is masked (***@domain). No WHOIS or registrant data is collected.

Limits and accuracy

  • Technology detection reads the homepage HTML, headers, cookies, script URLs, meta tags, DOM, DNS and the certificate. It does not run JavaScript in a browser, so tools that only appear after client-side scripts run can be missed. This keeps it fast and cheap.
  • DNS cannot list DKIM selectors, so only common selectors are checked. "Not found" therefore does not prove that DKIM is missing.
  • Sites behind aggressive bot protection may return 403. You still get DNS, e-mail, SSL and robots data, and the CDN/WAF is usually detected from the response headers.

Integrations and API

  • Schedules: re-check your domains weekly to catch SSL expiry, DMARC changes or a new platform.
  • No-code: Make, Zapier, n8n, Google Sheets, Slack, Airbyte and webhooks are available under Integrations, e.g. enrich new CRM leads with their tech stack.
  • Export: JSON, CSV, Excel, XML or HTML from the dataset, or through the API.

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("hirewatch/tech-stack-domain-profiler").call(run_input={"domains": ["stripe.com", "shopify.com"]})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["domain"], row["emailProvider"], row["technologyNames"])

cURL (runs the Actor and returns the rows in one request):

curl -X POST "https://api.apify.com/v2/acts/hirewatch~tech-stack-domain-profiler/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"domains": ["stripe.com", "shopify.com"]}'

Use with AI agents / MCP

This Actor is built to be called by AI agents (Grok Bot, Claude, ChatGPT, Cursor, LangChain and others) through the Apify MCP server or the Apify API.

  • Add only this tool: https://mcp.apify.com?tools=hirewatch/tech-stack-domain-profiler. You can also let your agent find it through search-actors.
  • Keep calls small so they finish fast. The MCP call-actor tool waits up to 45 seconds, and a run with 3 domains takes about 20 seconds, so send up to ~10 domains per call. For bigger lists, start the run and read the results when it finishes. Turn off checks you don't need (e.g. checkDkim: false) to speed things up, and cap spend with maxTotalChargeUsd in callOptions.
  • Read results with get-dataset-items using the run's datasetId. You get one flat row per domain with a status field (ok, partial, domain_not_found or invalid_input). A bad domain never fails the whole run, and domains that don't exist or can't be read are not charged.
  • Pay without an Apify account. The Actor uses pay-per-event pricing with limited permissions, so agents can pay per run with agentic payments (x402 / MPP prepaid tokens or Skyfire).

Minimal agent call:

{
"domains": ["stripe.com", "shopify.com"],
"checkDkim": false
}

FAQ

Is this a BuiltWith or Wappalyzer alternative? For live lookups, yes: it detects 3,500+ technologies from each site's homepage with MIT-licensed Wappalyzer fingerprints, and adds e-mail provider, SPF/DMARC/DKIM, SSL and llms.txt checks that those tools don't include. It does not have historical "who used this technology in 2019" data or lists of all sites using a technology.

How do I find which e-mail provider a company uses? Add its domain. emailProvider is read from MX records (Google Workspace, Microsoft 365, Zoho and others), and SPF reveals the mailbox behind security gateways such as Proofpoint or Mimecast.

How do I check SPF, DMARC and DKIM for many domains? Paste the list and keep E-mail provider & DNS checks on. The issues field lists problems in plain language, such as "No DMARC record" or "SPF needs 13 DNS lookups (limit 10)".

Does it work on any website? Any public domain. Sites behind heavy bot protection may block the homepage; you still get DNS, e-mail, SSL and robots data, reported as partial.

Do I need an API key or a BuiltWith account? No. You only need an Apify account, or an AI agent with agentic payments.

Attribution and licences

Technology fingerprints come from Wappalyzer (npm wappalyzer@6.10.54), © Elbert Alias / Wappalyzer, used under the MIT License. 6.10.54 is the last MIT-licensed release; later Wappalyzer versions and community forks are GPL-3.0 and are not used. The full licence text ships with the Actor in src/data/LICENSE-fingerprints.txt. This Actor is not affiliated with or endorsed by Wappalyzer or BuiltWith.

Questions or a missing technology, e-mail provider or check? Open an issue on the Actor's Issues tab.