Website Tech Stack Detector: CMS, Ecommerce & Analytics
Pricing
from $3.00 / 1,000 website analyzeds
Website Tech Stack Detector: CMS, Ecommerce & Analytics
Find the technologies behind any list of websites: CMS (WordPress, Shopify, Wix, Squarespace...), frameworks, analytics, CDN, hosting, payment and email provider. Wappalyzer-style, 7,600+ fingerprints, fast, no browser. Pay only for websites where technologies were found.
Pricing
from $3.00 / 1,000 website analyzeds
Rating
0.0
(0)
Developer
Mogul Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Website Tech Stack Detector: CMS, Ecommerce, Analytics & Email Provider
Give it a list of websites and get the technologies each one runs on: CMS (WordPress, Shopify, Wix, Squarespace, Webflow, Drupal…), ecommerce platform, JavaScript frameworks (Next.js, React, Vue…), analytics and tag managers, CDN, hosting, payment providers, web server, programming language, security, marketing, live chat and cookie-consent tools. Versions are included when the site exposes them (e.g. WordPress 7.2, Gutenberg 24.2.0). From DNS it also finds the email provider (Google Workspace, Microsoft 365, Zoho…), email-sending services (SendGrid, Mailchimp, Amazon SES…) and DNS hosting.
It works like Wappalyzer, with 7,600+ open-source fingerprints, but uses fast HTTP requests instead of a browser, so it's quick and cheap. In our tests a typical website took about 1.4 seconds, with 20 websites analyzed in parallel.
You only pay for websites where technologies were found. 404s, timeouts, anti-bot pages, non-HTML responses, robots.txt-blocked sites and sites with nothing detected are free.
What you can use it for
- Lead generation: find every Shopify store, WordPress site or Wix site in a list, or prospects using a competitor's tool
- Sales intelligence: enrich a CRM with CMS, ecommerce platform, email provider and analytics
- Market research: technology adoption across an industry or a list of competitors
- Agencies: qualify prospects before a pitch (outdated CMS version, no analytics, no cookie banner)
- Feeding tech-stack data to AI agents (works via the Apify MCP server)
How it detects technologies
For each website it loads the homepage (and optionally up to 2 more pages such as shop, cart, blog or pricing) and checks:
- HTTP headers and cookies (including those set during redirects)
- HTML, meta tags (generator etc.), script URLs and inline JavaScript
- DOM selectors on the parsed page
- DNS: MX (email provider), TXT/SPF (email-sending services, domain-verified SaaS) and NS (DNS hosting)
Then it applies the fingerprint rules for implied technologies (e.g. WordPress → PHP and MySQL, Next.js → React), excludes and requires, and extracts versions.
Input example
{"websites": ["allbirds.com", "wordpress.org", "https://react.dev/"],"maxPagesPerSite": 1,"checkDns": true,"minConfidence": 50}
Output example (one row per website)
{"input": "react.dev","domain": "react.dev","url": "https://react.dev/","finalUrl": "https://react.dev/","status": 200,"title": "React","technologyCount": 14,"technologies": [{ "name": "Google Analytics", "version": "GA4", "categories": ["Analytics"], "confidence": 100, "website": "https://google.com/analytics", "detectedBy": ["scriptSrc", "scripts"] },{ "name": "Next.js", "version": null, "categories": ["JavaScript frameworks", "Web frameworks", "Web servers", "Static site generator"], "confidence": 100, "website": "https://nextjs.org", "detectedBy": ["scriptSrc", "html", "js"] },{ "name": "React", "version": null, "categories": ["JavaScript frameworks"], "confidence": 100, "website": "https://reactjs.org", "detectedBy": ["implied by Next.js"] }],"categories": {"cms": [], "ecommerce": [], "analytics": ["Google Analytics"], "tagManagers": ["Google Tag Manager"],"cdn": ["Cloudflare"], "frameworks": ["Next.js", "React"], "payment": [], "emailProvider": [],"hosting": ["Vercel", "Cloudflare DNS"], "webServers": ["Next.js"], "security": ["HSTS"]},"technologyNames": ["Algolia DocSearch", "Google Analytics GA4", "Next.js", "React", "HSTS", "Open Graph", "PWA", "RSS", "Webpack", "Algolia", "Cloudflare", "Google Tag Manager", "Vercel", "Cloudflare DNS"],"dns": { "mx": [], "spf": [], "ns": ["hattie.ns.cloudflare.com", "junade.ns.cloudflare.com"] },"pagesAnalyzed": ["https://react.dev/"],"redirectChain": [],"charged": true,"error": null,"errorCode": null,"durationMs": 564,"scrapedAt": "2026-10-22T19:09:57.598Z"}
categories always has these keys: cms, ecommerce, analytics, tagManagers, cdn, frameworks, jsLibraries, payment, emailProvider (from MX records), emailServices (sending services from SPF), hosting, webServers, programmingLanguages, databases, security, marketing, liveChat, cookieCompliance, fonts and domainVerifiedServices. The last one lists SaaS tools that only showed up as DNS TXT domain-verification records (e.g. Atlassian, Zoom, DocuSign). They are kept out of the other buckets because they describe the company, not the website.
Free rows have charged: false, errorCode and error. Codes are INVALID_URL, DNS_ERROR, TIMEOUT, HTTP_404 (and other HTTP codes), BLOCKED (anti-bot page), NOT_HTML, ROBOTS_DISALLOWED and NO_TECHNOLOGIES. Blocked and error pages still list whatever was visible, such as the CDN or WAF. The RUN_SUMMARY record in the key-value store has the run totals.
Pricing (pay per event)
You pay per website analyzed: the site loaded (HTTP 2xx HTML) and at least one technology was detected on the site itself. The price is per website, not per page, so maxPagesPerSite: 3 costs the same.
| Apify plan | Price per 1,000 websites |
|---|---|
| Free | $5.00 |
| Bronze (Starter) | $4.00 |
| Silver (Scale) | $3.50 |
| Gold (Business) | $3.00 |
Failed, blocked and no-technology websites are never charged, and neither are sites where only DNS records matched. Platform usage (compute, storage) is included; you don't pay it separately. Each run also has Apify's standard start fee of $0.00005 per GB of memory. Optional Apify datacenter proxy (or your own proxy URLs) is included in the price; residential proxy isn't supported. Set Max total charge on the run to cap your spend. The run stops cleanly when it's reached, without storing unpaid results.
Features
- 7,600+ technology fingerprints in 109 categories, with versions, confidence and implied technologies
- Tries
https://, thenwww., thenhttp://; follows redirects and records the redirect chain - Optional extra pages (shop, cart, checkout, blog, pricing, contact) to catch more tools
- DNS-based email provider and DNS hosting detection
- Polite by default: respects robots.txt, per-host delay, retries with backoff
- Refuses private/internal addresses
Limitations
- No JavaScript rendering. It sees the HTML, headers and scripts the server sends. Tools that are injected later by a tag manager, or only visible as runtime JavaScript objects, may be missed. JavaScript-global fingerprints are approximated from inline scripts.
- Fingerprints that need a real browser (DOM properties, CSS rules, XHR requests), probe requests and TLS-certificate fingerprints aren't used.
- Sites with strong bot protection (Cloudflare challenge, Akamai, Amazon) may return an anti-bot page. Those rows are free. Enabling Apify datacenter proxy sometimes helps.
- If the platform resolver returns no MX/TXT/NS records, DNS is looked up via Cloudflare DNS-over-HTTPS (
cloudflare-dns.com). Only the domain name is sent. - Detection is only as good as the open fingerprint database; a few signals (e.g. generic "Cart Functionality") are heuristic.
Fingerprint data and license
Technology fingerprints and categories come from enthec/webappanalyzer (the open-source continuation of Wappalyzer's fingerprints), licensed GPL-3.0. The bundled snapshot is commit d91f7e510e93457041bea874e8a9ffb011e3e4fe (Oct 19, 2026); its license is in fingerprints/LICENSE. fingerprints/extra.json adds a few fingerprints of our own: Next.js App Router markers, MX/SPF patterns for common email providers and sending services, a stricter Apple iCloud Mail rule, and a Wix exclusion rule. This Actor's code is licensed GPL-3.0-or-later.
Responsible use
Only analyze sites you are allowed to access. robots.txt is respected by default, and each site gets 1–3 requests plus a robots.txt request.