Website Technology Detector: Tech Stack Lookup | $1/1K
Pricing
from $1.00 / 1,000 results
Website Technology Detector: Tech Stack Lookup | $1/1K
$1 per 1,000 results, platform usage included. Names the CMS, shop platform, frameworks, libraries, servers, CDN, hosting and security headers a website uses, read from its page, headers and cookies. One row per site, no login or API key.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
One Dollar Store
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Website Technology Detector: CMS, frameworks, analytics and hosting for any site
$1 per 1,000 websites. Platform usage included. No rental, no minimum.
Give it a list of websites and get one row per site with the technologies it can see: CMS and shop platform, JavaScript frameworks and libraries, analytics and ad tags, web server, CDN, hosting and security headers. It reads the page source, the response headers and the cookies, the way a visitor's browser receives them.
New to Apify? [Create a free account](https://www.apify.com?fpr=ymnoit) (referral link). Runs from a free plan account return the first 10 results; any paid plan returns everything you ask for, up to your limit.What it costs
| Websites | Price |
|---|---|
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |
Plus $0.001 per run. One flat price, platform usage included, so there is no separate compute or proxy bill. A daily run of 300 websites costs about $0.30, or about $9 a month. In our test runs the platform cost was under $0.05 per 1,000 rows, so the price covers it with room to spare.
Why use it
- One flat price. The bill follows the number of websites and nothing else. There is no proxy or browser behind it, so a run of 24 sites took about 4 seconds in our test.
- Two formats in one row.
technologyNamesis a plain list for filters and spreadsheets.technologiescarries the category, version and confidence for each one. - You can see how sure it is. Each technology has a confidence: 100 when two kinds of evidence agree, 75 for one, 50 when it is only implied by another technology.
- Sites it cannot read are not charged. A site that blocks the actor, fails a robots.txt check or returns an error gives no row. It is listed in the run summary with the reason.
Quick start
- Open the actor, add one website per line, press Start.
- Or paste this input:
{ "urls": ["wordpress.org", "https://www.shopify.com"], "maxItems": 10 }
- Download the results as JSON, CSV or Excel, or read them through the API.
Use it from code
curl -X POST "https://api.apify.com/v2/acts/one_dollar_store~website-technology-detector/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": ["wordpress.org", "https://www.shopify.com"], "maxItems": 10}'
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("one_dollar_store/website-technology-detector").call(run_input={"urls": ["wordpress.org", "https://www.shopify.com"], "maxItems": 10})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["domain"], item["technologyNames"])
Use it from an AI assistant
Claude, ChatGPT, Cursor and other assistants can call this actor through Apify's MCP server. Add it with this server address:
https://mcp.apify.com?tools=one_dollar_store/website-technology-detector
Then ask, for example: "Which of these 20 competitor websites run Shopify, and which analytics tools do they load?"
Switching from another tech stack actor
Most technology lookup actors take a list of domains or URLs. Here it is urls (a bare domain or a full address) and maxItems. The core fields are domain, technologyNames, categories and technologies (each with name, categories, version and confidence).
Input
| Field | Type | Default | What it does |
|---|---|---|---|
urls | list of text | none | Websites to look up, one per line. A bare domain such as example.com or a full address. The page you give is the page that is read. |
maxItems | number | 100 | The run stops after this many results. Minimum 10. |
Only one page per website is read. If you give two addresses on the same site, the first one is used and the second is listed as skipped. A bare domain is tried over https first, then http, then with www. added.
Output fields
| Field | Meaning |
|---|---|
url | The address as you gave it. |
domain | Host name without www., after redirects. |
finalUrl, statusCode | The page that was read and its HTTP status. |
title | The page title. |
technologyCount | Number of technologies found. |
technologyNames | Plain list of the names, handy for filters. |
categories | The categories those technologies belong to. |
technologies | One object per technology: name, categories, version (only when the page states it) and confidence (100, 75 or 50). |
server, poweredBy | The Server and X-Powered-By headers as sent. |
pageBytes, pageTruncated | Size read. Pages are read up to 2 MB. |
certificateProblem | true when the site's HTTPS certificate failed the check. The public page was still read. |
redirected | Number of redirects followed (at most 5). |
scrapedAt | Time of the lookup in UTC. |
Each technology sits in one or more of about 40 categories, for example CMS, Ecommerce, JavaScript frameworks, Analytics, Tag managers, CDN, Hosting and Security.
Sample results
Real rows from a test run on 9 October 2026. For the two longer rows the technologies list is cut to its first entries here; the full row lists all of them.
[{"url": "vuejs.org", "domain": "vuejs.org", "finalUrl": "https://vuejs.org/", "statusCode": 200, "title": "Vue.js - The Progressive JavaScript Framework | Vue.js", "technologyCount": 7, "technologyNames": ["Brotli", "Content Security Policy", "Fathom", "HSTS", "Netlify", "VitePress", "Vue.js"], "categories": ["Analytics", "Hosting", "JavaScript frameworks", "Performance", "Security", "Static site generators"], "technologies": [{"name": "Brotli", "categories": ["Performance"], "confidence": 75}, {"name": "Content Security Policy", "categories": ["Security"], "confidence": 75}, {"name": "Fathom", "categories": ["Analytics"], "confidence": 75}, {"name": "HSTS", "categories": ["Security"], "confidence": 75}, {"name": "Netlify", "categories": ["Hosting"], "confidence": 75}, {"name": "VitePress", "categories": ["Static site generators"], "version": "2.0.0", "confidence": 75}, {"name": "Vue.js", "categories": ["JavaScript frameworks"], "confidence": 75}], "server": "Netlify", "pageBytes": 83785, "scrapedAt": "2026-10-09T00:04:56.149Z"},{"url": "woocommerce.com", "domain": "woocommerce.com", "finalUrl": "https://woocommerce.com/", "statusCode": 200, "title": "WooCommerce", "technologyCount": 16, "technologyNames": ["Google Tag Manager", "WooCommerce", "WordPress", "Brotli", "Content Security Policy", "Font Awesome", "HSTS", "Jetpack", "jQuery", "Nginx", "React", "Wistia", "WordPress.com", "Yoast SEO", "MySQL", "PHP"], "categories": ["Blogs", "CMS", "Databases", "Ecommerce", "Fonts and icons", "Hosting", "JavaScript frameworks", "JavaScript libraries", "Other", "Performance", "Programming languages", "SEO", "Security", "Tag managers", "Video players", "Web servers"], "technologies": [{"name": "Google Tag Manager", "categories": ["Tag managers"], "confidence": 100}, {"name": "WooCommerce", "categories": ["Ecommerce"], "version": "11.3.0", "confidence": 100}, {"name": "WordPress", "categories": ["CMS", "Blogs"], "version": "7.1.3", "confidence": 100}, {"name": "Brotli", "categories": ["Performance"], "confidence": 75}], "server": "nginx", "poweredBy": "WordPress VIP <https://wpvip.com>", "pageBytes": 312399, "scrapedAt": "2026-10-09T00:04:55.795Z"},{"url": "laravel.com", "domain": "laravel.com", "finalUrl": "https://laravel.com/", "statusCode": 200, "title": "Laravel - The clean stack for Artisans and agents", "technologyCount": 8, "technologyNames": ["Cloudflare", "Fathom", "Google Tag Manager", "Laravel", "Radix UI", "Tailwind CSS", "PHP", "React"], "categories": ["Analytics", "CDN", "JavaScript frameworks", "Programming languages", "Tag managers", "UI frameworks", "Web frameworks"], "technologies": [{"name": "Cloudflare", "categories": ["CDN"], "confidence": 75}, {"name": "Fathom", "categories": ["Analytics"], "confidence": 75}, {"name": "Google Tag Manager", "categories": ["Tag managers"], "confidence": 75}], "server": "cloudflare", "poweredBy": "Statamic", "pageBytes": 537984, "scrapedAt": "2026-10-09T00:04:56.287Z"}]
Limits
- One page per website, no JavaScript is run. The actor reads the HTML the server sends. Technologies that only appear after scripts run are missed. For example, the Angular version marker and tags that Google Tag Manager loads later are not in the source. A site built as a single page app can show less than a browser would.
- Rule based. About 380 technologies are covered, each with rules written for this actor. A technology that is not in the rules is not reported, and a rule can occasionally match something else. Treat
confidence75 as likely and 50 as a guess from what usually goes with a platform. WordPress implies PHP and MySQL, for example, but the site could use MariaDB. - Versions are returned only when the page or a header states them.
- Header notes such as HSTS, Brotli and HTTP/3 are listed as technologies because they show how the site is served. Filter on
categoriesif you do not want them. - robots.txt is honoured. If a site's robots.txt does not allow the page, no row is returned and the site is listed in the run summary. If robots.txt cannot be read because of a server error, the page is skipped too.
- Sites that block cloud servers or show a bot check page are skipped. The actor does not try to get past a check. In our tests a few well known sites answered with a bot check or HTTP 403.
- Only HTML pages with a 2xx status give a row. Redirects are followed, up to 5. Pages are read up to 2 MB.
- Local and private addresses are refused, as are addresses that are not http or https.
- A site with an invalid HTTPS certificate is still read, and
certificateProblemis set. - Free plan runs return the first 10 results.
- Every run writes a
RUN_SUMMARYrecord with counts and the list of skipped websites and why.
FAQ
How much does it cost to check 10,000 websites? $10, plus $0.001 for each run.
Do I pay for compute or proxy on top? No. Platform usage is included in the $1 per 1,000 price. The actor uses no proxy.
Which technologies can it find? Content management systems, shop platforms, site builders, JavaScript frameworks and libraries, UI kits, analytics and tag managers, ad tags, web servers, CDNs, hosting platforms, security headers and more.
Why does a site show fewer technologies than a browser extension? The actor does not run the page's scripts, so it sees what is in the HTML, headers and cookies only.
Can I check a specific page, such as a product page? Yes. Give the full address. The page you give is the page that is read.
Is it legal? The actor reads the public page a site sends to any visitor, with no login, and respects robots.txt. How you use the results is up to you: follow each site's terms and the law where you live.
Is this an official product of any of these technologies? No. It is an independent tool and is not affiliated with or endorsed by any company named in the results.
Do I need an Apify account? Yes. Actors run from an Apify account, and a free account is enough to start: it includes $5 of platform usage every month. You can sign up here. This is a referral link and it costs you nothing.
Is there a limit on the free plan? Yes. A run started from a free plan account delivers the first 10 results, then ends with a message and a link to the plans. Any paid plan returns everything you ask for, up to your own limit. The price per result is the same on every plan.
More from The One Dollar Store
Every actor here costs $1 per 1,000 results, platform usage included. See the whole store: https://apify.com/one_dollar_store
Website tools
- Website to Markdown Converter: Clean Markdown text from any web page.
- Website Contact Scraper: Emails, phones and social links from company sites.
- SEO Page Audit: On-page SEO checks for any URL.
- PDF Text Extractor: Text and page data from PDF links.
Changelog
- October 2026: first release.