Skip to content

Tech Stack Detector

Try for free

Detect the CMS, frameworks, analytics, CDN, ecommerce platform and 7,600 other technologies a website uses. One JSON row per URL with categories, versions and confidence.

🧩 Tech Stack Detector

Find out which CMS, JavaScript frameworks, analytics, CDN, ecommerce platform and hosting a website runs on. Paste a list of URLs or domains and get one clean JSON row per site, with categories, versions where the site shows them, and a confidence score. It uses plain HTTP and about 7,600 community fingerprints, so there is no browser, no login and no per-site setup.

✨ Why use Tech Stack Detector?

  • ⚡ Fast — 48 sites are checked in parallel. A 100-site list finishes in about a minute in our tests.
  • 🧠 7,600+ technologies — CMS, frameworks, analytics, tag managers, CDNs, payment tools, ecommerce platforms, security headers and more.
  • 🔢 Versions and confidence — WordPress 6.5, jQuery 3.7.1 and so on when the page exposes them, plus a 0–100 confidence score and the evidence that matched.
  • 💸 Cheap — $0.07 per scanned site, and you are not charged for sites that fail, are blocked or do not exist.
  • 🧹 Bulk friendly — duplicates, missing https://, trailing slashes and odd input are cleaned up for you. Bad rows are returned with a clear reason.
  • 🔁 Easy migration — the output fields (url, status_code, tech_count, technologies, categories, tech_names, category_list, final_url, scan_time_ms) match the common Wappalyzer-style actors.

🎯 Use cases

  • 🎯 Lead generation — find every Shopify, WooCommerce or HubSpot site in a prospect list.
  • 🕵️ Competitor research — see which analytics, CDN and frameworks competitors use.
  • 🔐 Security and patching — spot outdated CMS and library versions across many domains.
  • 📈 Market sizing — count how many sites in a niche run a given platform.
  • 🔄 Migration targets — build lists of sites on a platform you want to replace.

🚀 How to use

  1. Paste website URLs or bare domains into Websites to scan (one per line). For very long lists, put them in a text or CSV file and paste its link into URL list file.
  2. Optionally filter by category (for example CMS, Analytics, Ecommerce) or set a minimum confidence.
  3. Click Start and wait for the run to finish.
  4. Open the Output tab, or export the dataset as JSON, CSV, Excel or HTML. Use the One row per technology view for a flat table.

📥 Input

FieldWhat it does
urlsWebsites to scan. Bare domains get https:// added. Duplicates are scanned once.
urlsFileUrlLink to a text or CSV file with one URL or domain per line, for long lists.
categories_filterOnly return technologies in these categories. Not case sensitive.
min_confidenceDrop technologies below this score (0–100). Default 0.
include_confidenceAdd the confidence score to each technology. Default on.
include_versionsReport versions when visible. Default on.
dns_lookupsAlso read MX, TXT, NS and CNAME records (email provider, DNS host, verified SaaS tools). Default off.
timeout_secondsPer-request timeout, 3–60. Default 15.
proxyConfigurationDatacenter proxies by default. Residential or your own proxies are optional.
{
  "urls": ["https://stripe.com", "shopify.com", "wordpress.org"],
  "categories_filter": [],
  "include_confidence": true,
  "include_versions": true
}

📤 Output

FieldDescription
url, final_url, status_codeAddress scanned, address after redirects and the HTTP status.
scan_statusAlways ok. Sites that could not be scanned are not saved; they are listed in the status message and in the OUTPUT record (failedInputs, with the reason).
tech_countNumber of technologies returned.
technologiesList of name, category, categories, version, confidence, evidence, website.
categoriesTechnology names grouped by category.
tech_names, category_listComma separated summaries, handy for CSV.
scan_time_msTime spent on this site.

Real example (technology list trimmed):

{
  "url": "https://shopify.com/",
  "final_url": "https://www.shopify.com/",
  "status_code": 200,
  "scan_status": "ok",
  "tech_count": 12,
  "categories": {
    "CDN": ["Cloudflare"],
    "Ecommerce": ["Cart Functionality", "Shopify"],
    "Programming languages": ["Liquid", "Ruby"],
    "Security": ["HSTS"]
  },
  "technologies": [
    {
      "name": "Cloudflare",
      "category": "CDN",
      "categories": ["CDN"],
      "version": null,
      "evidence": "header: cf-cache-status",
      "website": "https://www.cloudflare.com",
      "confidence": 100
    }
  ],
  "tech_names": "Cart Functionality, Cloudflare, HSTS, HTTP/3, Liquid, Open Graph, Priority Hints, Ruby, Schema.org, Shopify, Tailwind CSS, Twitter Card",
  "category_list": "CDN, Ecommerce, Programming languages, Security",
  "scan_time_ms": 1850
}

💰 Pricing

You pay $0.07 per scanned site (one tech-detection event). Sites that cannot be reached, return an HTTP error, are blocked or are not valid URLs are free: they are not saved as rows and are listed under failedInputs in the OUTPUT record. Example: 1,000 working sites cost about $70, and 100 sites about $7. Platform usage (compute and proxy traffic) is small, usually well under $0.001 per site, and is billed separately at the normal rates.

❓ FAQ

Is it legal? It requests each site's public home page once, like a normal visitor, and reads the response. Respect the terms of the sites you scan.

Do I need a login or a proxy? No login. The actor routes requests through datacenter proxies by default. You can switch to residential or use your own.

How accurate is it? Detection is based on what the server sends: headers, cookies, HTML, script addresses, meta tags and inline script text. It does not run JavaScript, so technologies that only appear after the page runs, and very new or rare tools, can be missed. Matches from inline script text are scored lower.

Why is a version empty? Many sites hide versions. The field is null rather than guessed.

What happens to sites that fail? Sites that answer with an error such as 403 or 404, cannot be reached or are not valid URLs are not saved and not charged. The run's status message and the OUTPUT record (failedInputs) list each one with the reason.

Can I schedule it or call it by API? Yes, like any actor: schedules, webhooks, the API and integrations all work.

⚠️ Limits

  • Only the page you give is fetched (no crawling of other pages).
  • No JavaScript execution, so runtime-only globals and client-rendered technologies are not seen.
  • Sites that block datacenter addresses are listed as failed (HTTP 403 or similar); try residential proxies for those.
  • Run inputs larger than about 8 KB cannot be submitted directly; use URL list file for long lists.
  • Private, local and internal addresses are rejected.

Fingerprint data: community Wappalyzer technology definitions from the enthec/webappanalyzer project (GPL-3.0), plus a few extra rules written for this actor. Migration note: output fields follow the common Wappalyzer-style actors.

Related actors

G2
4.7/5
Excellent
Trustpilot

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.