URL Parser

Break a messy URL into readable parts: host, path, and every query param

Overview

protocol
https
host
shop.example.com
port
8443
path
/en/products/running shoes/
fragment
reviews

Path segments3

1
en
2
products
3
running shoes

Query parameters10

utm_source
newsletter
utm_medium
email
utm_campaign
spring_sale_2026
q
red trail shoes
size
42repeated
size
43repeated
sort
price_asc
redirect_uri
https://accounts.example.com/callback?state=xyz
state
eyJyZXR1cm5UbyI6Ii9jYXJ0IiwiY2FydElkIjoiYzE5MiJ9
Base64, decoded
{
  "returnTo": "/cart",
  "cartId": "c192"
}
ref
(empty)

URL Parser guide

A single URL can hold a lot: which server to contact, which page to load, and a string of parameters that often includes tracking IDs, redirect targets, and encoded state. The URL Parser splits all of it into labelled rows, so you can read a link instead of squinting at it.

What each part means

  • Protocol. The scheme, such as https or ftp. If you paste a bare domain like example.com/page, the parser assumes https.
  • Host and port. The server name and the port it listens on. When a URL leaves the port out, the parser shows the default for its protocol, such as 443 for https.
  • Path segments. The pieces between slashes, one per row and decoded, so /files/My%20Report.pdf reads as files and My Report.pdf.
  • Query parameters. Every key=value pair after the ?, in the order they appear. Keys that repeat are kept and marked, because many servers treat repeats as a list.
  • Fragment. Everything after the #. Single-page apps and OAuth sign-in flows often put parameters here too, and the parser splits those out the same way.

Example

For the link below, the parser shows the host shop.example.com, two path segments (products and shoes), four query parameters with both size values flagged as repeated, and the fragment reviews.

https://shop.example.com/products/shoes?color=blue&size=42&size=43&utm_source=newsletter#reviews

Encoded values inside the URL

Values are often encoded twice: percent-encoding to make them URL-safe, and Base64 or a JWT inside that. The parser decodes the percent-encoding first, then checks each value for Base64 that turns into readable text and for JWTs whose header and payload are valid JSON. Anything it recognises is shown decoded under the original.

Detection is a best guess. Plain words like newsletter are technically valid Base64, so a value is only decoded when the result is printable text. If a parameter holds another URL, such as a redirect_uri, use Parse to break that one down as well.

One detail catches people out: in a query string a plus sign means a space, so q=hello+world reads as hello world. In the path, a plus sign stays a plus sign.

When it helps

  • Debugging OAuth and SSO redirects, where redirect_uri and state have to match exactly.
  • Finding and removing tracking parameters like utm_source or fbclid before you share a link.
  • Reading signed download links to check their expiry time without opening them.
  • Checking what a marketing or affiliate link will pass along before you click it.

Frequently asked questions

What does the URL Parser do?
It splits a URL into its parts - protocol, host, port, path segments, query parameters, and the fragment - and decodes every value so long tracking links and redirect URLs become easy to read.
How do I use the URL Parser?
Paste any URL into the box. The breakdown updates as you type. Copy any value with the copy icon next to it. If a parameter holds another URL, such as a redirect_uri, click Parse to open it.
Does it handle repeated and encoded parameters?
Yes. Repeated keys like size=42&size=43 are listed in order and marked as repeated, and percent-encoded values and plus signs are decoded. Malformed encodings are shown as-is instead of failing.
Is my URL sent anywhere?
No. Parsing happens entirely in your browser using the built-in URL API. Nothing you paste leaves your device, so it is safe for links that contain tokens or session IDs.