URL Resolver API API
The URL Resolver API follows and analyzes links as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary resolve endpoint returns the redirect chain (URL, status, host, resolved IPs) to the final URL and domain, and you can normalize, detect an affiliate link, get a product_hint, a preview, a safety check and a full analysis. It is built for link analysis, affiliate tools and moderation that need to know where a link really goes. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, resolve, on .
{
"method": "POST",
"url": "https://api.reefapi.com/url-resolver/v1/resolve",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"url": "http://github.com"
}
}{
"ok": true,
"meta": {
"api": "url-resolver",
"endpoint": "resolve",
"mode": "live",
"latency_ms": 51,
"record_count": 1,
"bytes": 41,
"cache_hit": false,
"method": "manual_redirect_follow_curl_cffi_bare_dc",
"ssrf_guarded": true,
"hops": 0,
"stop_reason": "complete"
},
"data": {
"final_url": "http://github.com",
"final_domain": "github.com",
"redirect_chain": [
{
"url": "http://github.com",
"status": 200,
"host": "github.com",
"resolved_ips": [
"[redacted-phone]"
]
}
],
"status_codes": [
200
],
"hop_count": 0,
"content_type": null,
"is_short_link": false,
"redirect_loop": false,
"final_blocked": false,
"stop_reason": "complete"
}
}What the URL Resolver API API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| resolve | Follow the redirect chain to the final URL (hop-by-hop, every status observable). | Ops teams call resolve to get follow the redirect chain to the final URL (hop-by-hop, every status observable).. | url, max_hops |
| normalize | Resolve then strip tracking params (utm_*/fbclid/gclid…) → canonical URL. | Developer tools call normalize to resolve then strip tracking params (utm_*/fbclid/gclid…) → canonical URL.. | url, follow |
| detect_affiliate | Detect the affiliate network/params/merchant across the whole redirect chain, incl. first-party brand programs (influencer/seller deeplinks). | Validation workflows call detect_affiliate to detect the affiliate network/params/merchant across the whole redirect chain, incl. | url, follow |
| product_hint | Identify marketplace + product-id + the ReefAPI engine that can fetch the product. | Data-quality teams call product_hint to get identify marketplace + product-id + the ReefAPI engine that can fetch the product.. | url, follow |
| preview | Link unfurl: OpenGraph + Twitter-card title/description/image/favicon (Slack/Discord style). | Ops teams call preview to get link unfurl. | url |
| safety | Heuristic URL-risk flags (ip-host, non-https, punycode, userinfo, high-abuse TLD, long/multi-shortener chain, cross-domain) + risk level/score. | Developer tools call safety to get heuristic URL-risk flags (ip-host, non-https, punycode, userinfo, high-abuse TLD, long/multi-…. | url |
| full | One call: resolve + normalize + detect_affiliate + product_hint + preview + safety. | Validation workflows call full to get one call. | url, max_hops |
| batch | Resolve up to 20 URLs concurrently in one call — each URL is validated and resolved independently. | Data-quality teams call batch to resolve up to 20 URLs concurrently in one call. | urls |
Call resolve from your stack
curl -X POST https://api.reefapi.com/url-resolver/v1/resolve \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"url":"http://github.com"}'import requests
r = requests.post(
"https://api.reefapi.com/url-resolver/v1/resolve",
headers={"x-api-key": REEF_KEY},
json={
"url": "http://github.com"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/url-resolver/v1/resolve", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"url": "http://github.com"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.url-resolver.resolve with {"url":"http://github.com"}.Who uses this API and why
- Affiliate tools call detect_affiliate to identify and handle monetized links.
- Moderation uses safety to screen a shortened link before allowing it.
- Commerce uses product_hint to map a redirect to a product.
Questions developers ask before integrating
What is the URL Resolver API API?
URL Resolver API API is a ReefAPI endpoint group for url resolver api It returns live JSON through POST requests under /url-resolver/v1.
Is the URL Resolver API API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. URL Resolver API calls use the same shared credit balance as every other ReefAPI engine.
Do I need a URL Resolver API login or account?
No login to URL Resolver API is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the URL Resolver API data?
The page example is captured from a live resolve call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the URL Resolver API API use?
URL Resolver API actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call URL Resolver API from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call url-resolver actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the URL Resolver API API a URL Resolver API scraper?
It is the managed alternative to a DIY URL Resolver API scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same url resolver api back as clean JSON.
Why does my URL Resolver API scraper keep getting blocked?
Most URL Resolver API scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.