API Reference
Resolve short URLs, follow redirect chains, detect phishing risks
Base URL
https://peek.zillies.dev/api
Rate Limits
Tier
Limit
Reset
User
500
requests / day
Rolling 24h
Endpoints
GET
/resolve
Resolve a shortened URL
▼
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | required | URL to resolve. https:// is auto-prepended if missing. |
Query string: /api/resolve?url=https://bit.ly/example
inputstringThe original URL submitted
finalstringThe resolved final destination URL
hopsnumberNumber of redirects followed
chainarrayEach hop: url, status, contentType, redirectsTo, suspiciousFlags
flagsobjectsuspicious, phishing, malware booleans + warning items array
resolvedAtstringISO 8601 timestamp of resolution
200Successfully resolved
400Invalid or missing url parameter
429Rate limit exceeded
502Failed to resolve (network error)
Request
GET /api/resolve?url=https://bit.ly/example
Response
{
"input": "https://bit.ly/example",
"final": "https://vignettinglife.com/",
"hops": 3,
"chain": [
{
"url": "https://bit.ly/example",
"status": 301,
"contentType": "text/html; charset=utf-8",
"redirectsTo": "http://vignettinglife.com/",
"suspiciousFlags": []
},
{
"url": "http://vignettinglife.com/",
"status": 301,
"contentType": "text/html",
"redirectsTo": "https://vignettinglife.com/",
"suspiciousFlags": []
},
{
"url": "https://vignettinglife.com/",
"status": 200,
"contentType": "text/html; charset=UTF-8",
"isFinal": true,
"suspiciousFlags": []
}
],
"flags": {
"suspicious": false,
"phishing": false,
"malware": false,
"items": []
},
"resolvedAt": "2026-05-24T05:46:14.360Z"
}
POST
/resolve/batch
Resolve up to 20 URLs
▼
| Body field | Type | Required | Description |
|---|---|---|---|
| urls | string[] | required | Array of URLs to resolve. Max 20. Each URL costs 1 quota slot. |
Content-Type: application/json
Request
POST /api/resolve/batch
Content-Type: application/json
{
"urls": [
"https://bit.ly/abc",
"https://t.co/xyz"
]
}
Response
{
"results": [ /* array of resolve objects */ ],
"count": 2
}
GET
/preview
Fetch Open Graph metadata
▼
| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | required | URL to fetch Open Graph / meta tags from |
inputstringOriginal URL submitted
titlestringPage or OG title
descriptionstringMeta or OG description
imagestringOG image URL
faviconstringFavicon URL
siteNamestringOG site name
finalUrlstringResolved URL after following redirects
GET
/status
API health + your rate limit
▼
{
"status": "ok",
"remaining": 238,
"limit": 500,
"resetAt": "2026-05-25T00:00:00.000Z"
}