Open-Source Wappalyzer Alternative: Bulk Tech Stack Detector
Pricing
from $2.00 / 1,000 website checkeds
Open-Source Wappalyzer Alternative: Bulk Tech Stack Detector
Check what technology any website uses (CMS, ecommerce, analytics, frameworks, CDN, hosting and 7,600+ more) from the homepage and HTTP headers. An open-source (GPL-3.0) Wappalyzer and BuiltWith alternative for bulk lists.
Pricing
from $2.00 / 1,000 website checkeds
Rating
0.0
(0)
Developer
fikri marhan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Share
Find out what any website is built with. Paste a list of domains and get each site's CMS, ecommerce platform, analytics and marketing tags, JavaScript frameworks, CDN, hosting, payment providers, live chat and more. It checks against 7,600+ technology fingerprints and returns versions where they can be detected.
Built for bulk lists: it makes one lightweight request per site (homepage HTML + HTTP headers), with no browser and no proxy. That keeps it fast and cheap.
How to check what technology a website uses, in bulk
Paste a list of domains (hundreds or thousands), run it, and download a table with one row per site, or one row per site and technology. It identifies the CMS, ecommerce platform, analytics, tag managers, JavaScript frameworks, CDN, web server, payment and chat tools, with version numbers where the page exposes them.
Wappalyzer and BuiltWith alternative: what's different
- Open source: GPL-3.0-or-later code, and an open fingerprint database (webappanalyzer) that you can inspect.
- Bulk and cheap: $2 per 1,000 sites, with no subscription. Failed sites are free.
- Honest limits: it reads the homepage HTML and headers only. It doesn't run JavaScript or crawl history, so it won't show past technologies or spending data the way BuiltWith does.
Use cases
- Lead generation and sales prospecting: find every Shopify, WooCommerce, HubSpot or Salesforce user in your lead list.
- Agency and SaaS targeting: segment prospects by CMS, analytics stack or competing tools.
- Competitor and market research: see what your competitors use and how technology adoption is spread.
- Security and IT inventory: spot outdated CMS or framework versions across your own domains.
- Enrichment: add a
technologiescolumn to CRM exports or Google Maps or LinkedIn company lists.
What you get
For each website:
domain,finalUrl(after redirects),statusCode, pagetitletechnologies: name, version (when detectable), confidence, categories, vendor website, and whether it was impliedtechnologyNames: a single comma-separated string, handy for CSV and Excelcategories: technologies grouped by category, e.g.{ "CMS": ["WordPress"], "Analytics": ["Google Analytics"] }errorif the site was unreachable or blocked automated requests
Use the "One row per technology" view to export one row per domain × technology.
Input example
{ "urls": ["shopify.com", "wordpress.org", "https://www.mudah.my"], "categoriesFilter": ["CMS", "Ecommerce", "Analytics"] }
Output example
{"domain": "wordpress.org", "statusCode": 200,"technologyNames": "Google Tag Manager, MySQL, Nginx, PHP, WordPress 7.2, ...","technologies": [{ "name": "WordPress", "version": "7.2", "confidence": 100, "categories": ["CMS", "Blogs"], "website": "https://wordpress.org", "implied": false }],"categories": { "CMS": ["WordPress"], "Web servers": ["Nginx"] }}
Pricing
Pay per event, with no extra platform-usage charges: $2 per 1,000 sites (site, $0.002 per website result). Sites that can't be analysed (unreachable, blocked, invalid URL) still get a result row with the reason, and those error rows are free. If you set a maximum cost per run, the actor stops cleanly once the limit is reached.
How it works and its limits
It looks at the response headers, cookies, meta tags, script URLs, HTML patterns and DOM selectors on the page you give it. It doesn't run JavaScript, so tools that are detectable only at runtime (some JS-only tags) may be missed. Sites that block automated requests return an error, and only header-based detection is possible for them. The actor never tries to bypass such protections.
Troubleshooting
A failing site never stops the run. It gets a row with isError: true, an errorCode, a plain-English errorMessage and the inputUrl. The Errors view shows these columns. Error rows are not charged. Counts per code are in the run's RUN_SUMMARY key-value record.
| Code | Meaning | What to do |
|---|---|---|
INVALID_INPUT | The value isn't a valid URL or domain, or another input field is invalid. | Fix the value. |
DNS_NOT_FOUND | The domain doesn't resolve. | Check the spelling, or whether the domain still exists. |
TIMEOUT | The site didn't respond within Timeout per site. | Raise the timeout, or retry later. |
CONNECTION_FAILED / TLS_ERROR / TOO_MANY_REDIRECTS | The site couldn't be reached properly. | Check the site in a browser. |
SITE_BLOCKED | HTTP 403/429/503: the site blocks automated requests. Header-based detections are still returned. No bypass is attempted. | None. |
HTTP_ERROR / EMPTY_RESPONSE | The site returned an error page or nothing. | Try the exact homepage URL. |
NOT_HTML (warning) | The URL isn't an HTML page. | Use the site's homepage. |
MAX_CHARGE_REACHED (warning) | Your maximum cost per run was reached; the remaining sites were skipped. | Raise the limit. |
ALL_SITES_FAILED | No site could be analysed, so the run is marked failed. | See the error rows. |
INTERNAL_ERROR | An unexpected bug. | Please report it (see below). |
Found a bug or a wrong result? Open an Issue on this Actor's page in Apify Store (the Issues tab) and describe what you expected. Please paste the run URL into the issue: Apify then shares that run (log, input, dataset and RUN_SUMMARY) with the developer automatically, and only that run. Alternatively, enable Settings → Login & Privacy → Share run data with developers for this Actor. The Actor sends no telemetry anywhere; everything stays in your own run storage.
Data and license
This actor is free software, licensed under the GNU General Public License v3.0 or later (GPL-3.0-or-later). The complete source code, including the LICENSE (GPL-3.0 text) and NOTICE.md files, is published with the Actor (see its Source tab), and it's also available on request through the Issues tab.
Technology fingerprints come from the open-source webappanalyzer project (© its contributors), a community continuation of the open-source Wappalyzer fingerprints, licensed GPL-3.0. They are included unmodified with attribution; the snapshot commit is in data/SOURCE_COMMIT. Wappalyzer and BuiltWith are trademarks of their owners; this actor is not affiliated with or endorsed by them.