Website Technology Detector API
Find out what a website runs on: CMS, e-commerce platform (Shopify, Haravan, Sapo…), JS framework, analytics, chat widgets, CDN and web server.
Give a url and the API fetches that one page and matches about 170 fingerprints against the response headers, cookie names, <meta name="generator">, script and stylesheet URLs and the HTML. It recognises CMS and site builders (WordPress, Drupal, Joomla, Wix, Webflow, Ghost…), e-commerce platforms including the Vietnamese ones (Haravan, Sapo / Bizweb, LadiPage, Nhanh.vn), JavaScript frameworks (Next.js, Nuxt, Angular, SvelteKit, Astro…), analytics and pixels (Google Analytics, Tag Manager, Meta, TikTok, Clarity), chat widgets (Zalo, Messenger, Subiz, Tawk.to), CDN and hosting (Cloudflare, Fastly, CloudFront, Vercel, Netlify), web servers, back-end languages, payment SDKs and captchas.
Each technology comes with a category, a confidence from 0 to 100, the version when the page shows it (for example WordPress 6.8, PHP/8.2, ng-version) and the evidence that matched, so you can check the result yourself. Implied technologies are added (WooCommerce → WordPress → PHP). categories=ecommerce,cms keeps only some categories. To analyse a page you already have, POST its html and optionally its headers instead of a URL.
Only one page is read (up to 1.5 MB) and JavaScript is not executed, so tools loaded later by a tag manager may be missed. Sites behind a bot challenge only show their CDN. The fingerprint table is our own; Vietnamese payment wallets (VNPAY, MoMo, ZaloPay) are usually only visible as logos and are reported with low confidence.
Parameters
| Name | In | Type | Required | Default | |
|---|---|---|---|---|---|
url | query | string | yes | Page to analyse (https:// is added when missing). Required unless html is sent. | |
html | body | string | no | HTML to analyse instead of fetching a URL (max 3,000,000 characters). | |
headers | body | object | no | With html: response headers as an object or "Name: value" lines (Set-Cookie included). | |
cookies | body | array | no | With html: cookie names (array or comma-separated). | |
categories | query | string | no | Comma-separated filter, e.g. ecommerce,cms,analytics,cdn,framework,chat,payment. |
Example
curl "https://apibox.io.vn/v1/tech-detect?url=https://bitis.com.vn" \
-H "Authorization: Bearer YOUR_API_KEY"const res = await fetch('https://apibox.io.vn/v1/tech-detect?url=https://bitis.com.vn', {
method: 'GET',
headers: {
Authorization: 'Bearer YOUR_API_KEY',
},
});
const data = await res.json();
console.log(data);import requests
res = requests.get(
"https://apibox.io.vn/v1/tech-detect?url=https://bitis.com.vn",
headers={"Authorization": "Bearer YOUR_API_KEY"},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/tech-detect?url=https://bitis.com.vn');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Response
{
"source": "fetch",
"url": "https://bitis.com.vn",
"final_url": "https://bitis.com.vn/",
"status": 200,
"redirects": 0,
"response_ms": 526,
"html_bytes": 303941,
"count": 9,
"technologies": [
{
"name": "Google Analytics",
"category": "analytics",
"confidence": 100,
"version": null,
"website": "https://marketingplatform.google.com/about/analytics",
"evidence": [
"url https://www.googletagmanager.com/gtag/js?id=G-M6FR2XMHTB",
"html: gtag('config', 'G-M6FR2XMHTB'"
]
},
{
"name": "OpenResty",
"category": "web-server",
"confidence": 100,
"version": null,
"website": "https://openresty.org",
"evidence": [
"header server: openresty"
]
},
{
"name": "Haravan",
"category": "ecommerce",
"confidence": 95,
"version": null,
"website": "https://haravan.com",
"evidence": [
"html: cdn.hstatic.net"
]
},
{
"name": "Meta Pixel",
"category": "analytics",
"confidence": 95,
"version": null,
"website": "https://facebook.com/business/tools/meta-pixel",
"evidence": [
"html: connect.facebook.net/en_US/fbevents.js"
]
},
{
"name": "Nginx",
"category": "web-server",
"confidence": 80,
"version": null,
"website": "https://nginx.org",
"evidence": [
"implied by OpenResty"
]
}
],
"categories": {
"security": [
"Content Security Policy",
"HSTS"
],
"analytics": [
"Google Analytics",
"Meta Pixel"
],
"web-server": [
"OpenResty",
"Nginx"
],
"tag-manager": [
"Google Tag Manager"
],
"ecommerce": [
"Haravan"
],
"js-library": [
"jQuery"
]
},
"notes": [],
"method": "Fingerprints of 167 technologies matched on the response headers, cookie names, meta generator, script / stylesheet URLs and HTML of one page; JavaScript is not executed. Confidence below 50 means a weak hint (e.g. a payment logo)."
}
Use cases
- Qualify leads by the e-commerce platform their shop runs on
- Audit the tracking pixels and tags installed on a client site
- Check which CDN, server and framework a competitor uses
- Enrich a list of domains with CMS and hosting data
FAQ
How accurate is the detection?
Markers in headers, cookies and the generator tag are reliable (confidence 90–100). Matches in the HTML are hints; anything below 50 is weak, such as a payment logo.
Why is a tool I know is installed missing?
Only the HTML of one page is read and scripts are not run, so tags injected by Google Tag Manager or loaded on other pages are not visible.
Can I send my own HTML?
Yes. POST html (and optionally headers as an object or "Name: value" lines) to analyse a page without fetching it.
Related APIs
URL Metadata
Fetch any URL and get its title, description, Open Graph and Twitter Card tags, favicon, canonical, feeds and JSON-LD as JSON.
H:HTTP Headers
See the HTTP status and every response header of a URL, with a summary of security headers like HSTS, CSP and X-Frame-Options.
301Redirect Checker
Follow every 301, 302, 307 and 308 redirect of a URL and get the full chain with status codes, the final URL and the number of hops.