Website Tech Stack Detector
Pricing
from $0.01 / 1,000 results
Website Tech Stack Detector
Detect the technologies powering any website — CMS, web framework, analytics, JavaScript libraries, CDN, e-commerce and server — by inspecting its HTML, meta tags, scripts and HTTP headers. Returns a clean per-site technology list as JSON. No login required.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
Assia Fadli
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Find out what any website is built with. Give it a list of URLs and it fetches each page, inspects the HTML, meta tags, inline scripts and HTTP response headers, and returns a clean, flat JSON record naming the technologies it detected. There is nothing to configure — no API key, no login and no proxy.
Under the hood it uses got-scraping for a realistic browser fingerprint (so more sites answer normally) and cheerio to read the markup.
Features
- Detects technologies across these categories:
- CMS — WordPress, Wix, Squarespace, Drupal, Joomla, Ghost.
- JavaScript frameworks & libraries — React, Next.js, Vue.js, Angular, jQuery, Svelte, Gatsby, Bootstrap.
- Analytics & tag managers — Google Analytics, Google Tag Manager, Facebook Pixel, Hotjar, Segment, Plausible.
- CDN — Cloudflare, Fastly, Amazon CloudFront, Vercel, Netlify, jsDelivr.
- Server — Nginx, Apache, Microsoft IIS, Express, PHP.
- E-commerce & payments — Shopify, WooCommerce, Magento, Stripe.
- Follows redirects and reports the final URL and HTTP status code.
- Processes URLs concurrently in small batches to stay fast and polite.
- Emits one flat, ready-to-use JSON record per site.
- Skips gracefully over unreachable sites — they are recorded with an
errorfield so a single bad URL never stops the run.
Input
| Field | Type | Default | Description |
|---|---|---|---|
urls | array | — | The website URLs to analyze. A bare domain like example.com is treated as https://example.com. |
maxItems | integer | 100 | Maximum number of URLs to analyze. |
Example input
{"urls": ["https://www.wordpress.org", "https://shopify.com"],"maxItems": 100}
Output
Each dataset record looks like this:
{"url": "https://www.wordpress.org","finalUrl": "https://wordpress.org/","statusCode": 200,"server": "nginx","poweredBy": null,"generator": "WordPress","title": "Blog Tool, Publishing Platform, and CMS – WordPress.org","technologies": [{ "name": "jQuery", "category": "JavaScript Framework" },{ "name": "WordPress", "category": "CMS" }]}
| Field | Description |
|---|---|
url | The URL exactly as requested in the input. |
finalUrl | The URL after following redirects. |
statusCode | Final HTTP status code. |
server | Value of the Server response header (or null). |
poweredBy | Value of the X-Powered-By response header (or null). |
generator | Content of <meta name="generator"> (or null). |
title | The page <title> (or null). |
technologies | Array of { name, category }, sorted by category then name. |
If a URL can't be fetched (e.g. DNS failure or timeout), the row is { "url": "<url>", "error": "<message>" } instead.
Pricing
This actor uses the pay-per-event model: you are charged once per site successfully analyzed (the site-analyzed event). URLs that can't be fetched produce an error row and are never charged.
How detection works
For each URL the actor performs a single GET request (following redirects, 20s timeout) and captures the response headers, status code, final URL and HTML body. The HTML is parsed with cheerio, and each entry in a curated signature map is tested against the markup, a header value, or a CSS selector. All matches are collected and de-duplicated by name. Detection is heuristic — it reflects what a site exposes publicly and may miss technologies that are lazy-loaded or hidden behind a bot wall.
License
MIT © Assia Fadli