Website Tech Stack Detector: Monitor Changes, $0.002/site
Pricing
$2.00 / 1,000 site analyzeds
Website Tech Stack Detector: Monitor Changes, $0.002/site
Find the CMS, ecommerce platform, frameworks, analytics, CDN and hosting of any website, with version and confidence for each of 2,392 technologies. Filter by tool, get only what changed since last run, 30+ fields per site. Failed sites are free.
Pricing
$2.00 / 1,000 site analyzeds
Rating
0.0
(0)
Developer
Detroit Web Agent - Open Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 hours ago
Last modified
Categories
Share
Website Tech Stack Detector: CMS, frameworks, analytics and hosting lookup at $0.002 per site

| Price per 1,000 websites | Free plan | Starter | Scale | Business |
|---|---|---|---|---|
| This Actor | $2.00 | $2.00 | $2.00 | $2.00 |

Video walkthrough: Watch the 1-minute demo on YouTube
- In short: Website Tech Stack Detector (Apify actor
transparent_meteorite/website-tech-stack-detector) detects the technologies a website uses (CMS, ecommerce platform, JavaScript frameworks, analytics, tag managers, CDN, hosting and 300+ more) with evidence and confidence for each detection. - Who it is for: sales teams building technographic lead lists, agencies qualifying prospects, competitive and market researchers.
- Input: a list of domains or URLs, max sites, whether to respect robots.txt and include evidence.
- Output: one row per site: detected technologies grouped by category, version where visible, evidence, confidence, final URL, status.
- Price: $0.002 per site analyzed; sites that fail to load are not charged. Pay per result, no subscription; Apify's free plan credit covers a first test.
- Limits: detects from public HTML, headers, scripts and cookies of the home page, so server-side-only tools can be missed.

Key facts
- Actor name: Website Tech Stack Detector
- Actor ID:
transparent_meteorite/website-tech-stack-detector - Store page: https://apify.com/transparent_meteorite/website-tech-stack-detector
- Data source: the public website itself (HTTP fetch, no third-party database)
- Pricing model: pay per event (
site-analyzed$0.002) - Output formats: JSON, CSV, Excel, XML, HTML table, RSS (Apify dataset)
- Access: Apify Console, REST API, JavaScript/Python clients, schedules, webhooks, Apify MCP server
- Login or third-party API key needed: no, only an Apify account
- Also known as: tech stack lookup, website technology checker, technographics data, what CMS is this site using, technology detector API
- Maintainer: transparent_meteorite (independent developer)
- Last updated: 2026-10-07
Paste a list of domains; get the CMS, ecommerce platform, frameworks, analytics, CDN, hosting, payment and marketing tools each site runs, with the evidence for every detection.
2,392 technologies across 92 categories (847 hand-written fingerprints plus 1,545 imported from open-source MIT-licensed technology definition data, license text in third_party/), detected from one plain HTTP request per homepage. Only rules that work on a plain HTTP response are used (headers, cookies, meta tags, script URLs, HTML); rules that need a browser to read JavaScript globals are not included. No browser, no proxies, no AI guessing: every result comes with the header, script URL, cookie or HTML snippet that triggered it, plus a confidence score. Sites that fail or block us are not charged.
Run in 30 seconds
- Open the prefilled run (free Apify account; it creates a saved task with a working input).
- Press Start. The input is small on purpose, so the first run is quick and costs a few cents at most.
- Open the Output tab, switch to Table view, download as CSV, Excel or JSON.
Prefilled input:
{"urls": ["shopify.com","vercel.com","wordpress.org"],"maxSites": 3,"respectRobots": true,"includeEvidence": true,"concurrency": 5}
Ready-made presets by use case (each opens as a saved task you can edit):
Why choose this over alternatives
- 2,392 technology fingerprints, with the detected version and a confidence score for each match.
- Evidence for every detection, so you can see why a technology was reported.
- 19,393 automated checks pass, including 22 of 22 real websites fully matched.
- Failed or blocked sites are not charged.
| This actor | Typical alternatives | |
|---|---|---|
| Price | $0.002 per site | $0.0023 per URL up to $0.10 per detection |
Measured 2026-10-09 (source: Apify Store public pricing of the most-used listings in this category).
Sample output
Real results from a run on Oct 5, 2026:
| Site | CMS / Ecommerce | Frameworks | Hosting / CDN | Analytics and marketing |
|---|---|---|---|---|
| gymshark.com | Shopify | Cloudflare | Shop Pay, Google Search Console | |
| wordpress.org | WordPress 7.2 | PHP | Nginx | Google Tag Manager |
| vercel.com | Next.js, React | Vercel | ||
| gitlab.com | Nuxt, Vue.js | Cloudflare | Marketo, Optimizely, OneTrust | |
| hubspot.com | HubSpot CMS | Cloudflare | HubSpot | |
| drupal.org | Drupal | PHP, jQuery | Apache, Varnish | Google Tag Manager |
| dev.to | Ruby on Rails | Heroku, Varnish |
And one full row (trimmed):
{"url": "https://wordpress.org/","finalUrl": "https://wordpress.org/","status": 200,"title": "Blog Tool, Publishing Platform, and CMS - WordPress.org","technologies": [{ "name": "WordPress", "category": "CMS", "version": "7.2", "confidence": 100,"evidence": ["meta generator: WordPress 7.2-alpha-64071", "url: https://wordpress.org/wp-content/..."] },{ "name": "Google Tag Manager", "category": "Tag managers", "version": null, "confidence": 80,"evidence": ["url: https://www.googletagmanager.com/ns.html?id=GTM-P24PF4B"] },{ "name": "Nginx", "category": "Web servers", "version": null, "confidence": 60, "evidence": ["header server: nginx"] }],"categoriesSummary": { "CMS": ["WordPress"], "Tag managers": ["Google Tag Manager"], "Web servers": ["Nginx"] },"server": "nginx","fetchedAt": "2026-10-05T07:44:47.020Z","error": null}
What you get
One row per input site:
| Field | What it is |
|---|---|
url, finalUrl | The URL you gave (normalized) and where it landed after redirects |
status, title, server | HTTP status, page title, Server header |
technologies | List of { name, category, version, confidence, evidence[] } |
categoriesSummary | Technology names grouped by category, easy to filter in a spreadsheet |
fetchedAt | When it was checked |
error | null, or invalid_url, robots_disallowed, http_403 (etc.), not_html, fetch_failed: CODE |
More fields per row (all derived from the same one page request, no extra cost):
| Field | What it is |
|---|---|
domain | Hostname without www |
techCount, techNames | Number of detections and a flat list of names for spreadsheets |
cms, ecommerce, analytics, cdn, hosting, frameworks, payment, marketing, webServers | Detected names bucketed by role, so you can filter without parsing technologies |
isEcommerce | true when an ecommerce platform was detected |
versionedTechCount, avgConfidence, lowConfidenceCount | Version coverage and confidence summary for the row |
matchesTechnologiesFilter | true/false when technologiesFilter is set |
changeStatus, addedTechnologies, removedTechnologies, versionChanges | Monitor mode only: new, changed or unchanged plus the diff |
metaDescription, generator, language, canonicalUrl, hasViewportMeta | Homepage SEO and meta basics |
isHttps, redirected, responseTimeMs, htmlBytes | Transport facts for the fetch |
security | Which security headers are present: hsts, csp, xFrameOptions, xContentTypeOptions, referrerPolicy, permissionsPolicy |
Version and confidence. version is filled when the matching rule can read it (for example a generator meta tag, a Server or X-Powered-By header, or a versioned CDN URL); otherwise it is null. confidence is 1-100: 60 for one clear signal, +20 per extra independent signal, +10 when a version was read; patterns the source data marks as weaker start lower (40), and technologies only implied by another one are 50.
Input categoriesFilter (array, default empty = every category): return only technologies in the listed categories, for example ["CMS", "Ecommerce", "Analytics"]. Case-insensitive. It changes the technologies and categoriesSummary of each row; the per-site charge is unchanged.
Categories covered: CMS, ecommerce, analytics, tag managers, CDN, hosting, web servers, JavaScript frameworks and libraries, UI frameworks, payment, chat and support, marketing automation, advertising, A/B testing, security, page builders, WordPress plugins, authentication, video, fonts, SEO, CRM and about 70 more (92 in total). Shopify, WooCommerce, Magento, BigCommerce, Wix, Squarespace, Webflow, WordPress, HubSpot, Klaviyo, Stripe, Intercom, Segment, Hotjar, Google Analytics, React and Next.js are all included.
Quick start
Press Start with the prefilled form: shopify.com, wordpress.org and vercel.com, about $0.004, done in seconds.
Check a lead list:
{ "urls": ["allbirds.com", "gymshark.com", "techcrunch.com", "webflow.com", "squarespace.com"] }
Large list, faster, smaller rows:
{ "urls": ["example1.com", "example2.com", "..."], "concurrency": 15, "includeEvidence": false, "maxSites": 10000 }
Input
| Input | Type | Default | What it does |
|---|---|---|---|
urls | list | built-in 3-site sample | Domains or URLs, homepage only. Leave empty and the actor runs a sample (shopify.com, wordpress.org, vercel.com) so a first run always returns rows. |
maxSites | integer | 100 | Upper bound on sites processed (1 to 10,000). |
includeEvidence | boolean | true | Add the header, script URL, cookie or HTML snippet behind each detection. |
respectRobots | boolean | true | Skip sites whose robots.txt disallows us (not charged). |
categoriesFilter | list | empty | Return only technologies in these categories, e.g. CMS, Ecommerce, Analytics. |
minConfidence | integer 0-100 | 0 | Drop detections below this confidence. 60 keeps only clearly evidenced ones. |
technologiesFilter | list | empty | Technology names to look for (e.g. Shopify, HubSpot). Adds matchesTechnologiesFilter to every row. |
onlyMatching | boolean | false | Push only sites that use at least one technology from technologiesFilter. Others are not pushed and not charged. |
monitorMode | boolean | false | New since last run: compare with the previous snapshot and add changeStatus, addedTechnologies, removedTechnologies, versionChanges. |
onlyChanges | boolean | false | In monitor mode, push only new or changed sites. Unchanged sites are not pushed and not charged. |
monitorName | string | default | Name of the snapshot, so you can track several site lists separately. |
concurrency | integer 1-20 | 5 | Sites fetched in parallel. |
Monitor mode in practice: schedule the actor daily or weekly with monitorMode and onlyChanges on. The snapshot lives in the named key-value store tech-stack-monitor-state in your account. The first run marks every site new; later runs return only sites whose stack changed (a competitor adds Klaviyo, a prospect leaves Magento, WordPress goes from 6.4 to 6.5).
Pricing
$0.002 per site analyzed ($2 per 1,000 sites). No subscription.
| You check | You pay |
|---|---|
| 3 sites (the prefilled Start) | $0.006 |
| 1,000 sites | $2.00 |
| 10,000 sites | $20 |
Not charged: DNS errors, timeouts, refused connections, 4xx/5xx answers (including bot-blocking 403s), non-HTML responses, invalid URLs and sites whose robots.txt disallows us. Those rows still appear with an error so you know what happened. No proxy, browser or AI costs are added, and your run's maximum-charge limit is respected.
Apify's free plan includes $5 of monthly platform credit, which covers about 2,000 websites with this actor (at $0.002 per result, plus small platform usage).
Use with the API, n8n, Make, Zapier, Clay or AI agents
API (returns the rows in one call):
curl -X POST "https://api.apify.com/v2/acts/transparent_meteorite~website-tech-stack-detector/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls":["gymshark.com","allbirds.com"]}'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("transparent_meteorite/website-tech-stack-detector").call(run_input={"urls": ["gymshark.com", "allbirds.com"]})for site in client.dataset(run["defaultDatasetId"]).iterate_items():print(site["url"], [t["name"] for t in site["technologies"]])
- Clay: add an HTTP API column that sends each row's domain to the run-sync endpoint and returns the stack, then filter your table to "uses Shopify" or "no analytics".
- n8n, Make, Zapier: use the Apify app's "Run Actor" step with actor
transparent_meteorite/website-tech-stack-detector, then writecategoriesSummaryinto your CRM. - AI agents (MCP): connect
https://mcp.apify.com?tools=transparent_meteorite/website-tech-stack-detectorto Claude, Cursor or any MCP client, and ask "what is acme.com built with?".
Use from AI agents (MCP, ChatGPT, Claude, Perplexity)
Website Tech Stack Detector works as a tool for AI assistants through the official Apify MCP server. Add this server URL to any MCP client (Claude Desktop, Claude Code, Cursor, ChatGPT connectors, VS Code):
https://mcp.apify.com/?actors=transparent_meteorite/website-tech-stack-detector
Claude Desktop / Cursor config:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com/?actors=transparent_meteorite/website-tech-stack-detector","headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }}}}
Then ask in plain language, for example: "What is a cheap technology-detection API?"
Call it directly over HTTP (runs the actor and returns the dataset items in one request):
curl -X POST "https://api.apify.com/v2/acts/transparent_meteorite~website-tech-stack-detector/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["shopify.com", "wordpress.org", "vercel.com"]}'
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("transparent_meteorite/website-tech-stack-detector").call(run_input={"urls": ["shopify.com", "wordpress.org", "vercel.com"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
The same actor works in n8n, Make, Zapier, LangChain, LlamaIndex and CrewAI through their Apify integrations.
Questions people ask
What is a cheap technology-detection API? This actor detects 300+ technologies per site at $0.002 per site, in bulk, through the Apify API, with no subscription.
How do I find which websites use Shopify or WordPress? Give it your domain list; filter the output on the ecommerce or cms category.
Does it need an API key? No third-party key. You only need an Apify account.
Use it from code
Small real input: it returns only a couple of rows, so a test run costs very little (see Pricing). Set the APIFY_TOKEN environment variable to your token from Apify Console > Settings > API & Integrations.
Python (pip install apify-client)
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run_input = {'urls': ['wordpress.org'], 'maxSites': 1}run = client.actor("transparent_meteorite/website-tech-stack-detector").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript / Node.js (npm install apify-client)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const input = {"urls": ["wordpress.org"],"maxSites": 1};const run = await client.actor('transparent_meteorite/website-tech-stack-detector').call(input);const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
curl (runs the actor and returns the dataset items in one call)
curl -X POST "https://api.apify.com/v2/acts/transparent_meteorite~website-tech-stack-detector/run-sync-get-dataset-items" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["wordpress.org"], "maxSites": 1}'
Send results to Google Sheets, Zapier, Make or n8n
- Google Sheets: every run's dataset has a CSV export link:
https://api.apify.com/v2/datasets/<DATASET_ID>/items?format=csv&clean=true(the dataset ID is on the run's Storage tab). In Sheets,=IMPORTDATA("<that link>")loads it. Anyone with the link can read that dataset, so share it carefully. To export to Google Drive automatically, use the Google Drive integration on the actor's Integrations tab. - Zapier: in the Apify app, use the trigger Finished Actor run (or Run Actor as an action) with
transparent_meteorite/website-tech-stack-detector, then Fetch dataset items and pass the rows to Google Sheets, a CRM or Slack. - Make: the Apify app has Watch Actor Runs, Run an Actor and Get Dataset Items modules; connect them to any Make app.
- n8n: install the Apify node (
@apify/n8n-nodes-apify) and use Run an Actor and get dataset, or the On new Apify event trigger. - Schedule and webhooks: create a Task with your input, add a Schedule in Apify Console, and add a webhook if you want a call when a run finishes.
See the Apify integrations docs for setup steps.
Use cases
- Technographic lead lists: find which prospects run WordPress, Shopify, a given analytics tool or CDN.
- Agencies: qualify a prospect list before outreach (CMS, hosting, tag managers).
- Competitive research: compare the stacks of competitors across a market.
- Sales tooling: enrich a CRM account list with a technologies column.
- Migrations: find sites still on an old platform version that the page reveals.
New to Apify? Create a free account and run this Actor in under a minute. Some links are affiliate links.
Related actors
More tools from the same publisher that fit this workflow:
- Meta Ad Library Scraper: Facebook and Instagram ads from the Meta Ad Library
- Company Enrichment by Domain: enrich a domain with socials, emails and tech stack
- Website Email Extractor: pull emails, phones and socials from each business website
- Local Business Leads: find local businesses with no website from OpenStreetMap, a cheap complement to Maps data
- Shopify Leads & Store Scraper: Shopify store leads with apps, products and contacts
- WHOIS & Domain Lookup: WHOIS/RDAP, DNS, subdomains and SSL for a domain
Use from AI agents: every actor here is callable through the Apify MCP server (mcp.apify.com) and our open-data-actors MCP endpoint.
FAQ
How can I tell what technology a website uses?
Add its domain to urls and run the actor. Each result lists the detected technologies with a category, version when exposed, a confidence score and the evidence.
How do I check whether a website is built on Shopify or WordPress?
Run the domains and look at the Ecommerce and CMS entries in categoriesSummary. Shopify, WordPress, WooCommerce, Wix, Squarespace, Webflow, Magento and BigCommerce are all detected.
Is this a free technology-detection tool?
It is a pay-per-use alternative: $0.002 per site that loads, nothing for sites that fail, no subscription. It looks at the homepage only and does not run JavaScript, so a browser-based tool can find things this one cannot. We have compared published prices only, not detection accuracy, and make no other claims about other tools.
How accurate is the tech stack detection?
Every detection is a deterministic rule with visible evidence, so you can check any result. Confidence starts at 60 for one signal and rises with each extra independent signal, plus 10 when a version is read. Our test suite checks 22 real sites (Shopify, Allbirds, TechCrunch, Drupal, Vercel, Stripe, Wix, Squarespace, Webflow, HubSpot, GitLab and others) against hand-verified results, and also checks for known false positives.
Can I look up thousands of websites at once?
Yes. Put up to 10,000 sites in one run and raise concurrency to 15-20. Each request goes to a different site.
How many technologies does it detect, and where do the fingerprints come from?
2,392 technologies in 92 categories. 847 fingerprints are original; 1,545 come from open-source MIT-licensed technology definitions, converted to static rules (full license text in the repo under third_party/). Detections that would need a real browser (JavaScript globals, DOM queries) are not part of this actor, so some technologies visible only that way will be missed.
Can I get only the CMS or only the analytics tools?
Yes. Set categoriesFilter to for example ["CMS", "Analytics"]. Only matching technologies are returned. You are still charged per analyzed site.
Does it collect personal data?
No. It reads public homepage HTML and headers only. No IP addresses, emails or cookie values are stored.
More questions
How can I tell what CMS a website is using?
Add the domain to urls. Each row lists detected technologies grouped by category, with the evidence for each.
Can I check thousands of sites in one run?
Yes. Pass a long urls list and set maxSites; concurrency controls speed.
Does it need an API key for a third-party database? No. It fetches the public site itself and matches its own fingerprints; there is no external lookup.
Why was a tool I know they use not detected? Detection uses the public HTML, headers, scripts and cookies of the home page. Server-side-only tools leave no public trace there, so they can be missed.
Am I charged when a site does not load? No. Sites that fail to load are not charged.
How this compares
Established technology-lookup services keep historical databases and crawl the whole web; this actor does not. It does a live check of the sites you give it, with its own fingerprint set and the evidence for each match, and you pay per site analyzed. Use it when you want a current answer for your own list rather than a market-wide historical index.
Limitations
- Homepage only, one request plus one retry. Tools used only on inner pages, checkout or app subdomains are not seen.
- No JavaScript execution. Tools injected at runtime by a tag manager, and fully client-rendered sites with no framework hint in the HTML, are under-reported.
- Bot protection: sites that answer non-browser clients with 403/429 or a challenge page come back with an error, uncharged.
- Redirects: detection describes the page we landed on (
finalUrl), which can be a regional or different domain. - Server-side stacks behind a CDN that strips headers cannot be seen from outside. Versions appear only when the site exposes them.
- The first 2 MB of HTML is read. Sites whose robots.txt disallows all bots are skipped when
respectRobotsis on.
Related actors
- Career Site Jobs API: open jobs from Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Recruitee career sites.
- City Council Agendas API: agenda items, votes and PDFs from 18 US cities.
- FMCSA New Carrier Leads: new US trucking companies with email and phone.
- WARN Layoff Notices: Texas WARN Act layoff notices.
Missing a technology? Open an issue on the Issues tab with the site and what it uses, and we will add a rule.
Reliability
Last 30 days, measured from Apify run records (all runs, including our own daily health checks): 32 of 32 finished runs succeeded (100.0%), median run time 2.6 s (90th percentile 3.5 s). Aborted runs (0) are not counted.
Updated 2026-10-11 automatically every week from the run history. Report any failure on the Issues tab with the run URL.
More resources
- Guide & examples: mamoo85.github.io/open-data-actors/website-tech-stack-detector.html
- Sample output and example input on GitHub (masked sample CSV): github.com/Mamoo85/apify-actor-samples/website-tech-stack-detector
- Workflow templates: n8n, Make, Zapier recipe
Changelog
- 2026-10-05: Listing rewrite and real example input.
- 2026-10-06: Fingerprint set expanded with several hundred new signatures (CMS, ecommerce, JS libraries, hosting, marketing tools).
- 2026-10-06: Fingerprints 307 to 847.
- 2026-10-07: Price set to $0.002 per site.
- 2026-10-09: Title and README cleaned up; Output tab table view.
- 2026-10-09: Input sections, status messages, examples.
- 2026-10-09: Branding: maintained by Detroit Web Agent - Open Data.
- 2026-10-09: v0.2: fingerprints 847 to 2,392 (1,545 imported from open-source MIT-licensed data), weak-pattern confidence tuning.
- 2026-10-09: README free-credit note; clear log line and status when your Maximum cost per run is reached.
- 2026-10-11: Closing log line points to the Issues tab; Reliability section added to this README.
- 2026-10-13: Added a Run in 30 seconds section with a one-click prefilled run link, saved use-case presets, cross-links to pairing actors and Store title and search description reworded around how buyers search.
- 2026-10-13: v0.3: monitor mode (new since last run),
technologiesFilter+onlyMatching,minConfidence, 30+ new row fields (role buckets, security headers, SEO meta, timing), empty input runs a built-in sample.
Works well with
Other actors from Detroit Web Agent - Open Data that pair with this one:
- Shopify Store Leads: for Shopify sites: installed apps, theme, catalog stats and contacts.
- Website Contact Extractor: add emails, phones and social links for the sites that match your target stack.
- Technical SEO Page Audit: pair a stack lookup with an on-page SEO and broken-link check.
- Company Enrichment by Domain: turn the same domain list into company rows.
- Sitemap Link Inventory: inventory every URL of a site first, then audit the pages that matter.
- Developer Signals (Hacker News, npm, PyPI): see which technologies developers are discussing before you check who uses them.
- Domain Intelligence Lookup: add registration, DNS and SSL facts to each detected stack.
- Local Business Leads (no-website finder): check which platform each local business site runs on.
What the free plan gets you
Free plan: about 2,500 analyzed websites from your $5 monthly Apify credit (at $0.002 each, today's price); default settings return about 1 row (one sample site; add more URLs to scale). Need more? Upgrade your Apify plan or set a higher result limit in the input.
Need more than the data?
This actor is built by Detroit Web Agent, a small Detroit studio that builds websites, lead pages and simple data tools for small businesses. If you want these results turned into a working website, a landing page or a CRM import, or you need a field this actor does not cover yet, open an issue on the Issues tab or visit detroitwebagent.com.
Built and maintained by Detroit Web Agent - Open Data (Detroit, Michigan). Questions, bugs or a field you need: open an issue on this Actor's Issues tab and we will reply there.
