Tech Stack Detector — Frameworks, CMS, Analytics, JSON Out
Pricing
Pay per usage
Tech Stack Detector — Frameworks, CMS, Analytics, JSON Out
Competitor tech stack as CSV/JSON in 2 min — frameworks, CMS, analytics, CDN, servers, trackers. No Wappalyzer seat fee, no BuiltWith cap, no manual inspection. Built for BDR prospecting + sales intel. Custom pipeline — spinov001@gmail.com · blog.spinov.online · t.me/scraping_ai
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Alex
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
Website Tech-Stack Detector — Frameworks, CMS, Analytics, CDN, Hosting for Any URL
Detect the full technology stack of any website in one request — JS frameworks, CMS, analytics pixels, CDN, hosting provider, payment processors, chat widgets, A/B-testing tools, marketing-automation platforms — structured per-category JSON. Wappalyzer-class detection without the browser-extension juggling.
Built for teams that need tech-stack data as a dataset: B2B sales enrichment, competitive-intel audits, partner-ecosystem mapping, or security-attack-surface audits of a vendor list.
Who uses this
- Sales teams filtering B2B lead lists — "show me all prospects using Shopify and Segment" — to pitch compatible tools.
- Competitive-intel teams auditing competitor tech choices across their target market.
- Partner / BD teams at SaaS companies finding every site using a specific integration they support.
- Security teams inventorying vendor/3rd-party scripts loaded on partner sites.
- Market researchers quantifying adoption of a technology category across a sector.
What you get per URL
| Field | Type | Example |
|---|---|---|
url | string | https://stripe.com |
final_url | string | (after redirects) |
status_code | number | 200 |
server_header | string | cloudflare |
cms | array | [{name:"WordPress", version:"6.4", confidence:1.0}] |
js_frameworks | array | [{name:"React", version:"18.2", confidence:1.0}] |
css_frameworks | array | [{name:"Tailwind CSS", version:"3.4"}] |
analytics | array | [{name:"Google Analytics", tag:"GA4", id:"G-XXXX"}] |
tag_managers | array | [{name:"Google Tag Manager", id:"GTM-XXXX"}] |
cdn | array | [{name:"Cloudflare"}] |
hosting | array | [{name:"Vercel"}] or [{name:"AWS EC2"}] |
payment_processors | array | [{name:"Stripe"}] |
ecommerce_platform | array | [{name:"Shopify"}] |
marketing_automation | array | [{name:"HubSpot"}, {name:"Klaviyo"}] |
chat_widgets | array | [{name:"Intercom"}] |
ab_testing | array | [{name:"Optimizely"}] |
cookie_consent | array | [{name:"OneTrust"}] |
ssl_issuer | string | "Amazon RSA 2048 M03" |
tech_total_detected | number | 18 |
page_size_kb | number | 187 |
third_party_scripts | array | list of external script domains |
scanned_at | string | ISO timestamp |
Input
{"urls": ["https://stripe.com","https://shopify.com","https://notion.so"],"includeCategories": ["cms","js_frameworks","analytics","payment_processors","marketing_automation"],"followRedirects": true,"renderJs": false,"timeoutMs": 15000}
urls— list to scan. Bulk tested up to 500 URLs.includeCategories— subset to return. Omit for all.renderJs— settruefor SPA-heavy sites where detection requires post-JS rendering (slower, ~3x cost).followRedirects— resolve through to final URL.
Python usage example
from apify_client import ApifyClientfrom collections import Counterclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("knotless_cadence/website-tech-stack-detector").call(run_input={"urls": ["https://stripe.com","https://shopify.com","https://notion.so",# ... 500 B2B prospect URLs],"includeCategories": ["cms","js_frameworks","analytics","payment_processors"],})records = list(client.dataset(run["defaultDatasetId"]).iterate_items())# Which analytics platforms dominate in this prospect list?analytics = Counter()for r in records:for a in r.get("analytics", []):analytics[a["name"]] += 1print("Analytics platforms across prospects:")for name, count in analytics.most_common():pct = count / len(records) * 100print(f" {count:4d} ({pct:5.1f}%) {name}")# Find prospects using competitor's techtarget_prospects = [r for r in recordsif any(cms["name"] == "Shopify" for cms in r.get("ecommerce_platform", []))]print(f"\n{len(target_prospects)} prospects on Shopify — pitch relevant tools to them")
B2B-sales-enrichment pattern
Typical workflow: (1) pull prospect list from CRM → (2) scan via this actor → (3) filter by tech they use → (4) personalize outbound by tech context.
Example: If you sell a Shopify-integrated email tool, filter the dataset for ecommerce_platform: Shopify AND absence of competing marketing_automation: Klaviyo.
Common questions
Q: How does this compare to Wappalyzer / BuiltWith? Wappalyzer is browser-extension (one-site-at-a-time). BuiltWith has a paid API — powerful, but $295+/month for meaningful volume. This actor uses Wappalyzer-class fingerprints at dataset scale, priced per-run via Apify compute.
Q: Does it detect things behind JS rendering?
By default, no (fast static analysis). Set renderJs: true to execute JS — catches SPAs, React/Vue/Angular apps more reliably. ~3x cost, ~5x slower per URL.
Q: How current are the fingerprint rules? Fingerprint database updated weekly. New tools added regularly (AI-tool adoption is tracked aggressively — LLM chat widgets, RAG-provider scripts, AI SDKs).
Q: False-positive rate?
Detection comes with confidence scores (0-1). Confidence ≥ 0.8 typically indicates reliable match. Scores below 0.5 indicate a weak pattern match (e.g. a generic CSS class name) — filter them out client-side if precision matters.
Q: Can I detect competitors' own internal tools? Sometimes — internal tools that embed public SDK snippets (Segment, Amplitude, Datadog RUM) are detectable. Fully custom in-house stacks aren't.
Q: Cost per run?
Apify compute-unit pricing. A 100-URL scan (static) typically costs $0.02. With renderJs: true, $0.05-$0.10.
Export integrations
- CSV / JSON / Excel / HTML (native Apify dataset download)
- Google Sheets (via Apify integration)
- Webhooks on each run
- S3 / GCS direct sync
- Zapier / Make.com / n8n
Related scrapers
| Source | Actor | Data |
|---|---|---|
| Tech-Stack Detector (this) | Tech fingerprints | Site tech stack |
| PageSpeed Insights | Core Web Vitals | Performance |
| Website Uptime | HTTP status, latency | Availability |
| SSL Certificate Checker | TLS posture | Security |
| IP Geolocation | IP → location | Geo context |
All free on Apify Store.
About the maintainer
Maintained by an active Apify developer (78 public actors covering scraping, MCP servers, and B2B-sales enrichment tooling). Articles on Hashnode, Telegraph, Write.as, and Mataroa covering tech-stack fingerprinting, B2B enrichment pipelines, and competitive-intelligence data architecture.
Need a custom B2B-enrichment / competitive-intel pipeline (tech-stack-based prospect segmentation, competitor rollout tracking, ecosystem-partner discovery)? Email spinov001@gmail.com or message t.me/scraping_ai.
Disclaimer
Detects technologies via publicly visible page signals (HTML, HTTP headers, JS). Respects standard rate limits. Not affiliated with Wappalyzer or BuiltWith.