devtools

URL Parser & Query Inspector

Break any URL into its parts — protocol, host, port, path, query and hash — and decode every query parameter. Runs privately in your browser, no upload.

Runs entirely in your browser — your data never leaves your device.

How to use URL Parser & Query Inspector

What it does & when you need it

A URL looks like one string, but it is really eight nested fields plus a query string that is itself a list of key–value pairs. This tool splits a URL into all of them — protocol, username, password, hostname, port, path, query, and hash — and then decodes every query parameter onto its own line, so a wall of percent-encoded characters becomes readable. It uses the same URL engine your browser uses, and it runs entirely in your browser, so a link containing a token or an internal hostname never leaves your machine.

Reach for it when you are debugging a redirect, a tracking link, an OAuth callback, or an API request and need to see exactly what each part of the URL is.

How to use

  1. Paste a URL into the url buffer, or press Sample to load one with every field populated.
  2. The breakdown buffer updates instantly: each component on its own line, followed by a decoded list of query parameters as key = value.
  3. Press Copy on the output, or Ctrl/Cmd + Enter.

Things worth knowing

A URL needs a scheme. The parser follows the WHATWG standard, which requires an absolute URL. Paste a bare example.com and it fails, because that could just as easily be a path — add https:// and it resolves. The tool's error says so.

Repeated keys are all kept. A query like ?tag=new&tag=sale lists both values, because servers disagree about whether the first or last wins. Seeing both is often the bug. Values are decoded too, so %20 shows as a space.

A missing port isn't really missing. The standard drops a port that matches the scheme default, so https://site:443 shows an empty port; the tool notes the implied default instead. Internationalized domains are shown in punycode (例え.jpxn--r8jz45g.jp), which is what actually travels on the wire.

To go the other way and escape values for a URL, use the URL encoder; to see what a page returns, try the HTTP header checker or DNS lookup.

Examples

Full URL with auth, port, query and hash

https://user:pass@example.com:8080/path/to/page?ref=nav&id=42#section

Shows every component broken out, plus the ref and id query parameters decoded into key/value lines.

Repeated and encoded query parameters

https://shop.example.com/search?tag=new&tag=sale&q=winter%20coat

Both tag values are kept and the space in q=winter%20coat is decoded to a readable “winter coat”.

Missing scheme (triggers the hint)

example.com/path

A bare domain cannot be parsed as an absolute URL, so the tool returns an error suggesting an https:// prefix.

Frequently asked questions

What parts of a URL does this tool break out?

It splits the URL into every WHATWG component: protocol (scheme), username and password, hostname, port, pathname, search (query string), and hash (fragment). Below that it lists each query parameter decoded into a key and value, one per line, so you can read percent-encoded values at a glance.

Why do I get an error when I paste a bare domain like example.com?

The parser uses the browser’s URL engine, which needs an absolute URL with a scheme. Without one, example.com is ambiguous — it could be a path — so parsing fails. Add a scheme such as https:// (https://example.com) and it resolves. The tool’s error message includes this hint.

How are repeated query parameters like ?tag=a&tag=b handled?

Both are shown. The query string is parsed with URLSearchParams, which preserves duplicate keys in order, so ?tag=a&tag=b lists tag = a and tag = b on separate lines. This matters because many backends read only the first or the last value of a repeated key.

Does it decode percent-encoded and international characters?

Yes. Query values are shown decoded, so q=hello%20world reads as q = hello world. Internationalized domain names are normalized to their punycode ASCII form (例え.jp becomes xn--r8jz45g.jp), which is exactly what a browser sends on the wire.

Why is the port shown as “default” when I did not type one?

The URL standard drops a port that matches the scheme’s default, so https://example.com:443 has an empty port field. The tool notes the implied default (443 for https, 80 for http) so you can see which port the request will actually use.

Is the URL sent to a server?

No. Unlike the server-side web tools here, URL parsing runs entirely in your browser with the built-in URL API, so a link containing tokens or internal hostnames never leaves your machine and the tool works offline.