Website Tech Stack Detector API + DMARC, SPF, MX & SSL Checker
Pricing
from $1.60 / 1,000 domains
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
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
- Click Try for free (or Start) on this page. Apify's free plan includes monthly credit, so a first test costs nothing.
- Paste your domains or URLs into Domains, one per line (a CSV column of websites works).
- Leave every check on, or turn off the ones you don't need to go faster.
- Click Start. About 3 domains take 20 seconds; 1,000 domains take roughly 10–15 minutes with the default 10 in parallel.
- Open the Technologies or E-mail & DNS view, and download CSV, Excel or JSON.
Input
| Field | What it does |
|---|---|
domains | Domains 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, checkHttpsRedirect | Turn individual checks on or off (all on by default). |
dkimSelectors | Extra DKIM selectors to test. |
minTechConfidence | Hide weaker technology matches (0–100). |
maxConcurrency | Domains 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.
| Domains | Free plan | Gold+ plans | Typical use |
|---|---|---|---|
| 100 | $0.20 | $0.16 | a prospect list or client audit |
| 1,000 | $2.00 | $1.60 | a lead list for one campaign |
| 10,000 | $20.00 | $16.00 | market-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 tohttp://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 ApifyClientclient = 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 throughsearch-actors. - Keep calls small so they finish fast. The MCP
call-actortool 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 withmaxTotalChargeUsdincallOptions. - Read results with
get-dataset-itemsusing the run'sdatasetId. You get one flat row per domain with astatusfield (ok,partial,domain_not_foundorinvalid_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.
Related
- Workday, Greenhouse, Lever, Ashby & Oracle Jobs Scraper: open jobs, new/closed tracking and hiring signals from company career sites on five platforms.
- Workday Jobs Scraper: every job from Workday career sites, including sites with more than 2,000 jobs.
- Greenhouse Jobs Scraper: Greenhouse job boards by company name, with salary ranges.
- Lever Jobs Scraper and Ashby Jobs Scraper: Lever and Ashby job boards by company name, with salaries.
Questions or a missing technology, e-mail provider or check? Open an issue on the Actor's Issues tab.