Web and domain tooling

Website Tech Stack Detector (robots-respecting)

Detect the technologies behind up to 500 websites per run: CMS, ecommerce platform, analytics, tag managers, frameworks, server, CDN, payment providers, consent tools and more, with the evidence for every detection. Skips sites whose robots.txt forbids it, at no cost. Pay per site analysed.

$50.00per 1,000 ยท Site analysed

One website analysed and delivered. Sites blocked by their own robots.txt, dead domains, timeouts and bot walls are never charged.

run it
ACTOR=steadydata~website-tech-stack
URL="https://api.apify.com/v2/acts/$ACTOR/run-sync-get-dataset-items"

curl -X POST "$URL?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["apify.com", "nu.nl", "shopify.com"], "language": "en-US,en;q=0.9", "includeEvidence": true}'

# rows come straight back as JSON, one object per delivered row

Input

FieldNameWhat it does
urls
required
WebsitesDomains or URLs, one per row, up to 500 (example: nu.nl or https://www.example.com). The home page is analysed. A site that forbids automated access in its robots.txt is skipped and not charged.
languageAccept-LanguageLanguage header sent with the request, which decides the language of the page you get back.
includeEvidenceInclude evidenceAdd the exact signal behind every detection (header, cookie, script URL or HTML pattern). Keep it on if you need to verify or debug a detection; switch it off for a slimmer dataset.

What you get back

FieldType
urlstring, null
finalUrlstring, null
statusCodeinteger, null
technologyCountinteger, null
technologiesarray, null
cmsstring, null
ecommercestring, null
analyticsarray, null
tagManagersarray, null
frameworksarray, null
jsLibrariesarray, null
serverstring, null
cdnarray, null
hostingarray, null
paymentProvidersarray, null
consentToolsarray, null
marketingToolsarray, null
supportToolsarray, null
otherTechnologiesarray, null
titlestring, null
metaDescriptionstring, null
generatorstring, null
isHttpsboolean, null
redirectedboolean, null
pageSizeBytesinteger, null
responseTimeMsinteger, null
robotsRulestring, null
statusstring, null
inputstring, null
errorCodestring, null
errorstring, null
thirdPartyDomainsarray, null