Tech Stack Detector - Wappalyzer & BuiltWith Alternative
Pricing
Pay per event
Tech Stack Detector - Wappalyzer & BuiltWith Alternative
Tech stack lookup API in bulk: CMS, ecommerce, analytics, CDN, frameworks, email provider, TLS and hosting of any website, or find websites using Shopify, WordPress or any technology. Wappalyzer & BuiltWith alternative, 7,600+ fingerprints. $3 per 1,000 sites, offline sites free.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Tech Stack Detector: Wappalyzer & BuiltWith Alternative, Tech Stack Lookup API
Paste a list of websites and get the technology stack of each one as JSON, CSV or Excel: CMS, ecommerce platform, analytics, tag manager, CDN, hosting, JavaScript framework, web server, payment processor, live chat, marketing automation, CRM and the email provider behind the domain, with versions and a confidence score. Or turn it around: name a technology (Shopify, WordPress, Stripe, HubSpot) and get the websites that use it, scanned live from the Tranco top 1 million or from your own domain list.
It is a pay-per-use tech stack lookup API for sales and lead generation teams, agencies, market researchers and AI agents that need technographic data in bulk without a subscription.
What it fixes
- Browser extensions check one site at a time. This runs thousands in one job from a spreadsheet, a CRM export or an API call.
- The email provider and SaaS tools never show on the home page. They are in the domain's DNS (MX, SPF, verification records), which this Actor reads alongside the HTML.
- "Sites using X" lists usually need a plan with quotas. Find mode scans for free and charges only per website found.
- Re-checking a list to catch migrations. The change monitor reports only websites whose stack moved since the last run.
At a glance
- Detect mode: US$ 3.00 per 1,000 websites analyzed (US$ 2.30 on Gold and above), no start fee
- Find mode: US$ 10 per 1,000 websites found; the scan itself is free
- Technologies recognized: 7,600+ in 109 categories, with versions and confidence
- Also included: email provider (MX, SPF), SaaS verification records, TLS issuer and expiry, IP and ASN, WordPress theme and plugins
- Offline, blocked or invalid websites: returned with an
errorCode, not charged
Switching from another tech stack actor? Your existing input works
| Their field | Read here as |
|---|---|
startUrls (strings, {"url": ...} objects, requestsFromUrl) | urls |
domains, websites, targetUrls, startDomains, url (comma or line separated) | urls |
categories_filter, include_versions, timeout_seconds | categoriesFilter, includeVersions, timeoutSecs |
include_confidence | accepted (confidence is on every technology by default) |
When a snake_case option is present, the snake_case output fields (status_code, final_url, tech_count, tech_names, scan_time_ms) are added automatically, so the integration downstream keeps working.
Input examples
Detect mode:
{ "urls": ["wordpress.org", "www.shopify.com", "github.com"] }
Find mode, Shopify stores among Tranco ranks 200,001 to 202,000:
{ "mode": "find", "technologies": ["Shopify"], "trancoStartRank": 200001, "trancoTop": 2000 }
Change monitor for a scheduled task:
{ "urls": ["prospect-one.com", "prospect-two.com"], "onlyChanged": true }
Output example
A real row from a test run of 2026-09-30, with the lists trimmed:
{"url": "https://costco.com/","finalUrl": "https://www.costco.com/","domain": "costco.com","statusCode": 200,"title": "Welcome to Costco Wholesale","technologyCount": 15,"technologyNames": ["Akamai", "Azure Edge Network", "Bazaarvoice Reviews", "Contentstack", "Emotion", "Material UI", "Proofpoint", "React"],"cms": "Contentstack","cdn": "Akamai","javascriptFrameworks": "Emotion, React","emailProviders": "Proofpoint","mxRecords": ["mx0a-001f9d01.pphosted.com", "mx0b-001f9d01.pphosted.com"],"tlsIssuer": "Certainly","tlsExpiresAt": "2026-10-22T20:47:30+00:00","tlsDaysLeft": 21,"ipAddress": "151.101.195.52","asnOrganization": "Fastly, Inc.","technologies": [{ "name": "Contentstack", "categories": ["CMS"], "version": null, "confidence": 100, "detectedBy": ["scripts"] },{ "name": "React", "categories": ["JavaScript frameworks"], "version": null, "confidence": 100, "detectedBy": ["implied by Material UI"] }],"dnsVerifications": ["Adobe", "Atlassian Cloud", "DocuSign", "Microsoft 365", "OneTrust"],"errorCode": null,"scrapedAt": "2026-09-30T23:20:55.498991+00:00"}
Find mode result of 2026-09-30: scanning Tranco ranks 200,001 to 202,000 for Shopify took 6 minutes and returned 37 stores out of 2,000 domains (1.9%); 22 of them also use Klaviyo. Each Find row also has matchedTechnologies (with version, confidence and detectedBy), trancoRank and trancoListId.
With compareWithPreviousRun or onlyChanged, each row also carries:
{ "stackChanged": true, "technologiesAdded": ["Shopify", "Klaviyo"], "technologiesRemoved": ["Magento", "Mailchimp"],"previousCheckedAt": "2026-10-03T08:00:12+00:00", "firstSeenAt": "2026-09-20T08:00:09+00:00" }
Main output fields
| Field | Description |
|---|---|
url, inputUrl, finalUrl, domain, statusCode | Website as analyzed, as sent, after redirects, host and HTTP status |
technologyCount, technologyNames | How many and which technologies |
cms, ecommerce, analytics, tagManagers, cdn, hosting | Summary columns, comma separated, ready for a spreadsheet |
javascriptFrameworks, webFrameworks, webServers, programmingLanguages | Summary columns |
paymentProcessors, liveChat, marketingAutomation, crm, emailProviders, advertising | Summary columns |
wordpressVersion, wordpressTheme, wordpressPlugins | WordPress details visible in the HTML |
mxRecords, dnsVerifications | Mail servers, and SaaS tools the domain is verified with |
tlsIssuer, tlsExpiresAt, tlsDaysLeft, tlsValid | TLS certificate on port 443 |
ipAddress, asn, asnOrganization, ipCountry | Network that serves the site |
technologies | One object per technology: name, categories, version, confidence, detectedBy |
matchedTechnologies, trancoRank, trancoListId | Find mode and Tranco runs |
errorCode, error, scrapedAt | Filled only when the site could not be analyzed; time of the check |
detectedBy says why a technology was reported: headers, cookies, meta, scriptSrc, html, dom, dns:MX, dns:TXT and so on, or implied by WordPress.
What it reads
HTTP headers, cookies, meta tags, script URLs, inline scripts, HTML and DOM selectors, WordPress folders, DNS (MX, SPF, NS, SOA, CNAME, TXT verification records), the TLS certificate and the IP's ASN. The page is fetched over plain HTTP, up to 2.5 MB of HTML, without a browser, which keeps it fast and cheap. Fingerprints come from the open source webappanalyzer rules (GPL-3.0), plus DNS rules written for this Actor.
Limitations
- JavaScript is not executed. A widget injected only by a tag manager after load can be missed. Server side, HTML and DNS signals cover most CMS, ecommerce, framework, CDN, analytics and email detections.
- One page per website: the home page, unless you give a deeper URL.
- Anti-bot protection: a few large sites answer with a challenge. In Detect mode they come back
BLOCKEDwith the header and DNS detections, free. In Find mode they are skipped. - Tranco is a popularity ranking. The top ranks are big brands and infrastructure domains; for lists of stores, scan deeper ranks or filter by TLD.
- Hosting behind a CDN shows the CDN's network, not the origin server.
- No history before your first run. Schedule the change monitor to build your own.
Error codes (never charged)
| errorCode | Meaning |
|---|---|
INVALID_URL | Not a domain or an http(s) URL |
DNS_NOT_FOUND | The domain does not resolve (also tried with www.) |
CONNECTION_FAILED, TIMEOUT, SSL_ERROR, TOO_MANY_REDIRECTS | The site could not be reached in a usable way |
BLOCKED | Anti-bot challenge on every attempt; header and DNS technologies still returned |
HTTP_ERROR | The site answered 4xx or 5xx |
UNEXPECTED_ERROR | Anything else; open an issue with the website |
In Detect mode a run fails only when no website at all could be analyzed. In Find mode error rows are not written.
FAQ
How do I find all websites that use Shopify? Choose Find mode, type Shopify, set how many Tranco domains to scan (optionally a TLD such as de) and start. Only Shopify sites are returned and charged. For a niche list, paste those domains in Websites instead.
How many websites per run? No fixed limit. Detect runs of 500 sites take a few minutes; Find mode scans about 250 to 350 domains per minute.
Does it detect the email provider? Yes, from MX and SPF: Google Workspace, Microsoft 365, Zoho Mail and others, plus gateways (Proofpoint, Mimecast) and senders (SendGrid, Amazon SES, Mailchimp).
Does it include historical data? No. It reports the live stack. Schedule runs with the change monitor to keep your own history.
Can I use it from an AI agent or n8n? Yes, through the Apify MCP server (https://mcp.apify.com) or the Apify app in n8n, Make and Zapier.
Why does a site show Cloudflare and nothing else? It probably answered with a challenge. Check errorCode: BLOCKED rows are not charged.
This Actor reads only public pages, certificates and DNS records. Domain rankings come from the Tranco list (tranco-list.eu); ASN data from the public Team Cymru service. Not affiliated with Wappalyzer, BuiltWith or Tranco.
Changelog
- 2026-10-04: change monitor (
compareWithPreviousRun,onlyChanged). - 2026-09-30: Find mode, WordPress theme and plugins, MX records, TLS certificate, IP and ASN.
- 2026-09-15: first version.