Website Tech Stack Detector avatar

Website Tech Stack Detector

Pricing

from $10.00 / 1,000 tech stack detecteds

Go to Apify Store
Website Tech Stack Detector

Website Tech Stack Detector

Detect CMS, frameworks, analytics, CDNs, ecommerce platforms, and JS libraries on public website URLs via owned HTTP fingerprinting. No paid catalog APIs. One row per URL. MCP-ready.

Pricing

from $10.00 / 1,000 tech stack detecteds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

3 days ago

Last modified

Share

Turn public website URLs into one structured technology-stack dataset row per URL for sales researchers, SEO operators, and AI agents. Each row returns categorized CMS, framework, analytics, CDN, ecommerce, JS library, and server signals with technology names, confidence, and optional evidence excerpts taken from the current public HTML and response headers.

Best fit for this Actor

  • Use this Actor when you already have https URLs and need a cheap, MCP-ready stack snapshot before enrichment, migration planning, or competitor research.
  • Designed for lean owned HTTP fingerprinting: predictable Pay per event pricing, caller-paid platform usage, and no paid catalog API balance to maintain.
  • Start with a single public storefront URL such as the Shopify Console prefill, then raise maxUrls for a bounded batch.
  • Continue with Website Stack Evidence Audit when the next step is a multi-page source-evidenced audit.
  • For a managed Domain Technologies catalog hybrid, then use Wappalyzer Alternative.

Practical scenario

A B2B SDR collects a short competitor domain list, runs this Actor once with maxUrls set to three, and keeps rows where Ecommerce or CMS matches Shopify or WordPress. The fingerprint pass returns technologyNames, categories, and short evidence snippets the SDR can trust from current public pages, then the team continues into an enrichment Actor.

Quick start input

{
"websiteUrls": ["https://www.shopify.com"],
"maxUrls": 3,
"includeEvidence": true
}

websiteUrls accepts full https URLs or bare domains. Prefer full https URLs. Duplicate URLs are deduped. maxUrls is the spend cap after dedupe.

Input reference

FieldTypeWhat it controls
websiteUrlsstring[]Public website URLs or bare domains to fingerprint. Prefill: https://www.shopify.com. Cap 50.
startUrlsrequest listOptional alias for websiteUrls using Apify request-list objects. Prefer websiteUrls for agents.
maxUrlsintegerHard cap on unique URLs after dedupe, 1–50. Default 25. Prefill 3.
includeEvidencebooleanWhen true, each technology includes a short public-signal evidence excerpt. Default true.
requestTimeoutSecsintegerPer-URL HTTP timeout, 5–60 seconds. Default 25. Prefill 20.
proxyConfigurationobjectOptional Apify proxy. Leave off for the default direct HTTPS path; enable Residential when a target challenges direct fetch.

What data you receive

Each dataset item is one public website fingerprint.

{
"inputUrl": "https://www.shopify.com",
"finalUrl": "https://www.shopify.com/",
"statusCode": 200,
"technologyCount": 4,
"technologyNames": ["Cloudflare", "Google Tag Manager", "Shopify"],
"categories": {
"CDN": ["Cloudflare"],
"Ecommerce": ["Shopify"],
"Tag manager": ["Google Tag Manager"]
},
"detectionMethod": "owned_http_fingerprinting",
"outcome": "DETECTED",
"matchFound": true
}
FieldMeaning
inputUrl / finalUrlRequested URL and post-redirect URL
technologyNamesFlat list of matched technologies
categoriesGrouped map such as CMS, Analytics, CDN, Ecommerce
technologiesName, category, confidence, optional evidence excerpt
technologyCountCount of matches
detectionMethodAlways owned_http_fingerprinting
routedirect or apify-proxy
statusCodeFinal HTTP status

OUTPUT and RUN_SUMMARY in the default key-value store hold outcome, itemsPushed, and charged event counts. Download the dataset as JSON, CSV, Excel, or HTML.

Use through the API

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~website-tech-stack-detector/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"websiteUrls":["https://www.shopify.com"],"maxUrls":1}'

Use with AI agents through Apify MCP

Detect the tech stack for https://www.shopify.com. Return technologyNames, categories, confidence, and evidence. Read the dataset overview view and OUTPUT.outcome after the run. Budget: one URL is about $0.01 event plus platform usage. Scope: public HTML and headers only. Provenance: detectionMethod equals owned_http_fingerprinting with scrapedAt and route.

Connect via https://mcp.apify.com. Tell the agent to keep maxUrls small on the first call and preserve finalUrl as the observed source URL.

Pricing

This Actor uses Pay per event plus Apify platform usage. The live Pricing tab is the current source of truth for billing details.

  • apify-actor-start: $0.00005 per run
  • tech-stack-detected (primary): $0.01 per successfully fingerprinted URL

A three-URL sample with three accepted rows is three tech-stack-detected events plus start and platform usage. Upstream catalog provider cost is $0 because detection is owned HTTP fingerprinting. Invalid inputs and fully unreachable targets skip the primary event.

Best results

  • Provide full https URLs when you already have them, and keep maxUrls tight while you confirm the output shape.
  • Start with the Shopify Console prefill, inspect technologyNames and evidence excerpts, then schedule the same input for a recurring competitor watch.
  • Pair Residential proxy only when a target challenges the direct HTTPS path; otherwise keep the default direct route for lower platform usage.
  • Confirm OUTPUT.outcome and itemsPushed before treating an empty dataset as a finished fingerprint pass.

Builder's note

I found that paid catalog hybrids already cover Domain Technologies enrichment in sibling Actors, so I designed this SKU as owned HTML and header fingerprinting only. I also found that conservative evidence-backed fingerprints keep every billed row tied to a public signal agents can inspect, which is why includeEvidence defaults to true and why the primary event fires only after a validated dataset row is ready to persist.

Responsible use

Use this Actor for lawful collection and analysis of public website responses you are authorized to access. Follow applicable laws and site terms. Shopify and WordPress are trademarks of their respective owners. This independent Actor is not affiliated with, associated with, or endorsed by Shopify Inc. or the WordPress Foundation.