Skip to main content

Changelog · September 30, 2026

Every result names the page it came from, after redirects

Store the page under its real address, not the one you happened to link to.

By · Last updated: September 2026

TL;DR

Ask for http://example.com and the page you get may live at https://www.example.com/en/. Every result now says where it ended up, after HTTP redirects and the page's own: the X-Final-Url response header on every endpoint and on GET /result, final_url in the webhook body, in a /scrape result beside the URL you asked for, and in /meta, which also resolves the page's relative links against it. The dashboard shows it on each request.

Free plan, no credit card. 1,000 credits a month.

Use it to deduplicate pages that several links lead to, to spot a link that now lands somewhere else, or to resolve the links inside a Markdown or HTML result. A cached answer carries the address of the visit that produced it.

Read it from the headers
curl -sD - -o /dev/null -X POST https://urlpipe.dev/markdown \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "http://github.com", "sync": true}' | grep -i x-final-url

FAQ

Frequently asked questions

Does it follow redirects made by JavaScript?
Yes. It is the address the browser shows once the page has loaded, so it includes redirects the page makes itself, not only HTTP ones.
Is it there when the page did not redirect?
Yes. It is then the requested URL as the browser normalized it, such as with a trailing slash.

Try it on the free plan.

Free plan, no card. Confirm your email and your API key is live — you'll be making real requests in minutes.