Tech Stack Detector - Wappalyzer & BuiltWith Alternative avatar

Tech Stack Detector - Wappalyzer & BuiltWith Alternative

Pricing

from $2.40 / 1,000 analysed websites

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

Tech Stack Detector - Wappalyzer & BuiltWith Alternative

Detect the CMS, e-commerce platform, analytics, tag managers, frameworks, CDN and thousands of other technologies on any list of websites using open-source fingerprints, with category, version and confidence for each. From $3 per 1,000 websites, platform usage included.

Pricing

from $2.40 / 1,000 analysed websites

Rating

0.0

(0)

Developer

Rosario Vitale

Rosario Vitale

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

What does Tech Stack Detector do?

Tech Stack Detector finds the technologies behind any list of websites, like Wappalyzer or BuiltWith but in bulk and through an API. Paste URLs or bare domains and get one row per website with the CMS, e-commerce platform, analytics and tag managers, JavaScript frameworks, web server, CDN, payment processors, marketing tools, email provider and more. Each technology comes with its categories, detected version and a confidence score.

Detection uses the open-source Wappalyzer fingerprint set (about 3,600 technologies in 108 categories, last MIT-licensed release). It matches HTTP headers, cookies, meta tags, script URLs, inline scripts and styles, HTML and DOM patterns, plus public DNS records (MX, TXT, NS, CNAME, SOA). Each website gets a single, lightweight HTTP request. No browser, no login, no proxies to manage.

Who is it for?

  • Sales and lead generation teams who want to qualify or segment accounts by technology, e.g. every Shopify store or every company using HubSpot in a prospect list.
  • Agencies and freelancers looking for migration or redesign leads, e.g. sites still on an old WordPress or Magento version.
  • SEO and marketing teams auditing analytics, tag managers, CDNs and performance tools across client or competitor sites.
  • Developers and data teams who need a Wappalyzer-style API for enrichment pipelines, CRMs or AI agents.
  • Market researchers measuring technology adoption across thousands of domains.

Output fields

FieldDescription
urlNormalized website URL that was analysed (bare domains get https://).
finalUrlURL after redirects.
statusCOMPLETE, PARTIAL, VALID_EMPTY, INVALID_INPUT or UPSTREAM_FAILED (see below).
httpStatusHTTP status code of the final response.
technologiesList of {name, slug, categories, version, confidence, website, detectedBy}.
technologyNamesTechnology names only, handy for CSV/Excel filters.
categoriesSummary: category name to technologies, e.g. {"Ecommerce": ["Shopify"]}.
categoryNamesCategory names found on the website.
technologyCountNumber of detected technologies.
headersTechnology-relevant response headers (server, x-powered-by, via, x-cache, content-type...).
pageTitleTitle of the analysed page.
domain, redirectCount, htmlTruncated, responseTimeMs, error, analyzedAtDiagnostics.

Row status values:

  • COMPLETE: the page loaded and at least one technology was detected. Charged.
  • PARTIAL: technologies were detected but part of the evidence was missing, e.g. the HTML was larger than the size limit, the response was not HTML, or a redirect was not followed by choice. Charged.
  • VALID_EMPTY: the page loaded but no known fingerprint matched. Free.
  • INVALID_INPUT: the entry is not a public http(s) URL or domain. Free.
  • UPSTREAM_FAILED: timeout, DNS error, too many redirects or an HTTP 4xx/5xx answer, for example a bot wall. Header and cookie fingerprints are still listed when available. Free.

Pricing at a glance

Price per 1,000 analysed websites
This Actor$3.00
Median of comparable Apify Store tech-stack Actors with a per-result price (October 2026)$5.25

Cost example: you upload 1,000 domains. 850 return technologies (COMPLETE or PARTIAL), 100 have no detectable technology (VALID_EMPTY) and 50 are offline (UPSTREAM_FAILED). You pay 850 × $0.003 = $2.55, plus the run start fee of $0.0001 per GB of run memory. Empty, failed and invalid rows cost nothing.

Subscriber discounts: on a paid Apify plan you pay less per website: Bronze −10%, Silver −15%, Gold and higher −20% ($2.40 per 1,000 websites on Gold).

Apify platform usage (compute, storage, data transfer) is included. You pay only the per-website price plus the small start fee.

Use the run's maximum charge setting to cap spending. The Actor stops cleanly when the limit is reached.

How to use

  1. Open the Actor and paste your websites into Websites (URLs or domains), one per line. example.com, www.example.com and https://example.com/shop all work.
  2. Optionally change Parallel websites, Request timeout, Follow redirects, Check DNS records or Minimum confidence.
  3. Click Start. The three prefilled websites finish in a few seconds.
  4. Open the Output tab to see the results table, or export as JSON, CSV, Excel or HTML. Filter status = COMPLETE and technologyNames to build lead lists.

Input example

{
"urls": ["wordpress.org", "https://www.allbirds.com/", "https://apify.com/"],
"maxConcurrency": 5,
"requestTimeoutSecs": 15,
"followRedirects": true,
"includeDnsRecords": true,
"minConfidence": 0
}

Output example

{
"recordType": "site",
"url": "https://wordpress.org/",
"finalUrl": "https://wordpress.org/",
"domain": "wordpress.org",
"status": "COMPLETE",
"httpStatus": 200,
"technologyCount": 12,
"technologies": [
{
"name": "WordPress",
"slug": "wordpress",
"categories": ["CMS", "Blogs"],
"version": "7.2",
"confidence": 100,
"website": "https://wordpress.org",
"detectedBy": ["headers", "html", "meta", "scriptSrc"]
},
{
"name": "Nginx",
"slug": "nginx",
"categories": ["Web servers", "Reverse proxies"],
"version": null,
"confidence": 100,
"website": "http://nginx.org/en",
"detectedBy": ["headers"]
}
],
"technologyNames": ["WordPress", "MySQL", "PHP", "C", "Gutenberg", "Nginx", "Google Tag Manager", "..."],
"categories": {
"CMS": ["WordPress"],
"Tag managers": ["Google Tag Manager"],
"Web servers": ["Nginx"]
},
"headers": { "server": "nginx", "content-type": "text/html; charset=UTF-8" },
"pageTitle": "Blog Tool, Publishing Platform, and CMS – WordPress.org",
"responseTimeMs": 1402,
"error": null
}

detectedBy shows which evidence matched: headers, cookies, meta, scriptSrc, scripts, html, dom, css, text, url, dns, or implied when a technology is implied by another one (for example WordPress implies PHP and MySQL).

API

One HTTP call runs the Actor and returns the results directly:

curl -X POST "https://api.apify.com/v2/acts/zenomastro~tech-stack-detector/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"urls": ["wordpress.org", "https://www.allbirds.com/"]}'

The same works from the Apify Python/JavaScript clients, Make, n8n, Zapier, Clay-style enrichment flows, LangChain and LlamaIndex integrations, or on a schedule.

Use with AI agents (MCP)

Claude, ChatGPT, Cursor, VS Code, n8n AI agents and any MCP client can run this Actor through the official Apify MCP server. Add https://mcp.apify.com?tools=zenomastro/tech-stack-detector to your client, then ask for example:

"Which of these 50 domains run Shopify, and which analytics and payment tools do they use?"

The agent fills the input from the field descriptions and receives clean JSON it can reason over.

Why use this Actor?

Detect the CMS, e-commerce platform, analytics, tag managers, frameworks, CDN and thousands of other technologies on any list of websites using open-source fingerprints, with category, version and confidence for each. From $3 per 1,000 websites, platform usage included.

Features

  • Websites (URLs or domains) — Websites to analyse, one per line. Full URLs (https://www.example.com/shop) or bare domains (example.com) both work; bare domains are tried over HTTPS first, then HTTP. Duplicates are skipped.
  • Parallel websites — How many different websites are analysed at the same time. Each website receives only one page request (plus redirects), so this stays polite even at the maximum.
  • Request timeout (seconds) — Maximum seconds to wait for each website response before it is reported as UPSTREAM_FAILED (not charged).
  • Follow redirects — Follow HTTP redirects (e.g. example.com to www.example.com) and analyse the final page. When off, only the first response headers and cookies are analysed.
  • Check DNS records — Also match public DNS records (MX, TXT, NS, CNAME, SOA) to detect email providers, DNS hosts and verification-based services such as Google Workspace or Microsoft 365.
  • Minimum confidence (%) — Only report technologies whose fingerprint confidence is at least this value (0-100). 0 keeps every detection; 50 removes weak single-signal guesses.
  • Maximum websites per run — Safety cap on unique websites analysed in one run, e.g. 1000. Use it together with the run's maximum charge to keep cost predictable.
  • Maximum redirect hops — Maximum number of redirects followed per website before it is reported as UPSTREAM_FAILED.
  • Retries — How many times a website is retried after a network error, timeout or HTTP 429/502/503/504 (with a short backoff).
  • Maximum HTML size (KB) — Only the first part of very large pages is downloaded and analysed. Rows whose HTML was cut are marked PARTIAL.
  • User agent — HTTP User-Agent header sent to websites. Leave empty to use the default browser-compatible user agent that identifies this Actor.

Use cases

  • Sales lead qualification by technology.
  • Competitor tech stack research.
  • Agency prospecting and migration targeting.
  • Website and marketing-stack audits.

Example input

{
"urls": [
"https://wordpress.org/",
"https://www.allbirds.com/",
"https://apify.com/"
],
"maxConcurrency": 5,
"requestTimeoutSecs": 15,
"followRedirects": true,
"includeDnsRecords": true,
"minConfidence": 0
}

Pricing & cost control

The primary event costs $0.003000 per analysed website (about $3.00 per 1,000 successful primary events). Only successful primary events are intentionally billed by this Actor; summary/status rows add context without adding primary-event charges.

Use the bounded input limits and filters to keep both event charges and platform usage predictable.

FAQ

What is this Actor for?
It is designed for sales lead qualification by technology, competitor tech stack research, agency prospecting and migration targeting.

Can I run it on a schedule?
Yes. You can schedule Actor runs on Apify and send the resulting dataset into automations, webhooks, storage, or downstream APIs.

How do I control cost and run size?
Use the input limits and filters shown in the Actor input form. The Actor applies bounded defaults and hard caps so large jobs remain predictable.

More questions

Does it run JavaScript like a browser?
No. The Actor reads the server response (headers, cookies, HTML, scripts, DOM and DNS), which is fast and cheap and finds the large majority of CMS, e-commerce, analytics, tag manager, CDN and server technologies. Technologies that only appear after client-side JavaScript runs, and fingerprints based on JavaScript globals, are not evaluated.

How accurate is the confidence score?
Each fingerprint carries a weight from the open-source dataset; matches are added up to 100. Most detections are 100. Use Minimum confidence (e.g. 50) to drop weak single-signal guesses.

Why is a website UPSTREAM_FAILED?
The site timed out, does not resolve, or answered with an error such as 403 from a bot-protection wall. These rows are never charged. Retry later or with a longer timeout.

Is this the Wappalyzer or BuiltWith API?
No. It is an independent alternative that uses the last MIT-licensed Wappalyzer open-source fingerprints. It is not affiliated with or endorsed by Wappalyzer or BuiltWith.

Fingerprint data and license

Technology fingerprints and the matching engine are vendored unmodified from the npm package wappalyzer@6.10.54, the last release published under the MIT License (later releases moved to GPL-3.0 and are not used). The MIT license notice and provenance details ship with the Actor in vendor/wappalyzer/LICENSE and vendor/wappalyzer/NOTICE.md.

Responsible use

The Actor sends a single page request per website, with polite concurrency, timeouts and an identifying user agent. It reads only publicly served technical signals, never logs in, and does not collect personal data. Private, local and reserved network addresses are blocked. Follow the terms of the websites you analyse.