Query String Parser
Paste a query string or URL to get every parameter decoded, as a table or JSON. Handles repeated names, a[]=1 and a[b]=1, and flags tracking parameters.
Runs in your browser. Nothing you add is uploaded.
What the Query String Parser does
Query strings are how links and APIs pass small pieces of data, and reading a long one by eye is error-prone: percent-encoded characters, plus signs that may or may not be spaces, repeated names and framework-specific array syntax. Paste a query string or a whole URL and this tool decodes every parameter into a table or JSON, shows exactly how repeats and brackets are interpreted, and points out the tracking parameters that can be removed without changing the page.
How to parse a query string
- Paste the query string (with or without the leading ?) or the whole URL.
- Choose how it should be read: whether + means a space and whether a[b]=1 and a[]=1 should build nested data.
- Switch between the Table, JSON and Code views. JSON shows repeated names as arrays.
- If tracking parameters are found, copy the cleaned query string, or replace the input with it.
- Use the Code view to read the same parameters in JavaScript, Python, PHP or curl.
The Query String Parser runs entirely in your browser — nothing you enter is uploaded, stored, or logged.
When to use it
Reading an analytics or ad link
UTM tags, fbclid and gclid are easy to spot in the table, and you can see what is left once they are removed.
Checking what an API expects
Turn the query string from API documentation or a network trace into JSON so you can compare it with the structure your code builds.
Decoding form submissions
A GET form produces a query string full of %20 and + escapes. The decoded table shows what the user actually typed.
Good to know
- Repeated names are legal. How they are combined is up to the server, so check your framework.
- A parameter with no equals sign (?debug) is valid and is treated as having an empty value.
- %2B is a literal plus sign; a bare + is usually a space.
- Very long query strings can be cut off by proxies. Move large data into a POST body.
- JSON output keeps values as strings, because a query string has no types.
Frequently asked questions
How are repeated parameters handled?
Why does my value contain + signs?
Does removing tracking parameters change the page?
What is the difference between a query string and a fragment?
What does color[]=red&color[]=blue mean?
Why do some values look double-encoded?
Related tools
HTTP Status Code Lookup
Look up any HTTP status code: meaning, causes and how to fix it.
HTTP Header Analyzer
Paste HTTP headers to see what each means and what to fix.
HTTP Header Generator
Generate security, CORS, cache and CSP headers for your server.
User-Agent Parser
Identify the browser, OS, device or bot behind a User-Agent.