Website Tech Stack Detector: Monitor Changes, $0.002/site avatar

Website Tech Stack Detector: Monitor Changes, $0.002/site

Pricing

$2.00 / 1,000 site analyzeds

Go to Apify Store
Website Tech Stack Detector: Monitor Changes, $0.002/site

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

Detroit Web Agent - Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Website Tech Stack Detector: CMS, frameworks, analytics and hosting lookup at $0.002 per site

Website Tech Stack Detector: features, price and a real output row

Run it free on Apify

Price per 1,000 websitesFree planStarterScaleBusiness
This Actor$2.00$2.00$2.00$2.00

Website Tech Stack Detector sample output table from a real run

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.

Website Tech Stack Detector output preview: real run results as a table

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

  1. Open the prefilled run (free Apify account; it creates a saved task with a working input).
  2. Press Start. The input is small on purpose, so the first run is quick and costs a few cents at most.
  3. 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 actorTypical 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:

SiteCMS / EcommerceFrameworksHosting / CDNAnalytics and marketing
gymshark.comShopifyCloudflareShop Pay, Google Search Console
wordpress.orgWordPress 7.2PHPNginxGoogle Tag Manager
vercel.comNext.js, ReactVercel
gitlab.comNuxt, Vue.jsCloudflareMarketo, Optimizely, OneTrust
hubspot.comHubSpot CMSCloudflareHubSpot
drupal.orgDrupalPHP, jQueryApache, VarnishGoogle Tag Manager
dev.toRuby on RailsHeroku, 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:

FieldWhat it is
url, finalUrlThe URL you gave (normalized) and where it landed after redirects
status, title, serverHTTP status, page title, Server header
technologiesList of { name, category, version, confidence, evidence[] }
categoriesSummaryTechnology names grouped by category, easy to filter in a spreadsheet
fetchedAtWhen it was checked
errornull, 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):

FieldWhat it is
domainHostname without www
techCount, techNamesNumber of detections and a flat list of names for spreadsheets
cms, ecommerce, analytics, cdn, hosting, frameworks, payment, marketing, webServersDetected names bucketed by role, so you can filter without parsing technologies
isEcommercetrue when an ecommerce platform was detected
versionedTechCount, avgConfidence, lowConfidenceCountVersion coverage and confidence summary for the row
matchesTechnologiesFiltertrue/false when technologiesFilter is set
changeStatus, addedTechnologies, removedTechnologies, versionChangesMonitor mode only: new, changed or unchanged plus the diff
metaDescription, generator, language, canonicalUrl, hasViewportMetaHomepage SEO and meta basics
isHttps, redirected, responseTimeMs, htmlBytesTransport facts for the fetch
securityWhich 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

InputTypeDefaultWhat it does
urlslistbuilt-in 3-site sampleDomains 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.
maxSitesinteger100Upper bound on sites processed (1 to 10,000).
includeEvidencebooleantrueAdd the header, script URL, cookie or HTML snippet behind each detection.
respectRobotsbooleantrueSkip sites whose robots.txt disallows us (not charged).
categoriesFilterlistemptyReturn only technologies in these categories, e.g. CMS, Ecommerce, Analytics.
minConfidenceinteger 0-1000Drop detections below this confidence. 60 keeps only clearly evidenced ones.
technologiesFilterlistemptyTechnology names to look for (e.g. Shopify, HubSpot). Adds matchesTechnologiesFilter to every row.
onlyMatchingbooleanfalsePush only sites that use at least one technology from technologiesFilter. Others are not pushed and not charged.
monitorModebooleanfalseNew since last run: compare with the previous snapshot and add changeStatus, addedTechnologies, removedTechnologies, versionChanges.
onlyChangesbooleanfalseIn monitor mode, push only new or changed sites. Unchanged sites are not pushed and not charged.
monitorNamestringdefaultName of the snapshot, so you can track several site lists separately.
concurrencyinteger 1-205Sites 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 checkYou 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 ApifyClient
client = 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 write categoriesSummary into your CRM.
  • AI agents (MCP): connect https://mcp.apify.com?tools=transparent_meteorite/website-tech-stack-detector to 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 ApifyClient
client = 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 os
from apify_client import ApifyClient
client = 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.

More tools from the same publisher that fit this workflow:

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 respectRobots is on.

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

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:

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.