Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Website Tech Stack Detector — CMS, Framework & BuiltWith-Style Technology Lookup (No API)

Apify Actor No API key required Pay per result Export

Find out what any website is built with — in bulk. Drop in a list of domains and get back the CMS, ecommerce platform, JavaScript framework, analytics, marketing/CRM tools, payment widgets, CDN, hosting and web server behind each one. This is a fast, BuiltWith-style and Wappalyzer-style technology lookup and CMS detector built for competitive intelligence, lead generation and market research. Domains in → tech stack out, as clean structured JSON, CSV or Excel.

No browser, no API key, no monthly subscription. The detector reads each site's publicly served headers, cookies and HTML, matches the signals against a large library of technology fingerprints, and returns a flat technology list plus a category-grouped breakdown for every domain. Point it at four sites or four thousand — you get one tidy row per domain, ready to filter, pivot and push straight into your CRM, spreadsheet or data warehouse. Whether you want to build a list of every Shopify + Klaviyo store in a market, map which WordPress, Magento or HubSpot sites your competitors' customers run, or measure technology adoption across an entire industry, this Actor turns a raw domain list into an actionable tech-stack dataset.


What you get

For every domain you submit, the Actor returns a single structured row:

  • Primary CMS (cms) — the main content management system detected, e.g. WordPress, Shopify, Wix, Webflow, Drupal.
  • Primary ecommerce platform (ecommerce) — the storefront powering the site, e.g. Shopify, WooCommerce, Magento, BigCommerce.
  • Web server & platform signals (server, generator, poweredBy) — the Server header, the generator meta / X-Generator header (often exposing the exact CMS and version), and the X-Powered-By header.
  • Flat technology list (technologies) — every technology detected on the page in one array, ready for a simple "contains X" filter.
  • Category-grouped breakdown (byCategory) — the same detections organised into buckets: CMS, Ecommerce, Frameworks, Analytics, Marketing, Payments, CDN/Hosting and Server.
  • Technology count (technologyCount) — how many technologies were detected, great for quickly spotting heavy vs. lightweight stacks.
  • Page context (statusCode, title, finalUrl) — the final HTTP status of the homepage, the <title> text, and the URL after redirects — so you know the fingerprint came from a live, resolved page.

Everything is returned as structured data you can sort, filter and export — no scraping code to maintain on your side.

What it detects

The Actor recognises technologies across the whole modern web stack. A selection of what it identifies:

Category Examples
CMS WordPress, Shopify, Wix, Squarespace, Webflow, Framer, Drupal, Joomla, Ghost, HubSpot CMS, Contentful, Sitecore
Ecommerce Shopify, WooCommerce, Magento, BigCommerce, PrestaShop, Salesforce Commerce, Ecwid
JS frameworks Next.js, Nuxt, React, Vue, Angular, Svelte, Gatsby, Astro, jQuery
Analytics Google Analytics, Google Tag Manager, Meta Pixel, Hotjar, Segment, Mixpanel, Plausible, Matomo, Amplitude
Marketing / CRM HubSpot, Mailchimp, Klaviyo, Intercom, Drift, Zendesk, Tawk.to, Crisp
Payments Stripe, PayPal, Klarna
CDN / Hosting Cloudflare, Fastly, Akamai, Vercel, Netlify, CloudFront, GitHub Pages, S3
Web server Nginx, Apache, IIS, LiteSpeed, OpenResty, Caddy

The list keeps growing — the categories above map directly onto the byCategory object in every result, so you always know which bucket a detection landed in.

Use cases

  • B2B prospecting. Build target lists by technology. Fingerprint a domain list and keep only the matches you care about — "all Shopify + Klaviyo stores", "Magento merchants", "sites on HubSpot", "WooCommerce shops". A ready-made source of qualified accounts, segmented by the exact stack they run.
  • Competitive intelligence. See what stack competitors — and their customers — actually run. Detect the CMS, ecommerce platform, analytics and marketing tools behind any set of sites, and track how those choices differ across a market.
  • Agencies & SaaS sales. Find sites that use, or crucially miss, a specific tool you replace, integrate with or migrate. If you sell a Klaviyo alternative, a headless CMS or a faster host, the tech stack tells you exactly who to pitch.
  • Market research. Measure technology adoption across an industry, niche or country. Fingerprint a representative domain list and quantify how many run each CMS, framework or analytics tool — clean input for a report or dashboard.
  • Lead enrichment. Append tech-stack signals to your CRM for sharper targeting. Feed a list of account domains through the Actor and attach cms, ecommerce and the full technology list to each record so sales and marketing can segment on real data.
  • Recruiting & sourcing. Find companies running the stack you hire for. Detect which sites are built on React, Next.js, Vue, WordPress or a particular commerce platform, and turn that into a sourcing list for technical roles.

Prospecting recipes

Filter the output dataset to turn a raw scan into a targeted list:

  • Find Shopify stores → keep rows where ecommerce = Shopify.
  • Target WordPress sites → keep rows where cms = WordPress.
  • Sell a Klaviyo or HubSpot competitor → keep rows where technologies contains Klaviyo or HubSpot.
  • Find sites with NO analytics → keep rows where byCategory.Analytics is empty or missing — prime candidates for an analytics/measurement pitch.
  • Spot heavy martech stacks → sort by technologyCount descending to surface the most tooled-up sites first.
  • Segment by host → group by byCategory."CDN/Hosting" to see who is on Cloudflare, Vercel, Netlify and friends.

Quick start

Apify Console

  1. Open the Website Tech Stack Detector page and click Try for free.
  2. Leave the input empty to fingerprint a built-in default set of popular sites and see the shape of the output, or paste your own domains into the Domains field (bare hostnames like techcrunch.com or full URLs like https://techcrunch.com — both work).
  3. Optionally set Max results and Concurrency, then click Start.
  4. When the run finishes, open the Dataset tab and export to CSV, JSON or Excel — or grab the Tech Stack view for a quick domain / cms / ecommerce / server / technologies summary.

Apify CLI

npm i -g apify-cli
apify login

# Run with the default sample set
apify call logiover/website-tech-stack-detector
# Run with your own domains and higher concurrency
apify call logiover/website-tech-stack-detector --input '{
  "domains": ["shopify.com", "wordpress.org", "vercel.com", "stripe.com"],
  "concurrency": 20,
  "maxResults": 500
}'

More CLI recipes, including dataset export, are in examples/cli.md.

API / cURL

Run the Actor and get the results back in a single request:

curl -X POST "https://api.apify.com/v2/acts/logiover~website-tech-stack-detector/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "domains": ["techcrunch.com", "shopify.com", "webflow.com"],
    "concurrency": 10
  }'

The response is a JSON array of tech-stack rows — one object per domain. Async runs and CSV/JSON downloads are covered in examples/api-curl.md.

JavaScript & Python (apify-client)

JavaScript

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('logiover/website-tech-stack-detector').call({
  domains: ['shopify.com', 'wordpress.org', 'stripe.com'],
  concurrency: 15,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const site of items) {
  console.log(site.domain, '→', site.cms, '|', site.technologies.join(', '));
}

Python

from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")

run = client.actor("logiover/website-tech-stack-detector").call(run_input={
    "domains": ["shopify.com", "wordpress.org", "stripe.com"],
    "concurrency": 15,
})

for site in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(site["domain"], "→", site["cms"], "|", ", ".join(site["technologies"]))

Full client examples: examples/javascript.md · examples/python.md.

Input

Every field is optional. Run the Actor with an empty input and it fingerprints a default set of popular sites so you can preview the output.

Field Type Default Description
domains array of strings ["shopify.com","wordpress.org","vercel.com","stripe.com"] Domains or URLs to analyze, with or without https://. Accepts bare hostnames (techcrunch.com) or full URLs (https://techcrunch.com/section).
startUrls array of { url } Alternative URL list input, e.g. from another Actor or an uploaded file. Merged with domains.
maxResults integer 1000 Maximum number of sites to fingerprint per run (min 1).
concurrency integer 10 Number of parallel requests (min 1, max 30). Raise it to scan large lists faster.
proxyConfiguration object { "useApifyProxy": true } Apify proxy settings for outbound requests.

Notes

  • domains accepts bare hostnames or full URLs — the Actor normalises both.
  • domains and startUrls are merged, so you can combine a hand-typed list with URLs coming from another Actor or a file.
  • concurrency ranges from 1 to 30; the default of 10 is a good balance for most lists.

Output

The Actor writes one row per domain to the run's dataset.

Field Type Description
url string The URL requested
domain string Hostname without www.
statusCode integer | null Final HTTP status of the homepage
title string | null <title> contents
technologies array Flat list of every detected technology
byCategory object Detected technologies grouped by category (CMS, Ecommerce, Frameworks, Analytics, Marketing, Payments, CDN/Hosting, Server)
cms string | null Primary detected CMS
ecommerce string | null Primary detected ecommerce platform
server string | null Web server from the Server header
generator string | null generator meta tag / X-Generator header (often exposes CMS + version)
poweredBy string | null X-Powered-By header
finalUrl string | null URL after following redirects
technologyCount integer | null Number of technologies detected
error string | null Error message if the site couldn't be fetched
scrapedAt string ISO timestamp

The default Tech Stack view shows the most useful columns at a glance: domain, cms, ecommerce, server, technologies, technologyCount, statusCode.

Sample output item

{
  "url": "https://techcrunch.com",
  "domain": "techcrunch.com",
  "statusCode": 200,
  "title": "TechCrunch | Startup and Technology News",
  "technologies": ["WordPress", "HubSpot", "Google Tag Manager", "Cloudflare"],
  "byCategory": {
    "CMS": ["WordPress"],
    "Analytics": ["Google Tag Manager"],
    "Marketing": ["HubSpot"],
    "CDN/Hosting": ["Cloudflare"]
  },
  "cms": "WordPress",
  "ecommerce": null,
  "server": "Nginx",
  "generator": "WordPress 6.5.2",
  "poweredBy": null,
  "finalUrl": "https://techcrunch.com/",
  "technologyCount": 4,
  "error": null,
  "scrapedAt": "2026-07-13T09:24:11.482Z"
}

Integrations & automation

  • Schedules. Run the Actor on a schedule to track when target sites adopt or drop a technology — a re-platform from Magento to Shopify, a switch from Universal Analytics to GA4, or a new HubSpot install is a strong buying (or selling) signal. Diff today's dataset against last week's to catch stack changes as they happen.
  • Webhooks. Fire an Apify webhook when a run finishes to notify Slack, kick off a downstream Actor, or POST fresh tech-stack rows straight into your own service.
  • Export to Google Sheets / S3. Push results to a Google Sheet for the sales team, or drop CSV/JSON into Amazon S3 for your data warehouse or BI tool.
  • Zapier / Make / n8n / Pipedream. Wire the Actor into any of these via the Apify integration to enrich records, update a CRM, or trigger outreach automatically.
  • End-to-end pipeline. A typical flow: collect domains (from a scraper, an ads dataset or a CSV) → detect the stack with this Actor → enrich by joining cms / ecommerce / technologies onto your account records → route to sales by segment. Every step can run on Apify with no glue code to host.

Export formats

Datasets can be downloaded or streamed in any of these formats from the Console, CLI or API:

  • CSV — for spreadsheets and CRM imports
  • JSON — for apps and scripts
  • JSONL — for streaming and big-data pipelines
  • Excel (XLSX) — for analysts and reports
  • XML — for legacy integrations

FAQ

How do I find what technology a website uses?

Submit the domain in the domains field and run the Actor. It reads the site's public headers, cookies and served HTML, matches them against a large fingerprint library, and returns the CMS, ecommerce platform, frameworks, analytics, marketing tools, payments, CDN/hosting and web server — both as a flat technologies list and grouped in byCategory.

Is this a BuiltWith / Wappalyzer API alternative?

Yes. It gives you the same kind of technology-lookup result as BuiltWith or Wappalyzer, but built for bulk domain lists and with no separate API key or monthly subscription — you pay per result on Apify and get structured JSON/CSV/Excel out.

Can I detect a website's CMS in bulk?

That's the core use case. Pass hundreds or thousands of domains in one run (up to maxResults, default 1000) and every row returns a cms field plus the full technology breakdown. Filter on cms = WordPress, Shopify, Webflow, etc. to segment your list.

How do I find all Shopify or WooCommerce stores in a domain list?

Run your domain list through the Actor, then filter the output: keep rows where ecommerce = Shopify for Shopify stores, or ecommerce = WooCommerce (or technologies contains WooCommerce) for WooCommerce shops. The same pattern works for Magento, BigCommerce, PrestaShop and more.

Can I detect the analytics and marketing tools a site uses?

Yes. Analytics tools (Google Analytics, GTM, Meta Pixel, Hotjar, Segment, Mixpanel, Plausible, Matomo, Amplitude) land under byCategory.Analytics, and marketing/CRM tools (HubSpot, Mailchimp, Klaviyo, Intercom, Drift, Zendesk, Tawk.to, Crisp) under byCategory.Marketing. Filter on those to build martech target lists.

Does it render JavaScript?

No — and that's what keeps it fast and cheap. The detector reads the served HTML, HTTP headers and cookies rather than spinning up a browser, so it scans large lists quickly. Technologies exposed in the initial response (which is the vast majority) are detected reliably.

How many domains can I scan per run?

Up to maxResults (default 1000, minimum 1) per run, processed at your chosen concurrency (1–30, default 10). For very large lists, raise maxResults and concurrency, or split the list across scheduled runs.

How do I export tech-stack data to CSV or JSON?

After a run, open the Dataset tab in the Console and choose CSV, JSON, JSONL, Excel or XML — or download the same formats via the API/CLI. See examples/api-curl.md for direct-download URLs.

Is it free / no API key required?

There's no third-party API key or monthly subscription to buy — the Actor runs on Apify's pay-per-result model, and you can start with Try for free. Your only credential is your Apify token when calling it programmatically.

Is it legal to detect a site's tech stack?

The Actor only reads information websites already make public — the HTTP response headers, cookies and HTML they serve to any visitor. Detecting the technologies behind a public homepage is a standard, widely-used practice (the same category as BuiltWith or Wappalyzer). As always, use the data responsibly and in line with the platform's terms and your local regulations.

Related actors

Actor What it does
Website Contact Scraper Pull emails, phone numbers and social links from websites for outreach.
B2B Lead Scraper Build B2B lead lists (companies, people, emails) by sector and country.
Website SEO Audit Crawler Crawl a site and audit on-page SEO issues at scale.

Pair the tech stack from this Actor with contacts from the Website Contact Scraper or B2B Lead Scraper, and you have a complete, segment-ready prospecting dataset — the stack tells you who to pitch, the contacts tell you how to reach them. You can also verify collected addresses with the Bulk Email Verifier.


📄 Documentation only — the Actor runs on the Apify platform. ▶️ Run it: https://apify.com/logiover/website-tech-stack-detector

MIT © 2026 logiover

About

Detect what any website is built with — CMS, framework, analytics, ecommerce & more, in bulk. BuiltWith-style, no API key. Apify Actor.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors