Open-Source Wappalyzer Alternative: Bulk Tech Stack Detector avatar

Open-Source Wappalyzer Alternative: Bulk Tech Stack Detector

Pricing

from $2.00 / 1,000 website checkeds

Go to Apify Store
Open-Source Wappalyzer Alternative: Bulk Tech Stack Detector

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

fikri marhan

Maintained by Community

Actor 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 technologies column to CRM exports or Google Maps or LinkedIn company lists.

What you get

For each website:

  • domain, finalUrl (after redirects), statusCode, page title
  • technologies: name, version (when detectable), confidence, categories, vendor website, and whether it was implied
  • technologyNames: a single comma-separated string, handy for CSV and Excel
  • categories: technologies grouped by category, e.g. { "CMS": ["WordPress"], "Analytics": ["Google Analytics"] }
  • error if 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.

CodeMeaningWhat to do
INVALID_INPUTThe value isn't a valid URL or domain, or another input field is invalid.Fix the value.
DNS_NOT_FOUNDThe domain doesn't resolve.Check the spelling, or whether the domain still exists.
TIMEOUTThe site didn't respond within Timeout per site.Raise the timeout, or retry later.
CONNECTION_FAILED / TLS_ERROR / TOO_MANY_REDIRECTSThe site couldn't be reached properly.Check the site in a browser.
SITE_BLOCKEDHTTP 403/429/503: the site blocks automated requests. Header-based detections are still returned. No bypass is attempted.None.
HTTP_ERROR / EMPTY_RESPONSEThe 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_FAILEDNo site could be analysed, so the run is marked failed.See the error rows.
INTERNAL_ERRORAn 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.