Split a URL query string into readable key and value pairs or JSON, decoding percent-escapes and plus signs, and flagging repeated parameters whose handling differs between servers.
Show calculation steps
Processed privately in your browser — nothing you paste is uploaded, logged or stored.
How to use the Query String Parser
- Paste a full URL, or just the query string with or without the leading question mark.
- Choose "Readable list" to scan the parameters by eye, or "JSON object" to feed the result into code.
- Click "Parse query string".
- Check the notes for repeated parameters and for any fragment, which browsers never send to the server.
Frequently asked questions
What happens when the same parameter appears more than once?
The tool lists every occurrence and warns you, because servers disagree about the correct handling. PHP keeps the last value unless the name ends in square brackets; Node, Python and most REST frameworks collect the values into an array. In JSON mode, repeats become an array.
Why is the part after the hash treated separately?
That is the fragment identifier. It is processed by the browser only and is never transmitted in the HTTP request, so it can never be read by the server – a detail that surprises people debugging analytics or single-page applications.
What does "bare flag" mean in the output?
It marks a parameter that appears with no equals sign at all, such as "?debug". Frameworks interpret these inconsistently – some as an empty string, some as boolean true – so the tool distinguishes them from a parameter explicitly set to an empty value.
Are values decoded automatically?
Yes. Percent-escapes are resolved and plus signs are treated as spaces, which is the standard convention for query strings. Where a value contains a malformed escape, it is shown raw and flagged rather than silently mangled.