WHAT IT DOES
Every part of a URL, and every parameter decoded.
Paste a URL and it is split into scheme, host, port, path, query, and fragment, with each path segment and query parameter percent-decoded so you can read the values your server will actually receive. A bare query string works too, with or without its leading question mark. Parsing uses the browser's own URL implementation, so the result matches what fetch, a redirect, or a same-origin check would see rather than an approximation of it. Parameters that look like credentials are flagged, because a query string is the one place a secret should never be.
Why use it?
A long URL can hide repeated parameters, encoded values, or an unexpected destination. Inspect its components before sharing it or constructing a request.
How to use this tool
- Paste the complete URL into the input.
- Inspect its host, path, query entries, and fragment; the page does not fetch the destination.
- Copy the individual values you need. Preserve repeated query parameters when the receiving service expects more than one value.
Details and limitations
- Query values are shown percent-decoded, with + read as a space, which is how a form-encoded query string is meant to be read, and the raw text is shown alongside wherever decoding changed it.
- A bare flag such as ?debug is distinguished from ?debug=, which carries an equals sign and nothing after it. Most parsers flatten both to an empty string, so the difference is invisible unless something shows you the query string as it was actually sent.
- A parameter that appears more than once is listed once per occurrence and flagged, since servers disagree about which one wins.
- Analytics and ad-click parameters such as utm_source, fbclid, and gclid are marked as tracking. They identify the visit rather than the resource, so the URL points at the same thing without them.
- When a URL carries tracking parameters, one button strips them and copies the cleaned URL. Only tracking is removed: a parameter that merely looks like a credential is left alone, since taking it out would usually break the link.
- The total length is reported with the part responsible for it, and called out past 2,000 characters. That is a compatibility heuristic rather than a limit: nothing breaks at 2,001, but below it you can stop thinking about the question.
- Parameters can be removed one at a time, stripped of tracking in one go, sorted, or added, and the rebuilt URL follows every edit. Reset restores what you pasted.
- A parameter you did not touch is rebuilt from its original text rather than re-encoded, so hello+world stays hello+world instead of becoming hello%20world.
- Parameters whose names suggest a credential are marked. A query string may appear in server logs, browser history, analytics, and referrer data depending on the referrer policy. Names are matched as whole words, so monkey is not read as a key.
- A parameter carrying another URL, such as redirect_uri or next, is called out, because an unvalidated value there is an open redirect.
- The port is shown even when the URL omits it, labelled as implied by the scheme rather than present in the text.
- A punycode hostname is flagged as representing an internationalized domain name, since a name that renders as familiar text may not be the domain it appears to be.