EthicalFusion

Query String Parser

Break a URL or query string into readable key/value parameters.

Was this tool helpful?

Thanks for the feedback!

Paste a full link or just the part after the question mark, and this query string parser lists every parameter on its own line as key = value, with percent-encoding and plus signs turned back into readable text. It is built for marketers checking UTM tags, developers reading API calls, and anyone who wants to see what a long tracking link actually carries.

What happens when you click Parse

  1. Everything before the first ? is ignored, so you can paste a complete URL.
  2. Anything after # (the fragment, such as #reviews) is dropped, because browsers never send it to the server.
  3. The remainder is split on &, and each piece is split into a name and a value at the =.
  4. Both parts are percent-decoded, and + in the value becomes a space.

A small card under the result shows how many parameters were found.

Example: a festive campaign link

Input:

https://shop.example.in/search?q=running+shoes&size=9&utm_source=newsletter&utm_campaign=diwali%20sale#reviews

Output, with 4 parameters counted:

q = running shoes
size = 9
utm_source = newsletter
utm_campaign = diwali sale

Encoded non-English characters come out correctly too: amt=%E2%82%B9500 is shown as amt = ₹500, because the three bytes E2 82 B9 are the UTF-8 encoding of the rupee sign.

Reading the result

  • Repeated keys such as tag=a&tag=b are listed twice, in their original order. Some servers read that as a list; others keep only the last value.
  • Empty values like coupon= and bare flags like &debug appear as coupon = and debug = .
  • Plus versus %20: the plus-as-space rule comes from HTML form encoding (application/x-www-form-urlencoded), while RFC 3986 percent-encoding writes a space as %20. Both are decoded in values.

Known limits

  • A value that itself contains = is cut at that sign. A token such as sig=abc== shows only abc, so check Base64-style values by eye.
  • A stray % that is not followed by two hex digits, as in discount=100%, makes decoding fail with a "URI malformed" error. Replace it with %25 and try again.
  • If there is no ? at all, the whole input is treated as a query string, so pasting a plain page address returns the address itself as one "parameter".
  • Plus signs in parameter names are not converted, and semicolon separators are not recognised.

Where it saves time

Use it to confirm that an ad's final URL carries the right utm_source, utm_medium and utm_campaign before a campaign goes live, to read a redirect_uri buried inside a login link, or to compare two API requests side by side. To build a clean tagged link from scratch, use the UTM Link Builder; to encode a single value safely, the URL Encoder does the reverse job.

Frequently asked questions

Why is part of my value missing after an equals sign?
Each parameter is split at its equals signs and only the text before a second one is kept. Values such as signatures ending in == look shortened here even though the real link is intact.
Why do I get a URI malformed error?
The link contains a percent sign that is not part of a valid %XX code, such as 50%off. Encode that percent sign as %25 and parse again.
Does it show the part after the # symbol?
No. The fragment is removed because it stays in the browser and is never sent to the server as a parameter.
How are plus signs handled?
In values a plus sign is shown as a space, matching how HTML forms encode spaces. A literal plus has to be sent as %2B to survive.
Is the URL I paste sent anywhere?
No. The splitting and decoding run in JavaScript inside your browser tab.

Related tools

Embed this tool on your site

Paste it into any blog or website. Free, with a credit link.