Tech Stack Detector: Detect Website Technologies avatar

Tech Stack Detector: Detect Website Technologies

Pricing

from $2.55 / 1,000 website tech stack detecteds

Go to Apify Store
Tech Stack Detector: Detect Website Technologies

Tech Stack Detector: Detect Website Technologies

Scrape the tech stack of any list of websites with this tech stack detector: CMS, ecommerce platform, analytics, CDN, frameworks, email provider, TLS and hosting. Or find websites using WordPress, Shopify or any of 7,600+ technologies, from your list or the Tranco top list. One row per domain.

Pricing

from $2.55 / 1,000 website tech stack detecteds

Rating

0.0

(0)

Developer

Scrapewise Data

Scrapewise Data

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

Tech Stack Detector: website technology lookup in bulk

This tech stack detector is a bulk bulk website technology lookup. Paste a list of websites such as example.com and get the technology stack of each one: CMS, ecommerce platform, analytics, tag manager, CDN, hosting, JavaScript framework, email provider and TLS.

You can also search the other way and find websites using Shopify, WordPress or any of 7,600+ technologies. Export to JSON, CSV or Excel for lead lists, competitor research and market sizing.

What it fixes

  • Browser extensions check one site at a time. This runs thousands in one job from a spreadsheet, a CRM export or an API call.
  • The email provider and SaaS tools never show on the home page. They are in the domain's DNS (MX, SPF, verification records), which this Actor reads alongside the HTML.
  • "Sites using X" lists usually need a plan with quotas. Find mode scans for free and charges only per website found.
  • Re-checking a list to catch migrations. The change monitor reports only websites whose stack moved since the last run.

At a glance

  • Detect mode: US$ 3.00 per 1,000 websites analyzed (US$ 2.30 on Gold and above), no start fee
  • Find mode: US$ 10 per 1,000 websites found; the scan itself is free
  • Technologies recognized: 7,600+ in 109 categories, with versions and confidence
  • Also included: email provider (MX, SPF), SaaS verification records, TLS issuer and expiry, IP and ASN, WordPress theme and plugins
  • Offline, blocked or invalid websites: returned with an errorCode, not charged

Switching from another tech stack actor? Your existing input works

Their fieldRead here as
startUrls (strings, {"url": ...} objects, requestsFromUrl)urls
domains, websites, targetUrls, startDomains, url (comma or line separated)urls
categories_filter, include_versions, timeout_secondscategoriesFilter, includeVersions, timeoutSecs
include_confidenceaccepted (confidence is on every technology by default)

When a snake_case option is present, the snake_case output fields (status_code, final_url, tech_count, tech_names, scan_time_ms) are added automatically, so the integration downstream keeps working.

Input examples

Detect mode:

{ "urls": ["wordpress.org", "www.shopify.com", "github.com"] }

Find mode, Shopify stores among Tranco ranks 200,001 to 202,000:

{ "mode": "find", "technologies": ["Shopify"], "trancoStartRank": 200001, "trancoTop": 2000 }

Change monitor for a scheduled task:

{ "urls": ["prospect-one.com", "prospect-two.com"], "onlyChanged": true }

Output example

A real row from a test run of 2026-09-30, with the lists trimmed:

{
"url": "https://costco.com/",
"finalUrl": "https://www.costco.com/",
"domain": "costco.com",
"statusCode": 200,
"title": "Welcome to Costco Wholesale",
"technologyCount": 15,
"technologyNames": ["Akamai", "Azure Edge Network", "Bazaarvoice Reviews", "Contentstack", "Emotion", "Material UI", "Proofpoint", "React"],
"cms": "Contentstack",
"cdn": "Akamai",
"javascriptFrameworks": "Emotion, React",
"emailProviders": "Proofpoint",
"mxRecords": ["mx0a-001f9d01.pphosted.com", "mx0b-001f9d01.pphosted.com"],
"tlsIssuer": "Certainly",
"tlsExpiresAt": "2026-10-22T20:47:30+00:00",
"tlsDaysLeft": 21,
"ipAddress": "151.101.195.52",
"asnOrganization": "Fastly, Inc.",
"technologies": [
{ "name": "Contentstack", "categories": ["CMS"], "version": null, "confidence": 100, "detectedBy": ["scripts"] },
{ "name": "React", "categories": ["JavaScript frameworks"], "version": null, "confidence": 100, "detectedBy": ["implied by Material UI"] }
],
"dnsVerifications": ["Adobe", "Atlassian Cloud", "DocuSign", "Microsoft 365", "OneTrust"],
"errorCode": null,
"scrapedAt": "2026-09-30T23:20:55.498991+00:00"
}

Find mode result of 2026-09-30: scanning Tranco ranks 200,001 to 202,000 for Shopify took 6 minutes and returned 37 stores out of 2,000 domains (1.9%); 22 of them also use Klaviyo. Each Find row also has matchedTechnologies (with version, confidence and detectedBy), trancoRank and trancoListId.

With compareWithPreviousRun or onlyChanged, each row also carries:

{ "stackChanged": true, "technologiesAdded": ["Shopify", "Klaviyo"], "technologiesRemoved": ["Magento", "Mailchimp"],
"previousCheckedAt": "2026-10-03T08:00:12+00:00", "firstSeenAt": "2026-09-20T08:00:09+00:00" }

Main output fields

FieldDescription
url, inputUrl, finalUrl, domain, statusCodeWebsite as analyzed, as sent, after redirects, host and HTTP status
technologyCount, technologyNamesHow many and which technologies
cms, ecommerce, analytics, tagManagers, cdn, hostingSummary columns, comma separated, ready for a spreadsheet
javascriptFrameworks, webFrameworks, webServers, programmingLanguagesSummary columns
paymentProcessors, liveChat, marketingAutomation, crm, emailProviders, advertisingSummary columns
wordpressVersion, wordpressTheme, wordpressPluginsWordPress details visible in the HTML
mxRecords, dnsVerificationsMail servers, and SaaS tools the domain is verified with
tlsIssuer, tlsExpiresAt, tlsDaysLeft, tlsValidTLS certificate on port 443
ipAddress, asn, asnOrganization, ipCountryNetwork that serves the site
technologiesOne object per technology: name, categories, version, confidence, detectedBy
matchedTechnologies, trancoRank, trancoListIdFind mode and Tranco runs
errorCode, error, scrapedAtFilled only when the site could not be analyzed; time of the check

detectedBy says why a technology was reported: headers, cookies, meta, scriptSrc, html, dom, dns:MX, dns:TXT and so on, or implied by WordPress.

What it reads

HTTP headers, cookies, meta tags, script URLs, inline scripts, HTML and DOM selectors, WordPress folders, DNS (MX, SPF, NS, SOA, CNAME, TXT verification records), the TLS certificate and the IP's ASN. Up to 2.5 MB of HTML is read per page. Fingerprints come from the open source webappanalyzer rules (GPL-3.0), plus DNS rules written for this Actor.

Limitations

  • JavaScript is not executed. A widget injected only by a tag manager after load can be missed. Server side, HTML and DNS signals cover most CMS, ecommerce, framework, CDN, analytics and email detections.
  • One page per website: the home page, unless you give a deeper URL.
  • Anti-bot protection: a few large sites answer with a challenge. In Detect mode they come back BLOCKED with the header and DNS detections, free. In Find mode they are skipped.
  • Tranco is a popularity ranking. The top ranks are big brands and infrastructure domains; for lists of stores, scan deeper ranks or filter by TLD.
  • Hosting behind a CDN shows the CDN's network, not the origin server.
  • No history before your first run. Schedule the change monitor to build your own.

Error codes (never charged)

errorCodeMeaning
INVALID_URLNot a domain or an http(s) URL
DNS_NOT_FOUNDThe domain does not resolve (also tried with www.)
CONNECTION_FAILED, TIMEOUT, SSL_ERROR, TOO_MANY_REDIRECTSThe site could not be reached in a usable way
BLOCKEDAnti-bot challenge on every attempt; header and DNS technologies still returned
HTTP_ERRORThe site answered 4xx or 5xx
UNEXPECTED_ERRORAnything else; open an issue with the website

In Detect mode a run fails only when no website at all could be analyzed. In Find mode error rows are not written.

FAQ

How do I find all websites that use Shopify? Choose Find mode, type Shopify, set how many Tranco domains to scan (optionally a TLD such as de) and start. Only Shopify sites are returned and charged. For a niche list, paste those domains in Websites instead.

How many websites per run? No fixed limit. Detect runs of 500 sites take a few minutes; Find mode scans about 250 to 350 domains per minute.

Does it detect the email provider? Yes, from MX and SPF: Google Workspace, Microsoft 365, Zoho Mail and others, plus gateways (Proofpoint, Mimecast) and senders (SendGrid, Amazon SES, Mailchimp).

Does it include historical data? No. It reports the live stack. Schedule runs with the change monitor to keep your own history.

Can I use it from an AI agent or n8n? Yes, through the Apify MCP server (https://mcp.apify.com) or the Apify app in n8n, Make and Zapier.

Why does a site show Cloudflare and nothing else? It probably answered with a challenge. Check errorCode: BLOCKED rows are not charged.

This Actor reads only public pages, certificates and DNS records. Domain rankings come from the Tranco list (tranco-list.eu); ASN data from the public Team Cymru service. Not affiliated with Wappalyzer, BuiltWith or Tranco.

Changelog

  • 2026-10-04: change monitor (compareWithPreviousRun, onlyChanged).
  • 2026-09-30: Find mode, WordPress theme and plugins, MX records, TLS certificate, IP and ASN.
  • 2026-09-15: first version.