Tech Stack Change Detector
Pricing
from $8.50 / 1,000 domains
Tech Stack Change Detector
Detect a website's current technologies (CMS, ecommerce, analytics, marketing/CRM, framework, hosting/CDN, chat, payments) and diff it against a previously-seen stack you supply, so you get exactly what was added or removed. No browser, no proxies, no login.
Pricing
from $8.50 / 1,000 domains
Rating
0.0
(0)
Developer
Tim Zinin
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
Tech-Stack Change Detector — Diff a Site's Stack
Know when a prospect or competitor swaps a tool — Shopify replacing WooCommerce, HubSpot dropping in, a migration to Next.js — without paying for a technographic monitoring seat. Give this Actor a domain and, optionally, the stack you saw last time, and it returns what's live right now plus what was added and removed versus what you supplied.
What you get
- A real diff, not just a snapshot. Supply
domain|Tech1,Tech2and get back exactly what changed since you last looked —addedandremoved, not just a technology list to compare by eye. - Stateless by design. No stored history to trust or pay for — you own the "previous" side of the diff, this Actor just reads the current stack fresh every run.
- CMS, ecommerce, analytics, marketing/CRM, chat, JS framework, payments and hosting/CDN signatures — the same detection engine as
tech-stack-detector. - A
stackHash— a stable, sorted fingerprint you can store and feed back in as thepreviousStacknext time. - No browser, no proxies, no login — reads public HTML and HTTP headers only.
- Runs on Apify: schedule it, monitor it, call it from the API or the MCP server, export to JSON, CSV or Excel, or push results straight into your own pipeline.
How to run it
- Click Try for free — no card needed on the free plan.
- Paste domains into Domains, one per line — bare (
example.com) to just read the current stack, or with a previous stack after a pipe (example.com|Tech1,Tech2) to get a diff. - Hit Start and pull the results from the dataset (UI, API or webhook).
Pricing
Pay-per-event: $0.005 per run start + $0.01 per domain checked. No monthly seat. 100 domains cost about $1.01; 1,000 domains about $10.01.
A domain that could not be fetched (timeout, blocked, HTTP error) is still returned with found: false and the reason — and it is not charged. You pay for domains actually analyzed.
Input
Each item is a domain, optionally followed by | and a comma-separated list of technologies you last saw for that domain:
| Field | Required | What it does |
|---|---|---|
items | yes | "example.com" to just read the current stack, or "example.com|Tech1,Tech2" to diff against a previous stack. Up to 100 per run. |
maxConcurrency | no | How many domains to check in parallel (1–50, default 10). |
{"items": ["gymshark.com", "gymshark.com|WordPress"]}
Output
One row per domain. This is a real row from a real run, for the diff-form input gymshark.com|WordPress — the domain redirects to its checkout subdomain, which no longer runs the WordPress it once did:
{"input": "gymshark.com|WordPress","domain": "us.checkout.gymshark.com","found": true,"httpStatus": 200,"technologies": ["Shopify", "Zendesk", "Cloudflare"],"stackHash": "Cloudflare|Shopify|Zendesk","previousStack": ["WordPress"],"added": ["Shopify", "Zendesk", "Cloudflare"],"removed": ["WordPress"],"checkedAt": "2026-07-26T13:23:09.900Z"}
| Field | What it means |
|---|---|
domain | The resolved hostname actually checked (redirects are followed) |
technologies | Every technology detected right now |
stackHash | Sorted, pipe-joined technology list — a stable fingerprint you can store and pass back in as previousStack next time |
previousStack | Echo of what you supplied after the | (empty array if you didn't supply one — a bare "example.com" input returns added: [] and removed: []) |
added | Technologies present now but not in previousStack |
removed | Technologies in previousStack but not detected now |
found | Whether the fetch succeeded |
How to track real change over time
This Actor doesn't keep a database of past runs. To monitor drift, you keep the last stackHash/technologies for each domain (a small key-value store, a spreadsheet column, whatever fits your pipeline) and feed it back in as the |previousStack on the next run. That keeps the Actor cheap and lets you own the history.
Related tools
Related tools for adjacent workflows in B2B lead generation and data enrichment.
| Actor | What it does |
|---|---|
| Website Tech Stack Detector | Pair it in the B2B lead generation and data enrichment workflow: Detect the technologies a website runs — CMS, ecommerce platform, analytics, marketing/CRM, JS framework,... |
| Company Profile Lookup | Pair it in the B2B lead generation and data enrichment workflow: Turn a domain or company name into one unified company card: website tech stack (CMS, ecommerce, key tech)... |
| Company Hiring Radar | Pair it in the B2B lead generation and data enrichment workflow: Pull every open role a company is hiring for from its public job board (Greenhouse, Lever, Ashby) and turn... |
| B2B Lead Enricher | Pair it in the B2B lead generation and data enrichment workflow: Turn a list of company websites into sales-qualified lead cards: detected tech stack, a rough revenue... |
| Company Registry Enricher | Pair it in the B2B lead generation and data enrichment workflow: Turn a company name, LEI or UK company number into an official registry card: legal name, status,... |
FAQ / Limitations
Does it store history between runs? No. Supply the previous stack yourself via domain|Tech1,Tech2 to get a real diff; omit it to just read the current stack.
Does it render JavaScript? No — it reads served HTML and headers, same as tech-stack-detector. Technologies injected only after heavy client-side rendering may not appear.
Is this legal? Yes — it reads publicly served HTML and standard HTTP headers, the same data any browser receives.
Can I call it from an AI agent? Yes — it's a standard Apify Actor, callable via the Apify API or the Apify MCP server.
What this is NOT. It does not crawl a whole site or discover pages — it checks the one URL you give it (after redirects) and does not detect a technology change that happened and reverted between two of your runs.
Found a wrong result, or need a check we don't run? Open an issue on this Actor's page.