Domain Tech Stack Detector
Under maintenancePricing
$3.00 / 1,000 domain analyzeds
Domain Tech Stack Detector
Under maintenanceDetect the technology stack of any website. Identifies frameworks (React, Vue, Angular), CMS (WordPress, Shopify), analytics (Google Analytics), CDN (Cloudflare), and more. Analyze single domains or bulk lists. Great for competitive analysis, lead generation, and market research.
Pricing
$3.00 / 1,000 domain analyzeds
Rating
0.0
(0)
Developer
The Emperor
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 days ago
Last modified
Categories
Share
Analyze any website and discover its full technology stack in seconds. The actor fetches a page, inspects its HTML source and HTTP response headers, and returns a structured JSON record containing every detected technology grouped by category — no browser rendering required.
What it detects
| Category | Technologies (sample) |
|---|---|
| Web Framework | React, Vue.js, Angular, Next.js, Nuxt.js, Svelte/SvelteKit, Django, Ruby on Rails, Laravel, Express.js, FastAPI, Spring, ASP.NET, Remix, Gatsby |
| CMS | WordPress, Shopify, Wix, Squarespace, Webflow, Ghost, Drupal, Joomla, HubSpot CMS |
| Analytics | Google Analytics GA4/UA, Plausible, Fathom, Mixpanel, Segment, Hotjar, FullStory, PostHog, Amplitude, Heap |
| CDN / Hosting | Cloudflare, AWS CloudFront, Vercel, Netlify, Fastly, Akamai, Google Cloud CDN, GitHub Pages, Render |
| JavaScript Libraries | jQuery, Lodash, Moment.js, D3.js, Three.js, Chart.js, GSAP, Axios, Alpine.js, htmx |
| CSS Frameworks | Tailwind CSS, Bootstrap, Bulma, Material UI, Chakra UI, Foundation |
| Marketing / Chat | Intercom, Drift, HubSpot Chat, Crisp, Zendesk, LiveChat, Tawk.to, Freshchat |
| Payment | Stripe, PayPal, Braintree, Square, Paddle |
| Email / Newsletter | Mailchimp, ConvertKit, SendGrid, Klaviyo, Beehiiv |
| Advertising | Google Ads, Facebook Pixel, LinkedIn Insight Tag, Twitter/X Pixel, TikTok Pixel |
| Tag Managers | Google Tag Manager, Tealium |
| Security / CAPTCHA | Google reCAPTCHA, hCaptcha, Cloudflare Turnstile |
| Search | Algolia, Elasticsearch |
| A/B Testing | Optimizely, VWO, LaunchDarkly |
| Error Monitoring | Sentry, Datadog RUM, LogRocket |
| Marketing Automation | Salesforce Marketing Cloud, Marketo, Pardot |
80+ technology signatures across 16 categories.
Input schema
| Field | Type | Default | Description |
|---|---|---|---|
urls | string[] | required | Full URLs or bare domains (example.com is auto-prefixed with https://) |
follow_redirects | boolean | true | Follow HTTP 3xx redirects and record the final URL |
timeout_seconds | integer | 30 | Per-URL fetch timeout (5–120 s) |
include_raw_evidence | boolean | false | Attach raw HTML/header snippets that triggered each match |
Example input
{"urls": ["https://vercel.com","stripe.com","https://ghost.org"],"follow_redirects": true,"timeout_seconds": 30,"include_raw_evidence": false}
Output format
One dataset record per URL:
{"url": "https://vercel.com","final_url": "https://vercel.com/","status_code": 200,"technologies": [{"name": "Next.js","category": "Web Framework","website": "https://nextjs.org","confidence": 0.99,"evidence": "[header] …x-powered-by: Next.js…"},{"name": "React","category": "Web Framework","website": "https://reactjs.org","confidence": 0.95},{"name": "Vercel","category": "CDN/Hosting","website": "https://vercel.com","confidence": 0.99},{"name": "Google Analytics GA4","category": "Analytics","website": "https://analytics.google.com","confidence": 0.99}],"categories": {"Web Framework": ["Next.js", "React"],"CDN/Hosting": ["Vercel"],"Analytics": ["Google Analytics GA4"]},"tech_count": 4,"analyzed_at": "2026-10-03T05:00:00Z"}
When a URL fails (timeout, DNS error, etc.) the record will contain an error key instead of technologies:
{"url": "https://not-a-real-domain.xyz","final_url": "https://not-a-real-domain.xyz","status_code": null,"error": "ConnectError: …","analyzed_at": "2026-10-03T05:01:00Z"}
Use cases
Competitive analysis
Map a competitor's full tooling — which analytics platform, A/B testing tool, or chat widget they use — without guessing.
Lead qualification
Enrich CRM data by detecting whether a prospect runs Shopify (e-commerce), Stripe (SaaS payments), or Marketo (marketing automation) to tailor outbound messaging.
Market research
Scrape a list of 10 000 company homepages to understand framework adoption rates across an industry vertical.
Security audits
Identify outdated or known-vulnerable technology fingerprints (e.g., old jQuery versions, exposed framework headers).
Agency prospecting
Find WordPress or Wix sites in a niche to target website redesign or migration services.
How it works
- URL normalisation — bare domains are prefixed with
https://. - HTTP fetch — httpx async client with a custom User-Agent; optional redirect following.
- Artefact extraction — regex parsing pulls
<script src>,<link href>,<meta>, and raw HTML; response headers andSet-Cookievalues are preserved. - Signature matching — each of the 80+
TechSignatureobjects carries typedDetectionPatternentries. The engine compiles every regex (case-insensitive) and runs it against the appropriate artefact list. - Confidence scoring — each pattern carries a
confidencefloat (0–1). The highest-confidence match for a technology wins; technologies are sorted by confidence descending. - Dataset push — one
Actor.push_data()call per URL writes results in real time.
Detection patterns cover:
| Pattern type | What is matched |
|---|---|
html | Raw HTML source of the page |
script_url | Every <script src="…"> value |
css_url | Every <link rel="stylesheet" href="…"> value |
header | Response headers as "name: value" strings |
meta | Every <meta …> tag string |
cookie | Set-Cookie header values |
Limitations
- Client-side-only frameworks: some SPAs inject
<script>tags dynamically after JS execution. Because the actor does not run a browser, signatures rely on server-rendered HTML and static asset URLs that appear in the initial document. - Minification/obfuscation: heavily obfuscated bundles may defeat name-based script-URL matching.
- CDN confidence: CDN/hosting detection is based on response headers which may be absent on cached or proxied responses.
- False positives: some patterns (especially generic HTML patterns) carry lower confidence scores to reflect their inherent ambiguity. Always treat results as signals, not ground truth.
- Rate limiting: the actor makes one real HTTP request per URL; aggressive rate limiting or bot-protection (Cloudflare Challenge, Akamai Bot Manager) may block the fetch or return challenge pages instead of real content.
Technical details
- Runtime: Python 3.12
- HTTP client: httpx (async)
- Concurrency: up to 5 URLs fetched simultaneously (configurable via
CONCURRENCY_LIMITinsrc/main.py) - Signature count: 80+ across 16 categories (see
src/signatures.py) - Base image:
apify/actor-python:3.12
Local development
# Install dependenciespip install -r requirements.txt# Run via Apify CLI (needs .actor/actor.json)apify run# Or run the module directly (reads input from INPUT_SCHEMA defaults)python -m src.main