Website Technology Detector: Tech Stack Lookup | $1/1K avatar

Website Technology Detector: Tech Stack Lookup | $1/1K

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Website Technology Detector: Tech Stack Lookup | $1/1K

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

One Dollar Store

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

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.

Open it in Apify Console

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

WebsitesPrice
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. technologyNames is a plain list for filters and spreadsheets. technologies carries 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

  1. Open the actor, add one website per line, press Start.
  2. Or paste this input:
{ "urls": ["wordpress.org", "https://www.shopify.com"], "maxItems": 10 }
  1. 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 ApifyClient
client = 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

FieldTypeDefaultWhat it does
urlslist of textnoneWebsites 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.
maxItemsnumber100The 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

FieldMeaning
urlThe address as you gave it.
domainHost name without www., after redirects.
finalUrl, statusCodeThe page that was read and its HTTP status.
titleThe page title.
technologyCountNumber of technologies found.
technologyNamesPlain list of the names, handy for filters.
categoriesThe categories those technologies belong to.
technologiesOne object per technology: name, categories, version (only when the page states it) and confidence (100, 75 or 50).
server, poweredByThe Server and X-Powered-By headers as sent.
pageBytes, pageTruncatedSize read. Pages are read up to 2 MB.
certificateProblemtrue when the site's HTTPS certificate failed the check. The public page was still read.
redirectedNumber of redirects followed (at most 5).
scrapedAtTime 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 confidence 75 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 categories if 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 certificateProblem is set.
  • Free plan runs return the first 10 results.
  • Every run writes a RUN_SUMMARY record 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

Changelog

  • October 2026: first release.