glunty

URL Parser and Query String Breakdown

Break a URL into parts and read its query string as a table.

What this tool does

Splits any absolute URL into its parts using the browser's built-in URL interface: protocol, username and password (when present), hostname, port, pathname, and the fragment after the hash. It then reads the query string with URLSearchParams and lists every parameter in a table, one row per key, with each value URL-decoded. Duplicate keys are kept as separate rows. Everything runs locally; the URL you paste is never transmitted.

How to use it

Paste or type a URL into the input. The breakdown updates live as you type. The first table shows the structural components; the second lists the query parameters with editable values. Change a value and the Rebuilt URL box at the bottom updates immediately, re-encoding your text into a valid address you can copy. Press Try an example to load a sample URL that exercises auth, a port, duplicate keys, and an encoded value.

Common use cases

  • Reading the UTM and tracking parameters glued onto a marketing link.
  • Confirming which host, port, and path an API request actually targets.
  • Decoding a percent-encoded value such as a redirect target or search term.
  • Spotting duplicate query keys that a backend may read as a list.
  • Editing one parameter and copying the rebuilt URL without hand-encoding.

Common pitfalls

  • Relative URLs do not parse. The URL constructor needs an absolute address with a scheme, such as https://. A bare example.com/path or a leading-slash path has no scheme and is rejected with an inline message. Prefix it with https:// to parse.
  • Decoded is not the same as raw. The value column shows the decoded text, so %20 appears as a space. The rebuilt URL re-encodes it, so the copied address may differ character-for-character from what you pasted while still being equivalent.
  • The fragment is client-only. Anything after the # is never sent to the server. If a value you expected on the backend sits in the fragment rather than the query string, the server will not see it.

Frequently asked questions

What does a URL parser actually break a URL into?
A URL is made of ordered parts: a scheme (protocol) such as https, an optional userinfo (username and password), a host and optional port, a path, a query string, and a fragment (the part after the hash). This tool uses the browser native URL interface to split those parts out, so what you see is exactly how a browser would interpret the address, not a hand-rolled guess.
How does the query string parser handle duplicate keys?
Query strings are allowed to repeat a key, for example ?tag=a&tag=b, and many backends read the repeats as a list. This tool iterates URLSearchParams and prints one table row per occurrence, so duplicate keys stay visible as separate rows in their original order rather than being merged or silently dropped.
Why are the values shown decoded?
Query values are percent-encoded on the wire, so a space is written as %20 or a plus sign, and reserved characters like & are escaped. URLSearchParams decodes each value back to its readable form, so hello%20world is shown as "hello world". The rebuilt URL at the bottom re-encodes everything, so it stays a valid, copy-ready address.
Why does my URL fail with an invalid URL message?
The URL constructor only accepts absolute URLs that include a scheme, such as https://example.com/path. A bare host like example.com/path or a relative path like /path?a=1 has no scheme, so it is rejected. Add https:// to the front and it will parse. The tool shows a clear inline message instead of crashing when the input cannot be parsed.
What is the difference between the query string and the fragment?
The query string starts at the first question mark and is sent to the server; it usually carries filters, search terms, or tracking parameters. The fragment starts at the hash and is never sent to the server; browsers use it to scroll to an element id or to drive client-side routing. This tool lists both so you can see which data leaves the browser.
Can I edit a parameter and get a new URL?
Yes. Each value in the query table is an editable field. Change a value and the rebuilt URL at the bottom updates live, correctly re-encoding your text. This is handy for tweaking a UTM tag, swapping a page number, or fixing a mistyped filter without editing the raw string by hand.
Is the URL I paste sent anywhere?
No. Parsing happens entirely in your browser using built-in APIs; nothing is uploaded. Even a URL that contains an API key, a session token, or credentials in the userinfo stays on your machine. Still, redact secrets before sharing a URL in screenshots or a public issue.

Embed this tool

Free for any use; attribution appreciated. Paste this on your site:

The embed runs the same tool that lives at this URL. No tracking; no ads inside the embed. Resize height as needed for your layout.

Cite this tool

For academic, journalistic, or technical references. Pick a format:

Citations use 2026 as the publication year. Access date is left as a fillable placeholder where the citation style expects one.

Embedded tool from glunty.com