Skip to content
Search/
CyberMax › Answers

How to check the tech stack of hundreds of websites at once

Updated 2026-11-10 · Data and API builders · by CyberMax

Short answer

Use a bulk tech-stack detector that reads the same evidence for every domain. DomainDNA on Apify checks each homepage's HTML and headers, DNS, RDAP and TLS certificate, and returns one record per domain: technologies with evidence, MX provider, SPF/DMARC, domain age and TLS expiry, at $0.004 per domain.

  1. Clean the list to bare domains, one per line, duplicates removed.
  2. Run it; each record has technologies[] (name, category, evidence), email (mxProvider, SPF, DMARC), registration and tls.
  3. Filter: e.g. category = Ecommerce and name = WooCommerce to find stores on a given platform.
  4. Treat blocked: true rows as partial for the tech list; DNS, email, TLS and domain age are still complete.
  5. Schedule it in monitor mode to get only the domains whose stack, mail provider or DMARC changed.

Copy-paste code

Python (pip install apify-client): which sites run Shopify, and who hosts their email

import os
from apify_client import ApifyClient

client = ApifyClient(os.environ["APIFY_TOKEN"])
domains = [l.strip() for l in open("domains.txt") if l.strip()]
run = client.actor("cybermax/domain-intel").call(run_input={"domains": domains})
for r in client.dataset(run["defaultDatasetId"]).iterate_items():
    tech = {t["name"] for t in r.get("technologies", [])}
    mail = (r.get("email") or {}).get("mxProvider")
    dmarc = ((r.get("email") or {}).get("dmarc") or {}).get("policy")
    print(r["domain"], "Shopify" in tech, mail, dmarc, (r.get("registration") or {}).get("ageDays"))

JavaScript / Node (npm i apify-client)

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('cybermax/domain-intel').call({ domains: ['stripe.com', 'apify.com'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const r of items) console.log(r.domain, r.summary, r.technologies.map((t) => t.name).join(', '));

No code: n8n, Make or Zapier

n8n: HTTP Request node (or the Apify node, action "Run an Actor and get dataset")
Method:  POST
URL:     https://api.apify.com/v2/acts/cybermax~domain-intel/run-sync-get-dataset-items
Auth:    Header Auth  ->  Authorization: Bearer <your Apify token>
Body:    JSON  {"domains": ["stripe.com", "apify.com"], "monitor": true, "monitorKey": "leads"}
Output:  one n8n item per result row, ready for Google Sheets / Airtable / a Slack message

Make:    Apify app -> "Run an Actor" (Actor: cybermax/domain-intel, wait for finish = yes)
         -> Apify "Get Dataset Items" (dataset = the run's defaultDatasetId) -> Google Sheets "Add a Row"
Zapier:  Apify app -> action "Run Actor" (cybermax/domain-intel, input JSON as above)
         -> trigger "Finished Actor Run" -> "Fetch Dataset Items" -> your app
Runs longer than 5 minutes: start with POST /v2/acts/cybermax~domain-intel/runs and read the dataset when the run finishes.

From an AI agent (MCP)

# Any MCP client (Claude Desktop, Claude Code, Cursor, VS Code): Apify's hosted MCP server
{
  "mcpServers": {
    "domain-intel": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.apify.com/?tools=cybermax/domain-intel",
               "--header", "Authorization: Bearer ${APIFY_TOKEN}"],
      "env": { "APIFY_TOKEN": "<your Apify token>" }
    }
  }
}
# The agent sees one tool, cybermax--domain-intel, with the Actor's input schema.
A real record, trimmed (stripe.com, 23 Sep 2026)
FieldValue
summaryemail on Google Workspace, DMARC p=reject, domain 31y old
technologiesNext.js (html: /_next/static/), Nginx (header server)
email.mxProviderGoogle Workspace
email.dmarc.policyreject
registration.registrarSafeNames Ltd.
securityHeaders.score5/6
filesrobots.txt, llms.txt, security.txt

Source: DomainDNA (Apify Actor cybermax/domain-intel) README, real run on 23 Sep 2026

Run DomainDNA on Apify

What a bulk tech lookup is used for

Sales teams build lists of companies on a platform they integrate with (Shopify, WooCommerce, HubSpot). Agencies find sites on an old CMS to pitch a rebuild. Security and IT teams check which vendors lack DMARC or have a certificate about to expire. Investors and analysts track platform share across a portfolio.

Why evidence matters

Every technology comes with what triggered it (a header, a script path, a meta tag, an MX record), so you can verify a surprising result in seconds instead of trusting a black-box label.

Good to know

Price on Apify: $0.004 per domain analyzed ($4 per 1,000); domains that do not resolve are free. In monitor mode, unchanged domains are skipped and not charged.

Detection reads what a site exposes; a technology hidden behind a CDN or not visible in the HTML is reported as unknown rather than guessed.

DomainDNA icon

DomainDNA: Know what any website runs on, in seconds

$0.004 per domain, domains that don&#x27;t resolve are free

DomainDNA returns each domain's tech stack with evidence, mail provider, SPF/DMARC, domain age and TLS expiry in one record. $0.004 per domain; domains that don't resolve are free.

Runs on your own Apify account, pay per result; failed results are not charged.

Questions

Is this a Wappalyzer or BuiltWith alternative?

For bulk lists, yes: the same kind of evidence-based detection, plus email security, domain age and TLS in one record, billed per domain with no subscription.

Can I find all websites that use a technology?

Not from nothing: start from a list of domains (an industry list, a CRM export) and filter the results by technology.

Can an AI agent use it?

Yes. Apify's MCP server exposes it as cybermax--domain-intel.

Free: the Free API Starter Kit

Copy-paste calls for 4 APIs with free daily tiers (CVE priority, VIN recalls, US duty rates, email checks), then 5 short emails on KEV/EPSS, MCP and free data.

You get one email to confirm first. Then the kit, and 5 short emails over two weeks. One-click unsubscribe in every email; we never share your address.

Compare the options

DomainDNA vs nexgendata Tech Stack Detector and automation-lab Tech Stack Detector: tech stack detectors comparedDomainDNA vs two tech stack detectors on Apify: live price per site, what each returns (technologies, WHOIS ag

Related answers

How to check what technology a website runs onFind a site's CMS, framework, analytics, CDN and email provider: response headers, page source, DNS records, aHow to find the contact email, phone and socials for a list of company domainsGet each company's published email, phone, socials and contact page from its own site, for a whole list of dom