I wanted to analyze what technologies my competitors use — programmatically, across multiple domains.
I started looking for an API. The first quote I got was $295/month — from BuiltWith. Wappalyzer wanted $250/month.
A quick note: BuiltWith is a different product — it maintains a massive historical database of 68K+ technologies by crawling the web over years. If you need to know what a site used in 2019, BuiltWith is your only option. I needed real-time detection — visit a URL right now and analyze what's actually running. Different problem.
I checked RapidAPI for real-time alternatives. The top result had a 1-star rating. Another one offered a free tier of 4 requests per month. Four. Per month.
So I did what any developer would do. I built my own.
Here's What a Real Scan Returns
Before I explain how it works — here's a real scan of vercel.com:
curl "https://stackxray-api.p.rapidapi.com/api/v1/detect?url=vercel.com" \
-H "X-RapidAPI-Key: YOUR_KEY" \
-H "X-RapidAPI-Host: stackxray-api.p.rapidapi.com"
{
"url": "https://vercel.com",
"status": 200,
"scan_time_ms": 585,
"technologies": [
{ "name": "Next.js", "category": "JavaScript frameworks", "confidence": 100 },
{ "name": "Vercel", "category": "PaaS", "confidence": 100 },
{ "name": "React", "category": "JavaScript frameworks", "confidence": 50 },
{ "name": "HSTS", "category": "Security", "confidence": 100 }
],
"summary": {
"total_technologies": 8,
"categories": {
"JavaScript frameworks": ["Next.js", "React"],
"PaaS": ["Vercel", "Amazon Web Services"],
"Security": ["HSTS"],
"CDN": ["Amazon S3"],
"Analytics": ["Linkedin Insight Tag"]
}
}
}
585ms. 8 technologies. One API call.
Going Deeper: Infrastructure Analysis
Most tech detection tools stop at "this site uses React."
That wasn't enough for my use case. I needed to know where it's hosted, what serves it, how it's secured. So I built the /detect/detailed endpoint:
{
"technologies": ["..."],
"dns_info": {
"mx_records": ["mxa.global.inbound.cf-emailsecurity.net"],
"ns_records": ["ns3.cloudflare.com", "ns4.cloudflare.com"],
"a_records": ["104.16.124.96", "104.16.123.96"],
"dns_provider": "Cloudflare DNS"
},
"ssl_info": {
"issuer_org": "Let's Encrypt",
"protocol_version": "TLSv1.3",
"days_until_expiry": 64,
"is_valid": true
},
"server_info": {
"server_software": "Cloudflare",
"hsts": true,
"compression": "br"
},
"cdn_info": {
"detected": true,
"provider": "Cloudflare"
},
"hosting_info": {
"ip": "104.16.124.96",
"asn_org": "CLOUDFLARENET",
"hosting_provider": "Cloudflare"
}
}
DNS records, SSL certificates, CDN, hosting provider, server software — one call. No other tech detection API on RapidAPI does this.
Under the Hood
Detection Engine
The core uses Wappalyzer's open-source fingerprint database — 7,513 technologies, pre-compiled at startup. Each fingerprint checks:
-
HTTP headers —
Server: nginx,X-Powered-By: Express -
Cookies —
PHPSESSID,laravel_session -
HTML patterns —
<meta name="generator" content="WordPress"> -
Script sources —
/wp-content/,/_next/ - Implied technologies — Next.js implies React implies JavaScript
As mentioned earlier — this is real-time detection, not historical tracking. StackXray visits the URL and analyzes what's running right now.
Infrastructure Detectors
On top of fingerprinting, 5 custom detectors run in parallel: DNS records, SSL certificate parsing, server header analysis, CDN detection via header signatures, and hosting provider identification via ASN lookup.
Stack
Python 3.12 + FastAPI (fully async), httpx with HTTP/2, pre-compiled regex for all 7,513 fingerprints, in-memory cache (24h TTL), and SSRF protection blocking private IPs and metadata endpoints.
Why It's 30x Cheaper
BuiltWith charges $295/month. Wappalyzer charges $250/month. StackXray starts at $0 with a free tier of 100 requests/month. The first paid plan is $10/month.
- No enterprise sales team. Just an API and documentation.
- No bloated dashboards. You get clean JSON — build your own UI.
- No marketing department. You're reading a dev.to post, not a $50K landing page.
- Runs on Railway. Total hosting cost: $5/month.
- Async Python. One server handles concurrent scans efficiently.
- Open-source fingerprints. Wappalyzer's community maintains the database for free.
- One developer. Me.
Enterprise tools are built for enterprise workflows — dashboards, team management, SLAs, account managers. If you just need clean JSON from an API — you probably don't need enterprise pricing.
The Full Comparison
BuiltWith is excluded — it's a historical database product, not a real-time detection API.
| Wappalyzer API | RapidAPI alternatives | StackXray | |
|---|---|---|---|
| Basic paid plan | $250/mo | $10-20/mo | $10/mo |
| Free tier | No | 4 req/mo | 100 req/mo |
| Technologies | 5K+ | 900 | 7,500+ |
| DNS/SSL/CDN analysis | No | No | Included |
| Bulk scanning | No | No | 25 URLs/request |
| Response time | 1-3s | 1-2s | < 2s |
| Endpoints | 1 | 1 | 6 |
6 Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET |
/detect?url= |
Detect technologies (basic) |
GET |
/detect/detailed?url= |
Technologies + DNS, SSL, CDN, hosting |
POST |
/detect/bulk |
Scan up to 25 URLs in parallel |
GET |
/categories |
List all 108 technology categories |
GET |
/technologies |
Browse all 7,500+ technologies |
GET |
/health |
Service health check |
Code Examples
Python — Scan a Single URL
import requests
url = "https://stackxray-api.p.rapidapi.com/api/v1/detect"
headers = {
"X-RapidAPI-Key": "YOUR_API_KEY",
"X-RapidAPI-Host": "stackxray-api.p.rapidapi.com"
}
response = requests.get(url, headers=headers, params={"url": "github.com"})
data = response.json()
for tech in data["technologies"]:
print(f"{tech['name']} ({tech['category']}) — {tech['confidence']}%")
JavaScript — Quick Lookup
const response = await fetch(
'https://stackxray-api.p.rapidapi.com/api/v1/detect?url=github.com',
{
headers: {
'X-RapidAPI-Key': 'YOUR_API_KEY',
'X-RapidAPI-Host': 'stackxray-api.p.rapidapi.com'
}
}
);
const { technologies, summary } = await response.json();
console.log(`Found ${summary.total_technologies} technologies`);
technologies.forEach(t => console.log(` ${t.name} — ${t.category}`));
Python — Bulk Scan 25 URLs
import requests
url = "https://stackxray-api.p.rapidapi.com/api/v1/detect/bulk"
headers = {
"X-RapidAPI-Key": "YOUR_API_KEY",
"X-RapidAPI-Host": "stackxray-api.p.rapidapi.com",
"Content-Type": "application/json"
}
response = requests.post(url, json={
"urls": ["github.com", "vercel.com", "shopify.com"]
}, headers=headers)
for result in response.json()["results"]:
print(f"{result['url']} — {result['summary']['total_technologies']} technologies")
Who Is This For
If you're building SaaS or internal tools:
- Add "tech stack lookup" as a feature in your product
- Enrich your database with technographic data
- Monitor competitor infrastructure changes
If you're in sales or lead generation:
- Qualify leads by technology ("Show me all Shopify stores using Stripe")
- Segment prospects by infrastructure maturity
- Bulk-scan lead lists before outreach
If you're a developer or researcher:
- Analyze what frameworks power the top 100 SaaS companies
- Audit SSL/HSTS configurations across your client portfolio
- Build automated monitoring for technology changes
Try It
StackXray is live on RapidAPI with 100 free requests/month — no credit card required.
If you're building SaaS tools, automation pipelines, or competitive intelligence software — this might save you hundreds per month compared to enterprise alternatives.
Get your free API key on RapidAPI
If the free tier isn't enough, paid plans start at $10/month — cancel anytime.
Questions? Drop a comment or reach me on Twitter/X.
One developer. Python + FastAPI. Railway for $5/month. 7,513 technologies. Sometimes the best alternative to an expensive product is just building it yourself.
Top comments (0)