Honest by design
When a destination is hidden by browser security, this tool says so instead of faking data.
Check whether a URL redirects, see what your browser can and can't reveal about it, or paste your own hop list to render a clean step-by-step redirect diagram.
Enter a URL to test it directly from your browser.
Paste URLs one per line, or raw curl -IL output — Location headers are extracted automatically.
When a destination is hidden by browser security, this tool says so instead of faking data.
Try a live check first, then fall back to a pasted hop list for the full chain diagram.
Paste raw curl -IL text and Location headers are pulled out automatically.
Start with the live check, and use the hop list tool whenever the browser can't tell you enough.
A browser's fetch API gives JavaScript exactly two options for a cross-origin redirect: follow it automatically and only see the final URL, or inspect it manually and receive an opaque "opaqueredirect" response with the status, headers and destination all hidden. Neither option lets a webpage walk through every intermediate hop the way a command-line tool can, because that information could otherwise be used to fingerprint or snoop on requests the browser is making on the user's behalf.
fetch(url, {redirect: 'manual'}) confirms a redirect exists via response.type === 'opaqueredirect', but reveals nothing about where it points.
A normal fetch() follows every hop silently and exposes only response.url, the final destination — not the path taken to get there.
Running outside the browser sandbox, curl can print every hop's status code and Location header in one command with full visibility.
Since the data curl provides is exactly what a diagram needs, this page's second tool turns pasted hops into a clean visual chain instead of re-fetching anything.
Questions about browser limits, curl and how the hop list parser works.
When JavaScript asks a browser for a manual, unfollowed redirect response, the browser deliberately returns an opaque "opaqueredirect" result that hides the destination URL, status code and headers. This is a security feature, not a bug, and no client-side script can bypass it.
It means the manual-redirect fetch confirmed a redirect is happening (the browser reported an opaqueredirect response), but the browser's security model prevents this page's JavaScript from reading where it points.
Run curl -IL https://example.com/your-url from a terminal. It prints every hop's status code and Location header outside the browser sandbox. You can then paste that output, or just the URLs from it, into the hop list tool below to get a clean diagram.
One URL per line works directly. It also understands raw curl -IL output: any line starting with Location: has its URL extracted automatically, so you can paste the whole terminal output without cleaning it up first.
No. The live check makes requests directly from your browser to the URL you enter, with no proxy or server in between. The hop list tool never makes a network request at all; it only formats text you paste.