API 05 · Runs on Vercel
Website Intelligence
Fetches one page and applies about 50 deterministic fingerprints to HTML, script sources, the generator meta tag and response headers. Each technology carries a combined confidence and the exact evidence that matched. TLS details (subject, issuer, validity, SANs, protocol and cipher) come from a verified handshake to the same validated address.
GET https://dev.itsozy.lol/api/v1/intelligenceAuthentication
Send Authorization: Bearer ozy_… with an API key that includes the intelligence permission (or *). Signed-in dashboard sessions work in the playground. Each call costs 1 unit.
Parameters
| Name | Type | Description | |
|---|---|---|---|
url | query string | required | Public http(s) URL |
Example request
curl "https://dev.itsozy.lol/api/v1/intelligence?url=https://vercel.com" \
-H "Authorization: Bearer $OZY_KEY"
Example response (illustrative)
{
"technologies": [
{
"category": "Frontend framework",
"confidence": 1.0,
"evidence": [
{
"key": "/_next/",
"source": "html"
}
],
"name": "Next.js"
},
{
"category": "Hosting",
"confidence": 1.0,
"evidence": [
{
"key": "x-vercel-id",
"source": "header"
}
],
"name": "Vercel"
}
],
"tls": {
"certificate": {
"days_remaining": 61,
"issuer": "C=US, O=Let's Encrypt, CN=R11",
"protocol": "TLSv1_3"
},
"https": true
},
"url": "https://vercel.com/"
}
Errors
Errors use one envelope: {"error": {"code": "…", "message": "…"}}.
| Status | Code | Meaning |
|---|---|---|
| 403 | destination_blocked | URL resolves to a private, loopback, metadata or non-standard-port destination |
| 403 | robots_denied | The site's robots.txt disallows OzyScrape |
| 413 | response_too_large | Upstream response exceeded 2 MiB |
| 429 | domain_rate_limited | Wait one second between requests to the same host |
| 502 | upstream_failed | The site could not be reached |
| 504 | upstream_timeout | The site did not respond in time |
| 400 | invalid_input | A parameter is missing or invalid |
| 401 | unauthorized | No valid API key or session |
| 403 | permission_denied | The key does not include this API's permission |
| 429 | quota_exceeded | Free-tier quota reached (20 units/min, 100 units/day) |
| 503 | database_unavailable | Persistent storage is temporarily unavailable |
Rate limits
20 units per minute and 100 units per day per account; outbound fetches to the same host are spaced at least one second apart. Exceeding a limit returns 429.