Bulk Website Tech Stack Detector — CMS, Analytics, CDN
Pricing
from $0.70 / 1,000 results
Bulk Website Tech Stack Detector — CMS, Analytics, CDN
Detect the tech stack of thousands of websites at once: CMS, e-commerce platform, JS framework, analytics, marketing/chat tools, CDN, hosting and server. Fast, cheap, keyless technographics for sales intelligence and lead generation.
Pricing
from $0.70 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
19 hours ago
Last modified
Categories
Features
Share
Bulk Website Tech Stack Detector — CMS, E-commerce, Analytics, CDN & Framework Technographics
Detect the technology stack of thousands of websites at once. This website tech stack scraper takes a list of domains and returns, for each one, the CMS, e-commerce platform, JavaScript framework, analytics & marketing tools, payment providers, CDN, hosting, and web server it detects — no login, no API keys, no coding. It is the fast, keyless, and cost-effective way to scrape website technologies and generate rich technographic intelligence at scale.
Export every result to JSON, CSV, Excel, or API.
Built for sales and growth teams building platform-targeted prospect lists, agencies prospecting by CMS or e-commerce platform, market analysts mapping technology share, competitive-intelligence researchers, and developers auditing web software architecture.
⚡ At a glance
| Feature | Details |
|---|---|
| Detection Scope | CMS, E-commerce, JS Frameworks, Analytics, MarTech/Chat, Payments, CDN, Web Servers |
| Fingerprint Library | 60+ tuned signatures across HTML markers, script sources, and HTTP response headers |
| Throughput & Speed | High-concurrency Cheerio engine processing 100+ websites in ~20 seconds |
| Scale & Capacity | Supports single-domain lookups up to 100,000+ domain batches via URL lists or remote files |
| Cost & Architecture | Lightweight pure-HTTP engine requiring no headless browsers; minimal compute footprint |
| Output Formats | Clean datasets in JSON, CSV, Excel, XML, HTML, and JSON Lines |
| Integrations | Apify REST API, webhooks, Python Client, Node.js SDK, Make, Zapier, Google Sheets |
| Proxy Flexibility | Keyless datacenter execution by default; optional Apify Proxy for bot-gated corporate domains |
🔎 Why scrape website tech stacks?
Knowing what a website is built with is pure gold for B2B sales, marketing, and competitive intelligence. Technographics — the structured data describing which CMS, e-commerce platform, analytics suite, marketing/chat widgets, payment providers, and CDN a business relies on — allows you to qualify leads, segment addressable markets, and craft personalized outreach. A retail brand running Shopify Plus has completely different budget and software requirements than an enterprise running SAP Commerce or an agency using Webflow.
However, gathering technographics manually by inspecting page source or running single-site browser extensions is prohibitively slow. Commercial technographic database providers charge steep monthly seat licenses, gate exports, and frequently deliver stale data collected months prior.
This bulk tech stack detector provides a modern, autonomous alternative: paste your list of target domains (or connect a remote CSV of thousands of leads), and the Actor inspects each domain live via high-concurrency HTTP requests. It parses HTML source markers and HTTP response headers, maps them against verified signatures, and outputs normalized, structured technographic profiles directly to your dataset.
Common reasons teams scrape website tech stacks:
- Sales qualification & account scoring — identify target accounts running specific software (e.g., WooCommerce, Magento, HubSpot, Klaviyo) to prioritize high-converting leads.
- Agency business development — find outdated platforms (e.g., legacy Drupal or Magento 1) to pitch replatforming, migrations, and development retainers.
- Competitive intelligence & market share — track platform adoption across thousands of vertical competitors (e.g., Next.js vs. Nuxt.js or Shopify vs. BigCommerce).
- Integration & partnership targeting — identify websites already using complementary tools (such as Stripe, Segment, or Intercom) for SaaS integration partnerships.
- Technical due diligence — audit the infrastructure, CDN, security headers, and frontend libraries of acquisition targets or partner networks.
- Lead enrichment pipelines — enrich raw corporate domains in your CRM with live software stack metadata.
✨ What this website tech stack scraper does
- ✅ High-volume bulk detection — paste URLs or connect remote text/CSV files; effortlessly handles a handful of sites up to 100,000+ websites in a single run.
- ✅ Comprehensive software coverage — detects across 9 primary architectural layers:
- CMS: WordPress, Wix, Squarespace, Drupal, Joomla, Webflow, Ghost, Contentful, Framer.
- E-commerce: Shopify, WooCommerce, Magento, BigCommerce, PrestaShop, Salesforce Commerce.
- JS Frameworks: Next.js, Nuxt.js, React, Vue.js, Angular, Svelte, Gatsby, Astro.
- Analytics: Google Analytics, Google Tag Manager, Facebook Pixel, Hotjar, Segment, Mixpanel, Amplitude, Plausible, Matomo.
- Marketing & Live Chat: HubSpot, Intercom, Drift, Zendesk, Mailchimp, Klaviyo, Crisp, Tawk.to.
- Payments: Stripe, PayPal, Square.
- Frontend Libraries: jQuery, Bootstrap, Tailwind CSS, Font Awesome.
- CDN & Edge: Cloudflare, Vercel, Netlify, Fastly, Amazon CloudFront, Akamai, GitHub Pages.
- Web Server: nginx, Apache, Microsoft IIS, LiteSpeed, Caddy, Google Frontend, Vercel, Netlify.
- ✅ Normalized categorization — results group technologies into dedicated category columns (
cms,ecommerce,frameworks, etc.) alongside a consolidatedallTechnologieslist and an integertechCount. - ✅ Connection diagnostics — captures
statusCode, a booleanoksuccess indicator, redirectedfinalUrl, and descriptive error logs for unreachable domains. - ✅ Configurable concurrency — adjust
maxConcurrency(up to 300) to maximize throughput and match network conditions. - ✅ Keyless & cost-effective — pure HTTP execution without browser overhead keeps compute consumption minimal.
🎯 Use cases & workflows
1. E-commerce Agency Prospecting
Filter an industry domain list for ecommerce: "WooCommerce" or cms: "Magento". Export the qualified list to launch targeted email campaigns proposing turnkey migration to Shopify Plus or custom headless setups.
2. SaaS Competitor Replacement Campaigns
Identify prospects utilizing legacy live chat or helpdesk tools (e.g., Zendesk, Drift). Pass the accounts into sales sequences highlighting your modern AI agent or cost advantages.
3. Technographic CRM Enrichment
Set up an automated webhook that passes incoming lead form domain submissions to this Actor, updates HubSpot or Salesforce with detected CMS and analytics tools, and routes leads to specialized account executives.
4. Market Penetration Audits
Analyze the top 10,000 retail domains in a country to measure the exact market share distribution of Cloudflare vs. CloudFront or Stripe vs. PayPal.
🛠️ Supported Technologies & Signatures Reference
The Actor evaluates websites against a curated, multi-vector library of detection signatures across 9 architectural layers:
| Category | Detectable Software & Platforms | Primary Signatures Used |
|---|---|---|
| CMS | WordPress, Wix, Squarespace, Drupal, Joomla, Webflow, Ghost, Contentful, Framer | Asset paths (/wp-content/), meta generators, CDN domains, DOM data attributes |
| E-commerce | Shopify, WooCommerce, Magento, BigCommerce, PrestaShop, Salesforce Commerce | Platform assets (cdn.shopify.com), cookie markers, /skin/frontend/, demandware assets |
| JS Frameworks | Next.js, Nuxt.js, React, Vue.js, Angular, Svelte, Gatsby, Astro | __NEXT_DATA__, _next/static/, __NUXT__, data-reactroot, data-v-, astro-island |
| Analytics | Google Analytics, Google Tag Manager, Facebook Pixel, Hotjar, Segment, Mixpanel, Amplitude, Plausible, Matomo | Tracking script URLs (googletagmanager.com, connect.facebook.net), global object inits |
| MarTech & Chat | HubSpot, Intercom, Drift, Zendesk, Mailchimp, Klaviyo, Crisp, Tawk.to | Embedded widget scripts (hs-scripts.com, intercomcdn.com, zdassets.com) |
| Payment Gateways | Stripe, PayPal, Square | Hosted checkout SDKs (js.stripe.com, paypal.com/sdk, squareup.com) |
| Frontend UI | Tailwind CSS, Bootstrap, jQuery, Font Awesome | CSS CDN links (cdn.tailwindcss.com, bootstrap.min.css), bundle filenames |
| CDN & Edge | Cloudflare, Vercel, Netlify, Fastly, Amazon CloudFront, Akamai, GitHub Pages | Response headers (cf-ray, x-vercel-id, x-nf-request-id, x-amz-cf-id, via) |
| Web Servers | nginx, Apache, Microsoft IIS, LiteSpeed, Caddy, Google Frontend | Server header inspection (Server: nginx, Server: cloudflare, Server: Apache) |
🔄 End-to-End Automation & Webhook Integration
Connect this Actor directly to automated marketing and CRM operations using Apify Webhooks and modern iPaaS tools:
Automated Technographic Enrichment with Make or n8n
- Trigger on Form Submission: Catch new company domain signups from your marketing site via webhook.
- Launch Actor Run: Trigger
bulk-tech-detectorvia the Apify API with the single prospect domain. - Wait for Completion: Use Apify webhooks or polling to receive the finished dataset item.
- Enrich CRM Record: In HubSpot, Salesforce, or Airtable, populate custom fields (
CMS,E-commerce,Analytics,CDN) with the detected values. - Score & Route: If
ecommerce == "Shopify"andpayment == "Stripe", assign the lead immediately to your Tier-1 Enterprise account executive.
Sample CSV Export Structure
When exporting results to CSV or spreadsheet applications, the data formats into predictable columns:
url,statusCode,ok,finalUrl,cms,ecommerce,frameworks,analytics,marketing,payment,cdn,server,jsLibraries,allTechnologies,techCount,error,scrapedAt"https://shopify.com","200","true","https://www.shopify.com/","","Shopify","React","Google Tag Manager","","","Cloudflare","Cloudflare","Tailwind CSS","Shopify, React, Google Tag Manager, Tailwind CSS, Cloudflare","5","","2026-11-10T15:55:00.000Z""https://wordpress.org","200","true","https://wordpress.org/","WordPress","","","Google Tag Manager","","","","nginx","jQuery","WordPress, Google Tag Manager, jQuery, nginx","4","","2026-11-10T15:55:00.000Z"
🎯 Filtering Strategies & Outreach Blueprints
Here is how high-growth teams filter results after export to create high-converting outreach lists:
1. The Headless Commerce Migration Campaign
- Filter:
cms == "WordPress"ANDecommerce == "WooCommerce" - Hook: Propose modernizing slow monolithic WooCommerce stores into blazing fast headless storefronts (Next.js + Shopify or Medusa).
2. High-Growth DTC Brand Qualification
- Filter:
ecommerce == "Shopify"ANDmarketing.includes("Klaviyo")ANDpayment.includes("Stripe") - Hook: Target established, high-revenue direct-to-consumer stores with specialized upsell, financing, or retention tooling.
3. Enterprise Infrastructure Optimization
- Filter:
cdn == "Amazon CloudFront"ANDserver == "Apache" - Hook: Pitch enterprise migration to edge computing platforms like Cloudflare Workers, Fastly, or Vercel for latency reduction.
📥 Input parameters
Configure your run via the Apify Console or pass a JSON payload directly through the API. Every field is optional.
| Field | Type | Default | Description |
|---|---|---|---|
urls | array (requestListSources) | [] | List of website URLs, bare domains (e.g., stripe.com), or remote CSV/text links. Leave empty for popular demo sample. |
maxItems | integer | 0 | Maximum websites to analyze. 0 = unlimited (processes every input site). Supports 1,000+ to 100K+ sites. |
maxConcurrency | integer | 50 | Maximum simultaneous parallel requests (1–300). Raise for larger batches on fast networks. |
timeoutSecs | integer | 30 | Per-website timeout ceiling (3–120s) preventing slow servers from stalling the crawl queue. |
proxyConfiguration | object | { "useApifyProxy": false } | Optional Apify Proxy configuration. Enable when scanning domains with strict anti-bot protections. |
Example input — Targeted SaaS & e-commerce audit
{"urls": [{ "url": "https://www.shopify.com" },{ "url": "https://wordpress.org" },{ "url": "https://vercel.com" },{ "url": "stripe.com" },{ "url": "gymshark.com" }],"maxItems": 0,"maxConcurrency": 50,"timeoutSecs": 30}
Example input — 1,000+ large batch audit via remote file
{"urls": [{ "requestsFromUrl": "https://example.com/top-1000-retailers.csv" }],"maxItems": 1000,"maxConcurrency": 100,"timeoutSecs": 20}
📤 Output structure
Each scanned website generates a clean, single-row record in your dataset:
{"url": "https://shopify.com","statusCode": "200","ok": "true","finalUrl": "https://www.shopify.com/","cms": "","ecommerce": "Shopify","frameworks": "React","analytics": "Google Tag Manager","marketing": "","payment": "","cdn": "Cloudflare","server": "Cloudflare","jsLibraries": "Tailwind CSS","allTechnologies": "Shopify, React, Google Tag Manager, Tailwind CSS, Cloudflare","techCount": "5","error": "","scrapedAt": "2026-11-10T15:55:00.000Z"}
📊 Extracted fields & data coverage
| Field | Coverage | Type | Description |
|---|---|---|---|
🌐 url | 🟢 High (100%) | String | Original input URL or domain name submitted for analysis |
📡 statusCode | 🟢 High (100%) | String | HTTP response code (e.g., 200, 301, 403, 500) |
🛡️ ok | 🟢 High (100%) | String | Boolean status ("true" for 2xx/3xx, "false" for errors) |
🔗 finalUrl | 🟢 High (~98%) | String | Destination URL after resolving HTTP redirects |
📝 cms | 🟡 Conditional (~26%) | String | Detected Content Management Systems (e.g., WordPress, Webflow) |
🛍️ ecommerce | 🟡 Conditional (~15%) | String | Detected e-commerce software (e.g., Shopify, WooCommerce, Magento) |
⚛️ frameworks | 🟡 Conditional (~45%) | String | Detected JavaScript frontend frameworks (e.g., React, Next.js, Vue) |
📊 analytics | 🟢 High (~60%) | String | Analytics trackers (e.g., Google Analytics, Segment, Hotjar) |
💬 marketing | 🟡 Conditional (~30%) | String | Marketing automation & chat tools (e.g., HubSpot, Klaviyo, Intercom) |
💳 payment | 🟡 Conditional (~12%) | String | Payment processing libraries (e.g., Stripe, PayPal, Square) |
☁️ cdn | 🟢 High (~80%) | String | Content delivery networks (e.g., Cloudflare, CloudFront, Fastly) |
🖥️ server | 🟢 High (~78%) | String | Web server signature identified via HTTP headers (e.g., nginx, Apache) |
📚 jsLibraries | 🟡 Conditional (~50%) | String | Frontend CSS/JS utility libraries (e.g., Tailwind CSS, jQuery) |
📦 allTechnologies | 🟢 High (100%) | String | Comma-separated concatenation of all detected software names |
🔢 techCount | 🟢 High (100%) | String | Total count of distinct technologies detected on the page |
⚠️ error | ⚪ Optional | String | Diagnostic error details if the host failed to respond |
⏰ scrapedAt | 🟢 High (100%) | String | ISO 8601 UTC timestamp of execution |
🔁 Scale & 1,000+ high-concurrency batching
Designed from the ground up for high-throughput technographic pipeline operations:
- 1,000+ to 100K+ URLs: Feed enterprise domain files via
requestListSourceswithout memory degradation. - Configurable Parallelism: Scale
maxConcurrencyup to 300 to process thousands of domains in minutes. - Zero Client-Side JavaScript Overhead: Avoids heavy Chromium browser launches, allowing 1,000 websites to be profiled for a fraction of standard compute costs.
- Automatic De-duplication: The engine tracks visited domains and generates clean, de-duplicated dataset records.
💻 Developer integration & code samples
Python SDK
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run_input = {"urls": [{"url": "https://www.shopify.com"},{"url": "https://wordpress.org"},{"url": "https://vercel.com"}],"maxConcurrency": 50,"maxItems": 100}run = client.actor("haketa/bulk-tech-detector").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['url']} | CMS: {item['cms']} | Ecom: {item['ecommerce']} | Techs: {item['allTechnologies']}")
Node.js SDK
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('haketa/bulk-tech-detector').call({urls: [{ url: 'https://shopify.com' }, { url: 'https://vercel.com' }],maxConcurrency: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.table(items.map(i => ({ url: i.url, ecom: i.ecommerce, frameworks: i.frameworks, cdn: i.cdn })));
cURL API
curl -X POST "https://api.apify.com/v2/acts/haketa~bulk-tech-detector/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": [{"url": "https://shopify.com"}, {"url": "https://wordpress.org"}],"maxConcurrency": 50}'
💡 Practical tips for optimal technographic detection
- Bare domains work automatically: You can submit bare domains like
airbnb.comorstripe.com; the scraper automatically prependshttps://. - Handle bot-protected domains: When scanning major enterprise portals (e.g., Bloomberg, Amazon), enable
useApifyProxy: trueinproxyConfigurationto prevent 403 blocks. - Calibrate concurrency: For lists under 500 domains, concurrency of 30–50 is optimal. For 10,000+ domains, increase to 100–150 for rapid completion.
- Export to CSV for CRM import: Filter on specific columns (e.g.,
ecommerce == "Shopify") before exporting to produce clean, platform-specific lead lists.
❓ Frequently Asked Questions
How does the detector identify technologies without a browser?
It inspects server-rendered HTML markers (asset paths, embedded config JSON, meta generators, inline script signatures) and HTTP response headers (e.g., server, cf-ray, x-powered-by, x-vercel-id).
Can I analyze 50,000 domains at once?
Yes. You can supply a remote URL hosting a text or CSV file of domains. The Actor streams results directly into the Apify dataset in parallel.
Is there any subscription fee for third-party databases?
No. The detection runs locally inside the Actor using built-in, curated signature libraries. There are zero third-party API keys or recurring subscription fees.
Does it detect client-side JavaScript injected technologies?
Only if their asset URLs or script tags appear in the initial HTML document payload. Deep runtime-only client injections that require full browser DOM execution are skipped to preserve high speed and low cost.
What formats can I download?
You can export results in JSON, CSV, Excel, XML, HTML, or JSON Lines via the Apify Console or API.
How does this compare to commercial services like BuiltWith or Wappalyzer?
Commercial services charge high monthly seat fees and restrict bulk exports. This Actor runs directly on your Apify infrastructure with zero third-party dependencies, allowing you to scan thousands or millions of websites at pure compute cost without per-lookup pricing.
Can I run this on internal intranet sites or staging environments?
As long as the target domain or URL is accessible via the public internet (or reachable via a custom proxy tunnel configured in proxyConfiguration), the Actor can scan and detect technologies on staging or preview deployments.
How frequently should I re-scan domains to maintain fresh data?
Because modern web development involves frequent framework and tooling updates, we recommend setting up an Apify monthly schedule to re-scan your account lists and capture tooling migrations or new software deployments.
🔗 Related intelligence & discovery tools
- Bulk Metadata Extractor — extract Open Graph, Twitter Cards, meta tags, and schema.org JSON-LD in bulk.
- Sanctions & Watchlist Screening Scraper — screen names and corporate entities against OFAC, EU, UN, and UK regimes.
- Nevada Contractor License Scraper — extract licensed contractors, bonds, and phone contacts from the NSCB registry.
- Treasury & Sovereign Debt Data Scraper — extract official US Treasury yield curves, debt metrics, and exchange rates.
📋 Changelog
v1.2 (2026-11)
- Unlocked 1,000+ to 100K+ batch pagination: added explicit
maxRequestsPerCrawlhandling and streamlined request queue allocation. - Enhanced fingerprint catalog: refined regex patterns for Magento, Tailwind CSS, and Contentful to eliminate false positives on substring matches.
- Expanded documentation: added visual badges,
⚡ At a glancequick reference, and developer integration snippets across Python and Node.js.
v1.1 (2026-07)
- Added high-concurrency CheerioCrawler architecture with parallel request pooling.
- Added categorical technology grouping and error capture fields.
v1.0 (2026-06)
- Initial release with keyless HTTP fingerprint detection.