Tech Stack Detector - Wappalyzer & BuiltWith Alternative avatar

Tech Stack Detector - Wappalyzer & BuiltWith Alternative

Pricing

Pay per event

Go to Apify Store
Tech Stack Detector - Wappalyzer & BuiltWith Alternative

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

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

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 fieldRead here as
startUrls (strings, {"url": ...} objects, requestsFromUrl)urls
domains, websites, targetUrls, startDomains, url (comma or line separated)urls
categories_filter, include_versions, timeout_secondscategoriesFilter, includeVersions, timeoutSecs
include_confidenceaccepted (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

FieldDescription
url, inputUrl, finalUrl, domain, statusCodeWebsite as analyzed, as sent, after redirects, host and HTTP status
technologyCount, technologyNamesHow many and which technologies
cms, ecommerce, analytics, tagManagers, cdn, hostingSummary columns, comma separated, ready for a spreadsheet
javascriptFrameworks, webFrameworks, webServers, programmingLanguagesSummary columns
paymentProcessors, liveChat, marketingAutomation, crm, emailProviders, advertisingSummary columns
wordpressVersion, wordpressTheme, wordpressPluginsWordPress details visible in the HTML
mxRecords, dnsVerificationsMail servers, and SaaS tools the domain is verified with
tlsIssuer, tlsExpiresAt, tlsDaysLeft, tlsValidTLS certificate on port 443
ipAddress, asn, asnOrganization, ipCountryNetwork that serves the site
technologiesOne object per technology: name, categories, version, confidence, detectedBy
matchedTechnologies, trancoRank, trancoListIdFind mode and Tranco runs
errorCode, error, scrapedAtFilled 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 BLOCKED with 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)

errorCodeMeaning
INVALID_URLNot a domain or an http(s) URL
DNS_NOT_FOUNDThe domain does not resolve (also tried with www.)
CONNECTION_FAILED, TIMEOUT, SSL_ERROR, TOO_MANY_REDIRECTSThe site could not be reached in a usable way
BLOCKEDAnti-bot challenge on every attempt; header and DNS technologies still returned
HTTP_ERRORThe site answered 4xx or 5xx
UNEXPECTED_ERRORAnything 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.