Website Tech Stack Detector - CMS, Shopify, Email, CRM & CDN avatar

Website Tech Stack Detector - CMS, Shopify, Email, CRM & CDN

Pricing

from $10.50 / 1,000 domain with technologies

Go to Apify Store
Website Tech Stack Detector - CMS, Shopify, Email, CRM & CDN

Website Tech Stack Detector - CMS, Shopify, Email, CRM & CDN

Detect any website's tech stack like BuiltWith or Wappalyzer: CMS, Shopify/ecommerce, analytics, ads, CDN, hosting, email provider, CRM, chat and payments from 7,000+ fingerprints plus DNS (MX, SPF, TXT). Every detection has evidence. Pay only for domains with detections.

Pricing

from $10.50 / 1,000 domain with technologies

Rating

0.0

(0)

Developer

Artificially

Artificially

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Website Tech Stack Detector – BuiltWith & Wappalyzer-Style Technology Lookup

Find out what any company website is built with: CMS, ecommerce platform (Shopify, WooCommerce, Magento…), analytics, advertising pixels, tag managers, CDN, hosting, email provider, CRM and marketing automation, live chat, payment processors, JavaScript frameworks and 7,000+ other technologies. Paste domains, get one clean item per domain with every detection backed by evidence, and pay only for domains where something was detected.

Built by Artificially | Follow us on X @artificially_io

Use with AI agents (MCP)

This actor works as a tool for Claude, ChatGPT, Cursor and other AI agents through Apify's MCP server. Ask something like "which of these 20 domains run on Shopify and which email provider do they use?" and the agent calls it for you. Set compactOutput: true so each result is a short list of technology names plus highlights that fits easily in the agent's context.

Quick setup (sign in with your Apify account when asked):

  • Claude (claude.ai or Claude Desktop): Settings → Connectors → Add custom connector, and paste https://mcp.apify.com?tools=artificially/website-tech-stack-detector
  • Claude Code or Cursor via the Apify CLI (latest version, apify upgrade): apify mcp install claude-code --tools artificially/website-tech-stack-detector (use cursor instead of claude-code for Cursor)
  • Any MCP client (Cursor, VS Code, Windsurf):
{
"mcpServers": {
"apify": { "url": "https://mcp.apify.com?tools=artificially/website-tech-stack-detector" }
}
}

Try asking:

  • "Which of these 100 websites run on Shopify, and which email provider do they use?"
  • "What CMS, analytics and CRM does hubspot.com use?"

Why this actor

  • Three detection sources combined – the HTML, scripts, meta tags, cookies and response headers of the home page and up to 3 key pages, plus the domain's public DNS records (MX, SPF, TXT verifications, DMARC, nameservers, CNAME). DNS finds tools that never appear on the website: Google Workspace vs Microsoft 365, HubSpot, Salesforce, Mailchimp, SendGrid, Atlassian, Stripe, Zoom, DocuSign, OpenAI and more.
  • Evidence for every detection – each technology lists what matched: header: server: cloudflare, script: https://cdn.shopify.com/..., dns: MX aspmx.l.google.com, meta: generator: WordPress 6.6. No black box; you can verify every line.
  • Versions and confidence – versions are extracted where the site exposes them (e.g. WordPress 6.9.9, jQuery 3.5.1, Yoast SEO 25.1), and weak hints (like a domain merely allowed in a Content-Security-Policy header) get a low confidence and are filtered out by default.
  • Highlights you can use directly – cms, ecommerce, analytics[], advertising[], tagManagers[], cdn, hosting, emailProvider, frameworks[], chat[], crm[], payment[]. Hosting and CDN come only from real infrastructure evidence (headers, cookies, CNAME), never from a DNS verification record.
  • Lead filters – onlyDomainsUsing: ["Shopify"] keeps only Shopify stores (non-matching domains are free), and categories keeps only the categories you care about.
  • Fast and cheap – plain HTTP requests (no browser), about 6 requests and 3 seconds per domain, 10 domains in parallel with polite per-site limits.
  • You only pay for results – a domain is saved and charged only if at least one technology was detected (and matched your filters). Unreachable, parked, disallowed and empty domains are listed for free in FAILED_DOMAINS.

Use cases

  • Shopify / ecommerce lead lists – filter a list of brands down to the stores that run on Shopify, WooCommerce or BigCommerce, with their payment options and marketing tools.
  • B2B sales prospecting – find companies on Google Workspace vs Microsoft 365, on HubSpot vs Salesforce, or using a competitor's tool; then get their contacts with the Company Contact Extractor.
  • Market and competitor research – measure the adoption of a CMS, analytics tool or CDN across an industry.
  • Account enrichment – add tech stack, email provider and hosting to CRM records, next to firmographics from the LinkedIn Company Scraper.
  • Security and IT audits – see which SaaS vendors, email security gateways (Proofpoint, Mimecast) and DMARC services a domain relies on.

How detection works

SourceWhat is readExamples
HTML and DOMMarkup patterns and CSS selectorsWordPress, Webflow, Contentful, Swiper, PayPal buttons
ScriptsScript URLs and inline script codeGoogle Tag Manager, Shopify, Klaviyo, Hotjar, Stripe.js
Meta tagsgenerator, verification and platform tagsWordPress 6.6, Jekyll, Shopify, Bing/Google/Yandex verification
Headers and cookiesResponse headers and Set-Cookie namesCloudflare, Vercel, Next.js, Nginx, CloudFront, _shopify_y, __cf_bm
URLsFinal URL and redirect chain*.myshopify.com, *.github.io, *.gitbook.com
DNSMX, TXT (SPF + verifications), DMARC, NS, SOA, CNAMEGoogle Workspace, Microsoft 365, Proofpoint, HubSpot, Salesforce, SendGrid, Route 53, shops.myshopify.com

implies, excludes and requires relations between technologies are resolved (for example Next.js implies React; WooCommerce requires WordPress), and implied technologies carry implied evidence naming the parent.

Technologies that can only be detected by running the page's JavaScript in a real browser (JavaScript global variables) are not checked directly, which keeps the actor fast and cheap. Most of them are still found through their script URLs, markup or implies relations.

The fingerprint patterns come from the open-source community project webappanalyzer (the maintained continuation of Wappalyzer's open-source fingerprints, licensed GPL-3.0), extended with Artificially's own DNS, header and CNAME rules.

Input

FieldTypeDescriptionDefault
websitesarrayDomains or URLs, e.g. allbirds.com, www.stripe.com, https://vercel.comRequired
maxPagesPerDomainintegerExtra internal pages scanned after the home page (0–10): pricing, careers, shop, contact, demo, blog…3
includeDnsbooleanRead MX, SPF, TXT, DMARC, NS and CNAME recordstrue
categoriesarrayKeep only these categories, e.g. ["Ecommerce", "CMS", "Analytics"]all
onlyDomainsUsingarraySave only domains using one of these technologies, e.g. ["Shopify"]none
minConfidenceintegerDrop detections below this confidence (0–100)50
compactOutputbooleanSlim items: domain, technology names, highlights, emailProvider. Best for AI agentsfalse
respectRobotsTxtbooleanSkip pages disallowed by robots.txttrue
maxConcurrencyintegerWebsites scanned in parallel (1–50)10
proxyConfigurationobjectOptional Apify Proxy for sites with bot protectionnone

Example input

{
"websites": ["allbirds.com", "gymshark.com", "stripe.com", "hubspot.com", "stihl.de"],
"maxPagesPerDomain": 3,
"includeDns": true,
"minConfidence": 50
}

Shopify store leads only:

{
"websites": ["allbirds.com", "gymshark.com", "stripe.com", "yoast.com"],
"onlyDomainsUsing": ["Shopify"],
"compactOutput": true
}

Output

One item per domain (technologies shortened here):

{
"input": "allbirds.com",
"domain": "allbirds.com",
"websiteUrl": "https://www.allbirds.com/",
"finalUrl": "https://www.allbirds.com/",
"siteStatus": "ok",
"title": "Allbirds: Comfortable, Sustainable Shoes & Apparel",
"technologies": [
{
"name": "Shopify",
"slug": "shopify",
"categories": ["Ecommerce"],
"version": null,
"confidence": 100,
"website": "https://shopify.com",
"evidence": [
{ "type": "header", "value": "powered-by: Shopify" },
{ "type": "script", "value": "https://cdn.shopify.com/s/files/1/1104/4168/files/jsEncrypt.js?v=1756910700" },
{ "type": "meta", "value": "shopify-digital-wallet: /11044168/digital_wallets/dialog" }
]
},
{
"name": "Microsoft 365",
"slug": "microsoft-365",
"categories": ["Webmail", "Email"],
"version": null,
"confidence": 100,
"website": "https://www.microsoft.com/microsoft-365",
"evidence": [
{ "type": "dns", "value": "MX allbirds-com.mail.protection.outlook.com" },
{ "type": "dns", "value": "TXT v=spf1 include:allbirds_com._es.easydmarc.com include:spf.protection.outlook.com ~all" }
]
},
{
"name": "Cloudflare",
"slug": "cloudflare",
"categories": ["CDN"],
"version": null,
"confidence": 100,
"website": "https://www.cloudflare.com",
"evidence": [{ "type": "header", "value": "server: cloudflare" }]
}
],
"byCategory": {
"CDN": ["Cloudflare"],
"Ecommerce": ["Shopify"],
"Email": ["Microsoft 365"],
"Payment processors": ["Apple Pay", "PayPal"],
"Tag managers": ["Google Tag Manager"]
},
"highlights": {
"cms": null,
"ecommerce": "Shopify",
"analytics": [],
"advertising": [],
"tagManagers": ["Google Tag Manager"],
"cdn": "Cloudflare",
"hosting": null,
"emailProvider": "Microsoft 365",
"frameworks": [],
"chat": [],
"crm": [],
"payment": ["Apple Pay", "PayPal"]
},
"dns": {
"mx": ["allbirds-com.mail.protection.outlook.com"],
"spfIncludes": ["allbirds_com._es.easydmarc.com", "spf.protection.outlook.com"],
"nameservers": ["ns2.markmonitor.com", "ns3.markmonitor.com"],
"verifications": ["MS (Microsoft 365)", "apple-domain-verification", "docusign", "google-site-verification", "miro-verification"],
"cname": "shops.myshopify.com"
},
"pagesScanned": 4,
"scrapedAt": "2026-09-23T11:26:56.680Z"
}
FieldDescription
inputThe website exactly as you entered it
domainThe registrable domain after redirects (e.g. notion.so → notion.com)
websiteUrl / finalUrlThe URL that was loaded and the URL after redirects
siteStatusok, or blocked when the website refused automated requests and the result comes only from DNS and the response headers of the block page
titleThe home page title
technologies{ name, slug, categories[], version, confidence, website, evidence[] }; evidence type is html, script, header, cookie, meta, url, dns or implied
byCategoryTechnology names grouped by category
highlightsThe most useful facts at a glance (see above). emailProvider comes from MX records, or from SPF when mail passes through a security gateway such as Proofpoint or Mimecast
dnsMX hosts, SPF includes, nameservers, verification record names and the website CNAME. null when includeDns is off
pagesScannedPages analyzed for this domain

With compactOutput: true an item looks like this:

{
"domain": "allbirds.com",
"technologies": ["Apple Business", "Apple Pay", "Cloudflare", "Google Tag Manager", "Microsoft 365", "PayPal", "Shopify", "Swiper"],
"highlights": { "cms": null, "ecommerce": "Shopify", "analytics": [], "advertising": [], "tagManagers": ["Google Tag Manager"], "cdn": "Cloudflare", "hosting": null, "emailProvider": "Microsoft 365", "frameworks": [], "chat": [], "crm": [], "payment": ["Apple Pay", "PayPal"] },
"emailProvider": "Microsoft 365"
}

The key-value store also contains:

  • SUMMARY – saved and failed counts, average technologies, pages, requests, KB and seconds per domain, the 30 most common technologies, and the fingerprint dataset version.
  • FAILED_DOMAINS – domains that were not saved, with a reason: unreachable, blocked (bot protection and no DNS signals; try a proxy), blocked_by_robots, parked_domain, not_html, invalid_input, no_technologies_found, no_matching_technology (did not match onlyDomainsUsing). These are never charged.

Pricing

This actor uses pay-per-event pricing: a tiny fee per run plus a fee per domain saved to the dataset. You only pay for domains with at least one detected technology that match your filters – unreachable, parked, empty and non-matching domains cost nothing, and there is no per-page fee. Set a maximum cost per run in Apify Console and the actor stops cleanly when it is reached. See the Pricing tab for current prices.

FAQ

Which pages are scanned? The home page, then up to maxPagesPerDomain internal pages linked from it, at most one per type: pricing, careers, shop/collections, contact, demo/signup, blog, support, about, product. Different page types load different tools (checkout and payment widgets, applicant tracking systems, forms, chat). Login pages and other websites are never loaded.

Why is a technology I know about missing? Some tools are loaded only after JavaScript runs, after cookie consent, or only for logged-in users. This actor reads the HTML and headers the server sends, without a browser, so those can be missed. DNS signals often fill the gap for B2B tools (CRM, email, marketing automation).

What do DNS verification records mean? Records such as google-site-verification, facebook-domain-verification, atlassian-domain-verification or stripe-verification are added by a company when it connects its domain to that service. They show which SaaS accounts the company has, even when the tool is not visible on the website.

Why is hosting or cdn sometimes null? They are filled only from infrastructure evidence (response headers, cookies, the website's CNAME). A nameserver at Cloudflare or Route 53 says where the DNS is managed, not where the website runs, so it is listed in technologies and dns.nameservers but not used for hosting.

Is this legal? The actor reads public web pages and public DNS records, the same information any browser or dig command sees. It does not log in or bypass protection, and pages disallowed by robots.txt are skipped by default. You are responsible for how you use the data.

Support

Found a wrong or missing detection? Open an issue on the actor's Issues tab with the domain – we usually respond within a day.

  • Company Contact Extractor: public emails, phones and social profiles from company websites – get the contacts of the companies you found here.
  • LinkedIn Company Scraper: company profiles with size, industry, headquarters and website for firmographic enrichment.
  • Career Site Jobs Scraper: open jobs from company career sites (Greenhouse, Lever, Ashby, Workday and more) – combine hiring signals with tech stack.