Detect the Tech Stack of Any Website With One API Call

2026-04-25 | Tags: ["techstack", "api", "web", "tools", "automation"]

Detect the Tech Stack of Any Website With One API Call

Ever wondered what technologies power a website? Whether it's built with React or Vue, hosted on AWS or Vercel, running WordPress or a custom CMS? There are browser extensions for this, but if you need it in a script, pipeline, or automation — you need an API.

Quick Check

curl -s "https://hermesforge.dev/api/techstack?url=https://example.com" | python3 -m json.tool

Response:

{
  "url": "https://example.com",
  "technologies": [
    {"name": "Nginx", "category": "Web Server", "confidence": 100},
    {"name": "React", "category": "JavaScript Framework", "confidence": 95},
    {"name": "Next.js", "category": "Web Framework", "confidence": 90},
    {"name": "Vercel", "category": "Hosting", "confidence": 85},
    {"name": "Google Analytics", "category": "Analytics", "confidence": 100}
  ],
  "headers": {
    "server": "nginx",
    "x-powered-by": "Next.js"
  },
  "meta": {
    "generator": null
  }
}

Each technology includes a name, category, and confidence score. No API key needed.

What It Detects

The API identifies technologies across several categories:

Category Examples
Web Servers Nginx, Apache, LiteSpeed, Caddy
JavaScript Frameworks React, Vue, Angular, Svelte
Web Frameworks Next.js, Nuxt, Django, Rails, Laravel
CMS WordPress, Ghost, Drupal, Webflow
Hosting/CDN Vercel, Netlify, Cloudflare, AWS
Analytics Google Analytics, Plausible, Fathom
E-commerce Shopify, WooCommerce, Magento
Marketing HubSpot, Mailchimp, Intercom

Detection is based on HTTP headers, HTML meta tags, JavaScript globals, and other fingerprints.

Use Cases

Competitive Analysis

#!/bin/bash
# Check what your competitors are using
COMPETITORS=("competitor1.com" "competitor2.com" "competitor3.com")

for SITE in "${COMPETITORS[@]}"; do
  echo "=== $SITE ==="
  curl -s "https://hermesforge.dev/api/techstack?url=https://${SITE}" | \
    python3 -c "
import sys, json
data = json.load(sys.stdin)
for tech in data.get('technologies', []):
    print(f\"  {tech['category']}: {tech['name']} ({tech['confidence']}%)\")
"
  echo ""
done

Lead Qualification

If you sell developer tools or services, knowing a prospect's stack helps you personalize outreach:

# Check if a prospect uses React (your target market)
RESULT=$(curl -s "https://hermesforge.dev/api/techstack?url=https://prospect.com")
USES_REACT=$(echo "$RESULT" | python3 -c "
import sys, json
techs = json.load(sys.stdin).get('technologies', [])
print('yes' if any(t['name'] == 'React' for t in techs) else 'no')
")

if [ "$USES_REACT" = "yes" ]; then
  echo "Prospect uses React — good fit for our React component library"
fi

Audit Your Own Stack

# What does the outside world see about your tech stack?
curl -s "https://hermesforge.dev/api/techstack?url=https://mysite.com" | \
  python3 -c "
import sys, json
data = json.load(sys.stdin)
print('Technologies visible externally:')
for tech in data.get('technologies', []):
    print(f\"  {tech['name']} ({tech['category']})\")
print(f\"\nHeaders exposed: {list(data.get('headers', {}).keys())}\")
"

This is useful for security audits — you might be leaking technology information you'd rather keep private.

Batch Analysis

For analyzing multiple sites, combine with the screenshot batch endpoint:

#!/bin/bash
SITES=("github.com" "shopify.com" "vercel.com" "wordpress.com" "dev.to")

echo "site,frameworks,hosting,analytics"
for SITE in "${SITES[@]}"; do
  RESULT=$(curl -s "https://hermesforge.dev/api/techstack?url=https://${SITE}")
  FRAMEWORKS=$(echo "$RESULT" | python3 -c "
import sys,json
techs = json.load(sys.stdin).get('technologies',[])
print(','.join(t['name'] for t in techs if 'Framework' in t.get('category','')))
" 2>/dev/null)
  HOSTING=$(echo "$RESULT" | python3 -c "
import sys,json
techs = json.load(sys.stdin).get('technologies',[])
print(','.join(t['name'] for t in techs if 'Hosting' in t.get('category','') or 'CDN' in t.get('category','')))
" 2>/dev/null)
  ANALYTICS=$(echo "$RESULT" | python3 -c "
import sys,json
techs = json.load(sys.stdin).get('technologies',[])
print(','.join(t['name'] for t in techs if 'Analytics' in t.get('category','')))
" 2>/dev/null)
  echo "${SITE},${FRAMEWORKS},${HOSTING},${ANALYTICS}"
  sleep 1
done

Rate Limits

For most use cases, the free tier works without a key.


Try it: curl -s "https://hermesforge.dev/api/techstack?url=https://github.com" | python3 -m json.tool