Website Technology Checker: Tech Stack & CMS Detector avatar

Website Technology Checker: Tech Stack & CMS Detector

Pricing

from $0.60 / 1,000 websites

Go to Apify Store
Website Technology Checker: Tech Stack & CMS Detector

Website Technology Checker: Tech Stack & CMS Detector

Wappalyzer & BuiltWith alternative: find the tech stack of any list of websites: CMS, ecommerce platform, analytics, tag managers, CDN, hosting, frameworks, payments, live chat and email provider, with versions. Bulk domains in, one spreadsheet-ready row per site. Pay only per site analysed.

Pricing

from $0.60 / 1,000 websites

Rating

0.0

(0)

Developer

PlainRows

PlainRows

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Find out what any website is built with: CMS, ecommerce platform, analytics, tag manager, CDN, hosting, JavaScript frameworks, payment providers, live chat, marketing tools and email provider, with versions when the site shows them, plus the e-mails, phone links and social profiles shown on the homepage. Paste a list of domains, get one spreadsheet-ready row per website, like a bulk BuiltWith or Wappalyzer lookup.

Each homepage is loaded live over HTTP (no browser, no proxy, no login) and matched against 7,600+ open-source technology fingerprints: about 150 websites per minute in our tests. You only pay for websites actually analysed: sites that are down, blocked or do not exist are free.

Typical uses

  • Lead generation and sales prospecting: find every Shopify, WooCommerce or Magento store in a list, or every company on HubSpot, Salesforce or Microsoft 365, with the e-mail, phone and LinkedIn page their homepage shows.
  • Agencies: qualify prospects by CMS (WordPress, Webflow, Wix, Squarespace), page builder or analytics setup before a pitch.
  • Competitive and market research: measure the market share of a CMS, a payment provider or a chat tool across thousands of sites.
  • SaaS go-to-market: build lists of sites using a competitor's product (e.g. Intercom, Klaviyo, Optimizely).
  • Security and IT inventory: see which web servers, frameworks and versions your own sites expose.
  • Automations and AI agents: enrich a CRM or a Google Sheet with the tech stack of each account.

What you get for each website

FieldDescription
domain, finalUrl, statusCodeThe site, its homepage URL after redirects and the HTTP status
technologyCount, technologyNamesHow many technologies were found, and their names in one comma-separated cell
cms, ecommerce, analytics, tagManagers, advertising, marketingAutomation, crm, email, liveChat, abTesting, paymentProcessors, cdn, hosting, webServers, jsFrameworks, webFrameworks, programmingLanguages, cookieConsent, securityOne column per category (comma-separated names, null when none): filter your spreadsheet on ecommerce = Shopify in one click
technologiesFull list: name, categories, version (null when not shown), confidence (0-100), detectedFrom (html, script, header, cookie, meta, dns, url, robots or implied) and the vendor website
title, metaDescription, languageHomepage title, meta description and declared language
contactEmail, contactEmails, contactPhonesE-mails shown on the homepage or in its links (the site's own domain first, max 10; addresses hidden in the page code and people's details in structured data are ignored) and phone links. email is a different column: the e-mail provider (e.g. Google Workspace)
facebookUrl, instagramUrl, linkedinUrl, xUrl, youtubeUrl, tiktokUrlSocial profiles the homepage links to (share buttons, posts and personal Facebook / LinkedIn profile links ignored)
contactOptOuttrue when the homepage objects to solicitation: the contact columns are then left empty (see Personal data and GDPR)
server, poweredByServer and X-Powered-By response headers
found, error, errorMessagefound: false when the homepage could not be loaded, with the reason (DNS_NOT_FOUND, TIMEOUT, HTTP_ERROR, BLOCKED_BY_BOT_PROTECTION, ROBOTS_TXT_DISALLOWED, NOTHING_DETECTED for an empty or parked page...)
detectedAtWhen the site was analysed (UTC)

Every row has the same columns, so the dataset exports cleanly to CSV, Excel or Google Sheets. Nothing is guessed: a technology is listed only when one of its fingerprints matched.

Input

{
"domains": ["shopify.com", "wordpress.org", "https://www.allbirds.com/collections/mens"],
"minConfidence": 0
}
  • domains: domains or URLs, up to 10,000 per run. www., paths and duplicates are removed; the homepage is analysed.
  • minConfidence (optional): hide detections below this confidence (0 shows everything, as Wappalyzer does; most detections are 100).

Output example

Real row from a run on 2026-10-07 for allbirds.com (technologies shortened to 3 of its 14 entries; contact fields computed on 2026-10-08 from the same homepage):

{
"domain": "allbirds.com",
"found": true,
"finalUrl": "https://www.allbirds.com/",
"statusCode": 200,
"title": "Allbirds: Comfortable, Sustainable Shoes & Apparel",
"metaDescription": "Allbirds: The world’s most comfortable shoes, flats, and clothing made with natural materials like merino wool and eucalyptus. FREE shipping & returns.",
"language": "en-US",
"server": "cloudflare",
"poweredBy": null,
"contactEmail": "help@allbirds.com",
"contactEmails": ["help@allbirds.com"],
"contactPhones": [],
"facebookUrl": "https://www.facebook.com/weareallbirds",
"instagramUrl": "https://www.instagram.com/allbirds",
"linkedinUrl": null,
"xUrl": "https://x.com/allbirds",
"youtubeUrl": "https://www.youtube.com/channel/UCnGErLCau5qNJ0Xwe6uEyTw",
"tiktokUrl": "https://www.tiktok.com/@weareallbirds",
"contactOptOut": false,
"technologyCount": 14,
"technologyNames": "Shopify, Microsoft 365, Apple Pay, PayPal, Cloudflare, Cursor, DocuSign, Google Tag Manager, HSTS, HTTP/3, Miro, Open Graph, Priority Hints, Swiper",
"cms": null,
"ecommerce": "Shopify",
"analytics": null,
"tagManagers": "Google Tag Manager",
"advertising": null,
"marketingAutomation": null,
"crm": null,
"email": "Microsoft 365",
"liveChat": null,
"abTesting": null,
"paymentProcessors": "Apple Pay, PayPal",
"cdn": "Cloudflare",
"hosting": null,
"webServers": null,
"jsFrameworks": null,
"webFrameworks": null,
"programmingLanguages": null,
"cookieConsent": null,
"security": "HSTS",
"technologies": [
{
"name": "Shopify",
"categories": [
"Ecommerce"
],
"version": null,
"confidence": 100,
"detectedFrom": [
"html",
"meta",
"script"
],
"website": "https://shopify.com"
},
{
"name": "Microsoft 365",
"categories": [
"Webmail",
"Email"
],
"version": null,
"confidence": 100,
"detectedFrom": [
"dns"
],
"website": "https://www.microsoft.com/microsoft-365"
},
{
"name": "Apple Pay",
"categories": [
"Payment processors"
],
"version": null,
"confidence": 100,
"detectedFrom": [
"html"
],
"website": "https://www.apple.com/apple-pay"
}
],
"error": null,
"errorMessage": null,
"detectedAt": "2026-10-07T15:22:14.502Z",
"schemaVersion": "1.0"
}

Pricing

Pay per website analysed, no subscription, no proxy costs, plus a tiny start fee per run ($0.0005). See the Pricing tab for current prices: one event per website analysed, cheaper on higher Apify plans. All columns, versions and DNS-based detections are included in that price. Websites that cannot be loaded are free; if a run keeps hitting them (for example a list of dead domains), it stops early and says so, so check the list and run the rest again.

Websites that cannot be analysed are free: no DNS, timeouts, HTTP errors, bot-protection pages, robots.txt refusals, invalid or duplicate domains. The run never spends more than the maximum cost you set.

Free Apify plan: each run analyses up to 10 websites, so you can check the output. A paid Apify plan removes this limit.

Use it from code, automations or AI agents

API (one call, results returned directly):

curl -X POST "https://api.apify.com/v2/acts/plainrows~website-tech-stack/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"domains": ["shopify.com", "wordpress.org"]}'

n8n, Make, Zapier: use the Apify integration, pick plainrows/website-tech-stack, and map the dataset items to Google Sheets, HubSpot, Airtable or your database.

AI agents (MCP): add https://mcp.apify.com?tools=plainrows/website-tech-stack to Claude, Cursor or any MCP client. The agent gets a typed tool and pays per website.

How detection works (and its limits)

  • The homepage is fetched like a polite crawler (Mozilla/5.0 (compatible; PlainRows/1.0; +https://apify.com/plainrows)), following redirects, with a 15-second timeout and a 2 MB size cap. robots.txt is respected: a site that forbids automated visits of its homepage is skipped (free).
  • Fingerprints are matched on the response headers, cookies, HTML, meta tags, script URLs, inline scripts and styles, page text, robots.txt and the URL, plus DNS records (MX, TXT, NS, SOA, CNAME): that is how e-mail providers (Google Workspace, Microsoft 365...) and verified SaaS accounts are found.
  • Rules that need a real browser are not used: JavaScript variables set by external scripts, CSS selectors on content built by JavaScript, network requests made after loading. Tools injected only by JavaScript (for example Google Analytics loaded through Google Tag Manager) can therefore be missed; the tag manager itself is found.
  • Sites protected by aggressive bot protection (Cloudflare challenges, DataDome, PerimeterX, AWS WAF) or that block crawlers return a free BLOCKED_BY_BOT_PROTECTION or HTTP_ERROR row. On a test list of 99 very large brand websites, 79 were analysed; the 20 others were mostly big retailers and media sites behind bot protection.
  • Versions are shown only when the site exposes them (meta generator, script file names, headers).

What this is not

  • Not BuiltWith or Wappalyzer, and not affiliated with them: no historical data, no technology spend. It reports what each homepage shows today.
  • It analyses the homepage only, not every page of the site: an e-mail shown only on a contact page is not found.
  • Not a people finder: contact columns hold only what the business publishes on its homepage (see below).

Personal data and GDPR

Contact columns contain only what each business publishes on its own homepage: no guessed addresses, nothing bought or looked up elsewhere. Personal social profiles (LinkedIn /in/ pages, personal Facebook profiles) are dropped, and team or staff pages are never read. When the homepage explicitly objects to solicitation (for example "Widerspruch gegen Werbe-E-Mails", "no unsolicited sales calls", "pas de démarchage"), no e-mail, phone or social profile is returned for that site and contactOptOut is true. A published business e-mail can still name a person: you are responsible for using the data lawfully (GDPR, ePrivacy and anti-spam rules, for example a documented legitimate interest for B2B outreach and an easy way to object). To have a website excluded, open an issue in the Issues tab of this Actor on Apify Store.

Credits and license

Technology fingerprints come from the open-source webappanalyzer project (a continuation of the original Wappalyzer fingerprints), licensed under the GNU GPL-3.0. Thanks to its maintainers and contributors. The patterns are used unchanged (fields not needed for detection, such as descriptions and icons, are left out), plus small PlainRows changes (extra Next.js patterns, a stricter Apple iCloud Mail rule); the detection code follows the same matching rules (patterns, confidence, versions, implies and excludes).

Run summary

Each run stores a summary in the key-value store (OUTPUT): websites analysed, websites that could not be loaded and why (failuresByReason), duplicates and invalid domains, and anything skipped because of the free-plan or budget limit.

FAQ

How do I find out what a website is built with? Paste one or many domains (up to 10,000 per run) and run: one row per website with its CMS, ecommerce platform, analytics, CDN, hosting, frameworks, payment and marketing tools, and email provider.

Is this BuiltWith or Wappalyzer? No, and not affiliated with them. It detects technologies from each homepage today, like a bulk Wappalyzer lookup; there is no historical data or technology spend.

Does it scan the whole site? No: the homepage only.

Can I find all Shopify or WordPress sites? No: you bring the list of domains, it tells you what each one uses. Filter the results by technology afterwards.

Does it return e-mails? Yes, the ones the homepage shows (contactEmail, contactEmails), with phone links and business social profiles, at no extra cost (homepage only). Sites that object to solicitation get empty contact columns (contactOptOut: true).

More PlainRows tools

Same pay-per-result pricing, same clean JSON, built to chain together in n8n, Make, Zapier or AI agents.

Compared with other APIs: Wappalyzer API alternative

Support

Missing a technology, or a wrong detection? Open an issue on this page with the domain. Issues are read and answered.