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
URLconstructor needs an absolute address with a scheme, such ashttps://. A bareexample.com/pathor a leading-slash path has no scheme and is rejected with an inline message. Prefix it withhttps://to parse. - Decoded is not the same as raw. The value column shows the
decoded text, so
%20appears 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.
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.