Need to know if a prospect is using WordPress or Shopify? React or Angular? Nginx or Cloudflare? One API call tells you — and gives you a confidence score for each detection.
The problem: website tech stack detection is tedious
If you're doing sales prospecting, lead enrichment, or competitive intelligence, you've probably ended up in this loop:
- Open the site in a browser
- View source, grep for
wp-content(WordPress?) or__next(Next.js?) - Open DevTools, check response headers for
X-Powered-By - Install Wappalyzer browser extension... but that only works in the browser
- Realize you need to do this for 500 leads
There's a better way. One POST request.
TechStackDetect API: what it does
TechStackDetect analyzes any public website URL and returns:
- 5,000+ technology signatures — frameworks, CMS, CDN, analytics, hosting, security, and more
- Confidence scores (0.0–1.0) — so you know how certain each detection is
- Version numbers when detectable
- 48 categories — frontend, backend, hosting, ecommerce, monitoring, marketing, and more
Quick start: 3 lines of code
import requests
resp = requests.post(
"https://techstackdetect1.p.rapidapi.com/detect",
json={"url": "https://notion.so"},
headers={
"X-RapidAPI-Key": "YOUR_RAPIDAPI_KEY",
"X-RapidAPI-Host": "techstackdetect1.p.rapidapi.com",
}
)
for tech in resp.json()["technologies"]:
print(f"{tech['name']} ({tech['category']}) — confidence: {tech['confidence']:.0%}")
Output:
Next.js (frontend) — confidence: 95%
Vercel (hosting) — confidence: 95%
AWS (Amazon Web Services) (cdn) — confidence: 90%
HTTP/3 (server) — confidence: 90%
Google Tag Manager (analytics) — confidence: 75%
Real-world example: detect woocommerce.com's full stack
curl -X POST https://techstackdetect1.p.rapidapi.com/detect \
-H "Content-Type: application/json" \
-H "X-RapidAPI-Key: YOUR_RAPIDAPI_KEY" \
-H "X-RapidAPI-Host: techstackdetect1.p.rapidapi.com" \
-d '{"url": "https://woocommerce.com"}'
{
"url": "https://woocommerce.com",
"technologies": [
{"name": "WordPress", "category": "cms", "confidence": 0.95, "version": "6.7"},
{"name": "Nginx", "category": "server", "confidence": 0.95},
{"name": "Google Tag Manager", "category": "analytics", "confidence": 0.90},
{"name": "Yoast SEO", "category": "seo", "confidence": 0.75}
]
}
Use case 1: Sales Prospecting
API_KEY = "YOUR_RAPIDAPI_KEY"
HEADERS = {
"X-RapidAPI-Key": API_KEY,
"X-RapidAPI-Host": "techstackdetect1.p.rapidapi.com",
}
def detect_tech_stack(url):
r = requests.post(
"https://techstackdetect1.p.rapidapi.com/detect",
json={"url": url},
headers=HEADERS,
)
return r.json().get("technologies", [])
def get_cms(url):
techs = detect_tech_stack(url)
cms = [t["name"] for t in techs if t["category"] == "cms"]
return cms[0] if cms else "Unknown"
leads = ["https://acme.com", "https://globex.com", "https://initech.com"]
for lead in leads:
print(f"{lead}: {get_cms(lead)}")
Use case 2: Competitive intelligence
def uses_technology(url, tech_name):
techs = detect_tech_stack(url)
return tech_name.lower() in [t["name"].lower() for t in techs]
sites = ["https://stripe.com", "https://twilio.com", "https://sendgrid.com"]
for site in sites:
print(f"{site} uses HubSpot: {uses_technology(site, 'HubSpot')}")
Use case 3: Async batch enrichment
import asyncio, httpx
async def detect_batch(urls):
async with httpx.AsyncClient() as client:
tasks = [client.post("https://techstackdetect1.p.rapidapi.com/detect", json={"url": u}, headers=HEADERS) for u in urls]
responses = await asyncio.gather(*tasks)
return [r.json() for r in responses]
urls = ["https://notion.so", "https://linear.app", "https://figma.com"]
results = asyncio.run(detect_batch(urls))
for r in results:
print(r["url"], "→", len(r["technologies"]), "techs")
Pricing
| Plan | Price | Requests |
|---|---|---|
| BASIC | Free | 100/day |
| PRO | $19/mo | 5,000/day |
| ULTRA | $79/mo | 50,000/day |
Top comments (0)