Query String Builder
Write your parameters as plain lines or JSON and get a safely encoded query string.
Processed locally in your browser· Your data stays in your browser.
What is Query String Builder?
A query string must escape reserved characters such as spaces, "&", "=", "#" and non-ASCII letters, otherwise the server reads the wrong value. Two conventions exist: RFC 3986 writes a space as %20, while the HTML form format writes it as "+".
Type one key=value pair per line, or paste a JSON object (nested objects and arrays are supported). The tool encodes every name and value, lets you pick how arrays are written (a=1&a=2, a[]=1, a[0]=1 or a=1,2) and can sort the keys for stable, cache-friendly URLs.
How does it work?
- Enter one key=value pair per line, or paste a JSON object such as {"q":"café","tags":["a","b"]}.
- Choose the encoding style: RFC 3986 (%20) or form (+).
- Pick the array format your backend expects, and tick sort keys or the leading "?" if you need them.
- Copy the encoded query string and append it to your URL.
Common use cases
- Preparing test requests for an API from a list of parameters.
- Encoding accented or emoji values so a link works in every client.
- Producing a canonical, sorted query string for a cache key or a signature base string.
- Converting a JSON filter object into the URL parameters a search endpoint expects.
Examples
Try this input in the tool above:
q=café & thé lang=fr tags=a tags=b page=2
q=caf%C3%A9%20%26%20th%C3%A9&lang=fr&tags=a&tags=b&page=2
Privacy
Query String Builder runs entirely in your browser. The text or files you provide are processed on your device and are not uploaded, logged or stored on our servers.
Limitations
Array and nesting syntax is a convention, not a standard: check which format your server or framework actually parses.
Frequently asked questions
Should I use %20 or + for spaces?
Both decode to a space in a query string, but %20 is valid everywhere, including in URL paths. "+" is only a space in form-style query strings, so RFC 3986 is the safer default.
How do I send an array?
It depends on the server. Repeating the name (a=1&a=2) is the most portable; a[]=1 suits PHP and Rails; a=1,2 suits APIs that split on commas.
Is my input treated as JSON automatically?
If the trimmed input starts with "{", it is parsed as a JSON object and an error is shown when it is invalid. Otherwise each line is read as key=value.
Related tools
Query String Parser
Turn ?a=1&b=2 into a readable table and a JSON object, with percent-encoding and + signs decoded.
Developer Tools
URL Encoder
Make any text safe for a URL: spaces, accents, ampersands and emoji become %XX sequences.
Encoding & Decoding
UTM Builder
Fill in your campaign fields and get a tagged URL that updates as you type.
Developer Tools
URL Parser
Paste a URL and see every component separately, with the query parameters decoded in a table.
Developer Tools
JSON Formatter & Beautifier
Turn a minified or messy JSON document into readable, consistently indented text, with a precise error message if the JSON is invalid.
JSON & Data
Remove URL Parameters
Clean links before you share or store them: remove tracking tags, or every query parameter, in bulk.
Developer Tools