Tech Stack Detector · on the Apify Store

What is that website built with? With evidence.

Paste domains and get the CMS, ecommerce platform, frameworks, analytics, hosting, email provider and DNS provider of each one. Every detection shows the header, tag, script or DNS record that proves it.

Run it on ApifySee real output

  • $2 per 1,000 websites
  • Failed and duplicate sites are free
  • Email & DNS stack from MX, SPF and NS records

A list of domains in, one row per website out

Call it from Python, any HTTP client, Make, Zapier, n8n, or an AI agent through Apify's MCP server.

  • urls: domains or URLs, duplicates removed before scanning
  • includeDns (default on): email and DNS provider at no extra charge
  • Respects your maximum cost per run exactly

Runs on your own Apify account. Apify's free plan includes monthly credits, so small tests cost nothing.

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("siftwright/tech-stack-detector").call(run_input={
    "urls": ["vercel.com", "wordpress.org", "shopify.com"],
})
# apify-client 3.x; on 2.x use run["defaultDatasetId"]
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item["domain"], item.get("technologyNames") or item.get("error"))

What you get back

A real row from our test run on 30 September 2026 (shortened).

FieldWhat it is
domain, finalUrlThe website scanned, after redirects
status"ok" (charged) or "error" with a reason (free)
technologyNamesFlat list of everything detected
byCategoryThe same, grouped: CMS, Analytics, Hosting, Email provider…
technologiesEach technology with categories, version (when visible) and evidence
dnsThe MX, SPF and NS records used
{
  "domain": "wordpress.org",
  "status": "ok",
  "generator": "WordPress 7.2-alpha-64027",
  "technologyCount": 9,
  "technologyNames": [
    "WordPress",
    "Google Fonts",
    "PHP",
    "HSTS",
    "Open Graph",
    "Schema.org JSON-LD",
    "Twitter Cards",
    "Google Tag Manager",
    "Nginx"
  ],
  "technologies": [
    {
      "name": "WordPress",
      "categories": [
        "CMS"
      ],
      "version": "7.2",
      "evidence": [
        "meta generator: WordPress 7.2-alpha-64027",
        "asset https://wordpress.org/wp-content/mu-plugins/pub-sync/blocks/language-suggest/build/front.…"
      ]
    },
    {
      "name": "Nginx",
      "categories": [
        "Web server"
      ],
      "version": null,
      "evidence": [
        "header server: nginx"
      ]
    }
  ]
}

What people use it for

Lead targeting

Find the Shopify stores, WordPress sites or HubSpot users in a prospect list.

Competitor research

See which analytics, testing and marketing tools competitors run.

CRM enrichment

Add CMS, ecommerce platform and email provider columns to accounts.

Security audits

Check a portfolio of sites for HSTS, consent managers and old libraries.

Agency qualification

Keep only leads on the platforms you build for.

Agent tools

Let an AI agent answer "what is this site built with?" with evidence.

Pricing

Each website that loads is one charged event at $0.002. Dead domains, timeouts, invalid URLs and duplicates in your list cost nothing.

OptionPrice
Pay-per-event on Apify$0.002 per website ($2.00 per 1,000), plus Apify's $0.00005 start fee
Siftwright API plansNot included yet. Join the waitlist if you want it behind your Siftwright key.

Limits you should know about

  • It scans one page per website over plain HTTPS without running JavaScript, so tools loaded later by a tag manager can be missed.
  • About 200 fingerprints: fewer than Wappalyzer or BuiltWith, but every match comes with evidence.
  • Email tools found in SPF records are services the domain authorises to send mail, not proof they are used today. There is no history of past technologies.

Frequently asked questions

How is this different from Wappalyzer or BuiltWith?

Those have bigger catalogues and, in BuiltWith's case, history. This detector checks the live site and DNS now, shows the evidence for every match, adds the email and DNS stack, and costs $2 per 1,000 websites with failures free.

Why was a technology I know about not detected?

Usually it is loaded only by JavaScript after the page renders, or it lives on another page. Try the exact page URL, and tell us at support@siftwright.com so we can add a fingerprint.

Am I charged for websites that don't load?

No. Only websites whose page loaded are charged. Failures come back with status: "error" and a readable reason, for free.

Can I cap what a run costs?

Yes. Set a maximum cost per run on Apify; the run stops exactly there and never pushes results it can't charge for.

Know the stack behind every site on your list

Pay per result on the Apify Store, or ask us for a scheduled custom feed from $2,000/month.

Get an API keyTry the live demo