Bulk Tech Stack Detector avatar

Bulk Tech Stack Detector

Pricing

from $2.00 / 1,000 domain analyseds

Go to Apify Store
Bulk Tech Stack Detector

Bulk Tech Stack Detector

Paste a list of domains and get what each one runs: CMS, framework, hosting, analytics, payments, support widgets. Every detection returns the evidence that proved it plus a confidence level, so a wrong row is auditable. Unreachable domains are never charged.

Pricing

from $2.00 / 1,000 domain analyseds

Rating

0.0

(0)

Developer

Anthony Snider

Anthony Snider

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Paste a list of domains, get back what each one runs — CMS, framework, hosting, analytics, payments, support widgets — with the evidence that proved each detection and a confidence level.

Built for lists, not single lookups. Unreachable domains are reported and never charged.


Why the evidence matters

Most detectors hand you WordPress: true. When that's wrong on 200 rows of a 10,000-row list, you have no way to find which 200. Every detection here returns what proved it:

TechnologyConfidenceEvidence
Shopifyhighcdn.shopify.com
Vercelhighserver: Vercel
WordPresshigh/wp-content/
jQuerylowjquery-3.6.0.min.js

Now a row is auditable in two seconds instead of being taken on faith.

Confidence is not decoration

  • high — the site declares it, or a first-party branded asset path proves it (a generator meta tag, cdn.shopify.com, a server header)
  • medium — a characteristic asset path or header
  • low — a weaker heuristic, worth reporting but not worth filtering a campaign on

Flattening these into a single boolean is how a bulk list becomes untrustworthy. You can filter on confidence and decide your own bar.

Three things this deliberately does not do

No vulnerability claims. Some detectors report "WordPress 5.2 — 14 known CVEs". A version string in HTML is routinely stale, cached, or spoofed, and converting it into a security assertion is unfounded. We report the version we saw and where we saw it. Nothing further.

No guessing. A site we can't classify comes back with an empty technology list and classified: false. Silent guessing is exactly what makes bulk output useless at scale — one plausible-looking wrong row poisons trust in all 10,000.

No double-counting. example.com and www.example.com are one company. We follow redirects to the final URL and report both it and whether a redirect happened, so your list doesn't double-count or silently miss.

What it detects

CMS & builders — WordPress, Drupal, Joomla, Ghost, Shopify, Wix, Squarespace, Webflow Frameworks — Next.js, Nuxt, Gatsby, Astro, React, Vue Hosting & CDN — Cloudflare, Vercel, Netlify, Fastly, CloudFront, Nginx, Apache Analytics — GA4, Google Tag Manager, Meta Pixel, Hotjar, Plausible, Segment Marketing & support — HubSpot, Klaviyo, Mailchimp, Intercom, Zendesk, Drift, Crisp Payments & security — Stripe, PayPal, reCAPTCHA, Cloudflare Turnstile Plus any self-declared generator meta tag, reported verbatim.

Input

{ "domainsText": "shopify.com\nvercel.com\nexample.com" }

Separators can be new lines, commas or spaces; https:// is optional and duplicates are removed.

FieldTypeDefaultNotes
domainsTextstringPasted list
domainsarrayFor API use
domainstringA single domain
maxDomainsinteger100Cap on domains, and therefore on spend

Output

{
"domain": "shopify.com",
"ok": true,
"finalUrl": "https://www.shopify.com/",
"redirected": true,
"technologyCount": 2,
"technologies": [
{ "technology": "Shopify", "category": "Ecommerce", "confidence": "high", "evidence": "cdn.shopify.com" },
{ "technology": "Cloudflare", "category": "CDN", "confidence": "high", "evidence": "server: cloudflare" }
],
"byCategory": { "Ecommerce": ["Shopify"], "CDN": ["Cloudflare"] },
"classified": true
}

For agents and automation

  • Capability: bulk detection of web technologies across a domain list
  • Required input: one of domainsText, domains, domain
  • Returns: one record per domain plus a SUMMARY; byCategory is pre-grouped for filtering
  • Bounded: maxDomains caps the run and the spend
  • Side effects: none — fetches each homepage once, stores nothing externally
  • Honest unknowns: classified: false with an empty list rather than a guess

Pricing

Pay per domain successfully analysed. Unreachable domains are free.