URL Parser

Break a URL into protocol, host, path, query parameters and fragment.

  • Runs in your browser
  • Free, no sign-up

Parts

Query parameters

Edit names and values to rebuild the URL.

Rebuilt URL
Paste a URL to start

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

  1. Paste a URLType or paste any address into the box. The parts update as you type.
  2. Read the partsThe Parts list shows each piece with a Copy button. The port shows the default when none is written.
  3. Check the parametersEach name and value in the query string gets its own row, with percent-encoding decoded.
  4. Edit if you wantChange a value, delete a row with ×, or add a new parameter. The rebuilt URL updates instantly.
  5. 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.

Frequently asked questions

What are the parts of a URL?
Scheme (https), optional user name and password, host (example.com), optional port (:8080), path (/products), query string (?color=red) and fragment (#reviews).
What is the difference between host and origin?
The host is the domain name, such as shop.example.com. The origin adds the scheme and port, such as https://shop.example.com:8443. Browsers use the origin for security rules.
Why does my domain show as xn--…?
Domains with non-ASCII letters are converted to punycode for DNS. münchen.example becomes xn--mnchen-3ya.example. Both forms point to the same site.
What does %20 mean?
It is a percent-encoded space. Characters that are not allowed in URLs are written as % and their UTF-8 bytes in hex, so é becomes %C3%A9.
Can it handle repeated parameters?
Yes. tag=a&tag=b gives two rows, both named tag, and they stay in their original order when you rebuild the URL.
What if I paste a URL without https://?
The parser assumes https:// and tells you so in the status line. Addresses like example.com:8080 and localhost:3000 are read as host and port.
Why is my URL not valid?
Common causes are spaces or other forbidden characters in the host name, a port above 65535, or text that is not an address at all.
Is the URL sent anywhere?
No. It is parsed in your browser, and the tool never opens or requests it.