Detect any website's tech stack via API at 1/30th the price of Wappalyzer
Sales teams need to know what CRM a prospect uses before they pitch. Competitive intelligence teams track which frameworks their rivals adopt. Investors screen portfolio companies for outdated infrastructure. All of these workflows depend on one input: *what technology does this website run?*
The established options are expensive. Wappalyzer charges \$450/month for API access. BuiltWith starts at \$295/month. If you need tech stack data for a few hundred domains per month, you're paying enterprise prices for a utility that should cost pocket change.
Botoi's technology detection API gives you the same data for \$0 to \$9/month. One POST request, one JSON response, no browser extension required.
One API call to detect a website's tech stack
curl -X POST https://api.botoi.com/v1/tech-detect \
-H "Content-Type: application/json" \
-d '{"url": "https://vercel.com"}' Response:
{
"success": true,
"data": {
"url": "https://vercel.com",
"technologies": [
{ "name": "Next.js", "category": "framework", "confidence": 95 },
{ "name": "Vercel", "category": "hosting", "confidence": 90 },
{ "name": "React", "category": "library", "confidence": 85 }
],
"categories": {
"framework": ["Next.js"],
"hosting": ["Vercel"],
"library": ["React"]
}
}
}
The response includes every detected technology with its category and a confidence score from 0 to 100.
Technologies are also grouped by category for quick lookups; if you want all the frameworks a site uses,
read data.categories.framework and move on.
Price comparison: technology detection APIs
| Provider | Monthly price | Included requests | Per-request cost |
|---|---|---|---|
| Wappalyzer | \$450 | 50,000 | \$0.009 |
| BuiltWith | \$295 | Varies by plan | ~\$0.006 |
| Botoi (free tier) | \$0 | ~7,200 (5/min) | \$0.000 |
| Botoi (Pro) | \$9 | 10,000 | \$0.0009 |
Wappalyzer and BuiltWith are established products with large technology databases and historical data. They're worth it if you need full dataset downloads or historical trend analysis. But if your use case is "scan a list of domains and get their current tech stacks," you don't need a \$450/month subscription.
Build a competitive intelligence dashboard
Here's a Node.js script that scans five competitor websites and builds a comparison table. You could run this on a schedule, pipe the output into a Slack channel, or store the results in a database to track changes over time.
const competitors = [
"https://linear.app",
"https://notion.so",
"https://figma.com",
"https://vercel.com",
"https://planetscale.com",
];
async function detectStack(url) {
const res = await fetch("https://api.botoi.com/v1/tech-detect", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
body: JSON.stringify({ url }),
});
return res.json();
}
async function buildReport() {
const results = [];
for (const url of competitors) {
const { data } = await detectStack(url);
results.push({
url: data.url,
framework: data.categories.framework?.[0] || "Unknown",
hosting: data.categories.hosting?.[0] || "Unknown",
technologies: data.technologies.map((t) => t.name),
});
}
console.table(results);
return results;
}
buildReport(); Output:
┌─────────┬───────────────────────────┬──────────┬─────────┬─────────────────────────┐
│ (index) │ url │ framework│ hosting │ technologies │
├─────────┼───────────────────────────┼──────────┼─────────┼─────────────────────────┤
│ 0 │ https://linear.app │ Next.js │ Vercel │ Next.js, React, Vercel │
│ 1 │ https://notion.so │ React │ AWS │ React, AWS, Cloudflare │
│ 2 │ https://figma.com │ Next.js │ Vercel │ Next.js, React, Vercel │
│ 3 │ https://vercel.com │ Next.js │ Vercel │ Next.js, React, Vercel │
│ 4 │ https://planetscale.com │ Next.js │ Vercel │ Next.js, React, Vercel │
└─────────┴───────────────────────────┴──────────┴─────────┴─────────────────────────┘ Run this weekly and diff the results. When a competitor switches from Heroku to Vercel, or adds Segment to their site, you'll know within a week instead of finding out months later.
Use case: qualify leads based on tech stack
If your product integrates with specific frameworks or platforms, you can score inbound leads by scanning their website before a sales rep makes contact. A company running React and HubSpot is a stronger fit than one running WordPress and no analytics.
async function qualifyLead(domain) {
const res = await fetch("https://api.botoi.com/v1/tech-detect", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY",
},
body: JSON.stringify({ url: `https://${domain}` }),
});
const { data } = await res.json();
const techNames = data.technologies.map((t) => t.name.toLowerCase());
// Score the lead based on tech stack fit
let score = 0;
const signals = [];
// Your product integrates with React apps
if (techNames.some((t) => ["react", "next.js", "gatsby"].includes(t))) {
score += 30;
signals.push("Uses React ecosystem");
}
// Enterprise signals
if (techNames.some((t) => ["salesforce", "marketo", "hubspot"].includes(t))) {
score += 20;
signals.push("Has marketing automation");
}
// Self-hosted signals suggest engineering maturity
if (techNames.some((t) => ["kubernetes", "docker", "nginx"].includes(t))) {
score += 15;
signals.push("Self-hosted infrastructure");
}
return { domain, score, signals, stack: data.technologies };
}
// Score a batch of leads
const leads = ["stripe.com", "shopify.com", "basecamp.com"];
const scored = await Promise.all(leads.map(qualifyLead));
scored.sort((a, b) => b.score - a.score);
console.log("Qualified leads (sorted by score):");
scored.forEach((lead) => {
console.log(` ${lead.domain}: ${lead.score} points`);
lead.signals.forEach((s) => console.log(` - ${s}`));
}); This approach lets your SDR team prioritize leads by technical fit before the first email. Enrich your CRM with tech stack data by running this script when a new lead enters your pipeline.
Python example
The API works with any HTTP client. Here's a Python version using the requests library:
import requests
def detect_tech(url: str, api_key: str) -> dict:
response = requests.post(
"https://api.botoi.com/v1/tech-detect",
headers={
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}",
},
json={"url": url},
)
return response.json()
result = detect_tech("https://shopify.com", "YOUR_API_KEY")
for tech in result["data"]["technologies"]:
print(f"{tech['name']:<20} {tech['category']:<15} {tech['confidence']}%") Output:
Shopify ecommerce 95%
Ruby on Rails framework 85%
Cloudflare cdn 90%
React library 80% What the API detects
The detection covers a wide range of technology categories:
- Frameworks: Next.js, Nuxt, Gatsby, Rails, Django, Laravel, Angular, Vue, Svelte
- CMS: WordPress, Shopify, Squarespace, Webflow, Ghost, Contentful
- Hosting and CDN: Vercel, Netlify, AWS, Cloudflare, Fastly, Google Cloud
- Analytics: Google Analytics, Segment, Mixpanel, Amplitude, Hotjar, Plausible
- Marketing: HubSpot, Marketo, Salesforce, Intercom, Drift, Mailchimp
- E-commerce: Shopify, WooCommerce, Magento, BigCommerce, Stripe
- Server: Nginx, Apache, Node.js, PHP, Cloudflare Workers
When to use this API vs. Wappalyzer
Choose Wappalyzer or BuiltWith if you need historical technology adoption data, bulk dataset exports, or Chrome extension functionality for your sales team's daily browsing. These are mature products with years of coverage data.
Choose the botoi technology detection API if you need:
- Programmatic tech stack lookups at low volume (under 10,000/month)
- Real-time detection in a pipeline or webhook workflow
- A cost-effective way to prototype a competitive intelligence tool
- Tech stack enrichment for your CRM without a \$450/month commitment
- A free tier to test before buying anything
The free tier gives you 5 requests per minute with no API key. That's enough to scan a list of 300 domains in an hour. For larger batches, the \$9/month plan covers 10,000 requests.
Frequently asked questions
- How does the technology detection API work?
- The API fetches the target URL, analyzes HTTP headers, HTML meta tags, JavaScript globals, and DOM patterns to identify technologies. It checks these signals against a database of known technology fingerprints and returns matches with confidence scores.
- Do I need an API key to use the tech detection endpoint?
- No. The free tier allows anonymous access at 5 requests per minute with IP-based rate limiting. For higher volume, paid plans start at $9/month for 10,000 requests.
- How accurate is the detection compared to Wappalyzer?
- The API uses similar fingerprinting techniques to Wappalyzer, including header analysis, JavaScript variable detection, and HTML pattern matching. Confidence scores range from 0 to 100, and the API returns all technologies it can identify along with their detection confidence.
- Can I detect technologies on pages behind authentication?
- The API fetches the publicly accessible version of the URL. Pages behind login walls, password protection, or IP whitelists will return only the technologies visible on the public-facing response (server headers, CDN signatures, etc.).
- What categories of technologies does the API detect?
- The API identifies technologies across categories including frameworks, libraries, CMS platforms, hosting providers, analytics tools, CDNs, JavaScript frameworks, CSS frameworks, e-commerce platforms, and server software.
Try this API
Domain Report API — interactive playground and code examples
More guide posts
Start building with botoi
150+ API endpoints for lookup, text processing, image generation, and developer utilities. Free tier, no credit card.