How to use it
- Paste a complete URL, including https:// or another scheme.
- Read the components table. Use the copy buttons to take a single part, such as the host name or path.
- Check the query parameters: values are shown decoded, in their original order, and repeated names are kept.
- Change, add or remove parameters, then copy the rebuilt URL.
How it works
The tool uses the URL parser built into your browser (the WHATWG URL Standard), so the result matches what browsers do when they follow a link. It normalises the URL the same way: the scheme and host name are lowercased, default ports such as 443 for https are dropped, and paths such as /a/../b are resolved.
The parts shown are the protocol (scheme), the username and password if the URL contains credentials, the host with its port, the host name alone, the port, the path, the query string starting with ?, the fragment starting with #, and the origin (scheme, host and port), which is what browsers use for same-origin security checks. The password is hidden until you click the eye button.
Query parameters are read with URLSearchParams. Values are percent-decoded and + is read as a space, as in HTML form submissions. Parameters that appear more than once, such as size=42&size=43, are listed separately and in order, because many servers read them as a list.
When you edit parameters, the query string is rebuilt with URLSearchParams too. This can change the spelling of parts you did not edit: a space is written as + and characters such as ' or ~ may be escaped differently. The meaning stays the same for servers that read form-encoded queries.
Host names with non-ASCII characters (internationalised domain names) are converted by the URL parser to punycode, for example münchen.de becomes xn--mnchen-3ya.de. The tool shows both forms.
Examples
Checking tracking parameters
Paste a campaign link such as https://example.com/?utm_source=newsletter&utm_medium=email&utm_campaign=spring+sale to see each utm_ value decoded (“spring sale”), remove the ones you do not need and copy the clean link.
Debugging a redirect URL
A login link contains redirect=https%3A%2F%2Fapp.example.com%2Fdashboard%3Ftab%3D2. The parameter table shows the decoded value https://app.example.com/dashboard?tab=2, so you can see exactly where the user will be sent.
Finding the origin for CORS
For https://api.example.com:8443/v1/users?id=7 the origin is https://api.example.com:8443. That exact string, without a path or trailing slash, is what an Access-Control-Allow-Origin header must match.
Frequently asked questions
What is the difference between host and hostname?
The hostname is only the domain or IP address (example.com). The host also includes the port when the URL specifies a non-default one (example.com:8443). For https://example.com:443/ both are example.com, because 443 is the default port for https and is removed.
Why does my URL show an error about a missing scheme?
Without a scheme such as https://, “example.com/page” is not an absolute URL, and “example.com:8080” would even be read as a URL with the scheme “example.com”. The tool offers to add https:// for you.
Why is + shown as a space in parameter values?
Query strings are usually read as form data (application/x-www-form-urlencoded), where + stands for a space. A literal plus sign must be sent as %2B. This is how URLSearchParams and most server frameworks behave.
What happens to parameters with the same name?
They are all kept, in their original order, and each gets its own row. Removing one row removes only that occurrence.
What is punycode?
DNS only supports ASCII host names, so internationalised domain names are encoded as labels that start with xn--. For example, bücher.example is sent as xn--bcher-kva.example. Browsers usually display the readable form in the address bar.
Privacy
The URL is parsed by your browser's built-in URL parser. Nothing is requested from the URL and nothing you paste is uploaded, stored or included in analytics.