About the URL Parser
The URL Parser splits a web address into its parts: the scheme, user name and password, host, port, origin, path, query string and fragment. Every query parameter is listed with its decoded value, and you can edit, add or remove parameters to build a new link.
It is useful for debugging links in code and APIs, checking what tracking parameters a marketing link carries, finding the real destination in a long redirect URL, cleaning a link before you share it, and understanding how international domain names and percent-encoding work.
Parsing follows the WHATWG URL Standard, the same rules your browser uses, so what you see here is how browsers and most modern libraries read the address. Nothing is fetched or sent anywhere; the tool only reads the text you paste.
How to use it
- Paste a URLType or paste any address into the box. The parts update as you type.
- Read the partsThe Parts list shows each piece with a Copy button. The port shows the default when none is written.
- Check the parametersEach name and value in the query string gets its own row, with percent-encoding decoded.
- Edit if you wantChange a value, delete a row with ×, or add a new parameter. The rebuilt URL updates instantly.
- Copy the resultCopy the rebuilt URL, or click Use as input to parse it again.
Key features
Every part of a URL
Scheme, user name, password, host, port, origin, path, path segments, query string and fragment.
Decoded values
Parameters like q=caf%C3%A9 are shown as café, and repeated names such as tag=a&tag=b are kept as separate rows.
International domains
A host like münchen.example is shown in the punycode form computers use (xn--mnchen-3ya.example) next to the form you typed.
Parameter editor
Change, add or remove parameters and get a correctly encoded URL back.
Forgiving input
Addresses without a scheme, like example.com:8080/path or localhost:3000, are read as https:// links, and the status line says so.
Private by design
The URL is parsed in your browser and never requested or stored.
Examples
A shop link
https://shop.example.com:8443/products/running-shoes?color=red&size=10&utm_source=newsletter#reviews
Scheme https
Host shop.example.com
Port 8443
Origin https://shop.example.com:8443
Path /products/running-shoes
Query string color=red&size=10&utm_source=newsletter
Fragment reviews
The status line says "Valid URL" and "3 parameters". Without :8443, the port row would show 443 (default), because that is the standard port for https.
Editing parameters
Take https://shop.example.com/products?color=red&size=10&utm_source=newsletter, remove the utm_source row and change the color to "navy blue". The rebuilt URL is:
https://shop.example.com/products?color=navy+blue&size=10
The space became a +, which is how form-style query strings encode spaces. Servers read it back as a space.
International and encoded addresses
Host münchen.example → xn--mnchen-3ya.example (plus "Host as typed")
Path /straße → /straße, sent as /stra%C3%9Fe
q=caf%C3%A9%20cr%C3%A8me → q = café crème
Path /a%2Fb/c → /a%2Fb/c, segments "a/b" and "c"
An encoded slash (%2F) stays encoded in the path, because it is part of a segment name, not a separator.
A link inside a link
Redirect and email-tracking links often carry the real destination in a parameter:
https://example.com/out?url=https%3A%2F%2Fshop.example.com%2Fsale%3Fid%3D7&src=mail
The Host row says example.com, the site you would visit first. The url parameter decodes to https://shop.example.com/sale?id=7, the page you end up on, and src = mail is a tracking value. Paste the decoded value back into the box to parse the destination itself.
Other schemes
mailto:hello@example.com?subject=Hi has no host, port or origin, so only the scheme, the path (hello@example.com), the query string and one parameter, subject = Hi, are listed.
Tips
- Strip tracking parameters such as utm_source, fbclid or gclid before sharing a link in public. Delete their rows and copy the rebuilt URL.
- When a link contains another URL in a parameter, such as ?redirect=https%3A%2F%2F…, the decoded value shows where it really points.
- Look at the Host row, not the start of the address, to see which site a link goes to. https://example.com.evil.example/ belongs to evil.example.
- Use the Origin when setting up CORS or a Content-Security-Policy; it is the scheme, host and port together.
- To encode or decode a single value rather than a whole URL, use the URL Encoder or URL Decoder.
Common mistakes and limits
- Putting passwords in URLsA user:password@ part is visible in browser history, server logs and to anyone you share the link with. Most browsers also warn about it.
- Expecting the fragment to reach the serverEverything after # stays in the browser. Servers never see it, so it cannot carry data for them.
- Decoding a whole URL at onceDecoding %2F, %3F or %26 everywhere changes where a URL splits. Decode each parameter value separately, as the parser does.
- Mixing + and %20In query strings, + usually means a space. In paths it is a literal plus sign. Encode spaces in paths as %20.
- Trusting a link because it starts with a known nameThe real host is the part right before the first single slash, after any user name and before any port. Check the Host row.