Query String Builder
Build query strings from key–value pairs
Start
Description
The Query String Builder lets you compose valid query strings from a set of key–value pairs. It appends keys in order and handles repeated keys, producing a copy‑ready ?a=1&b=2 string.
Use it when crafting links for campaigns, debugging API calls, or generating test URLs. Everything runs in your browser for instant feedback.
Key features
- Add unlimited rows for parameters
- Preserves repeated keys for multi‑value params
- Copy the result with one click
- Local persistence of your last set of rows
Common use cases
- Composing UTM tags for marketing links
- Assembling query parameters for API requests
- Testing route handling with controlled inputs
Privacy & security: all data stays in your browser; nothing is uploaded.
How to Use
- Click “Add Row” to insert key–value pairs.
- Type a key and value in each row.
- Click “Sample” to load a common UTM set.
- Review the generated string below.
- Click “Copy Output” to copy the
?querystring. - Use “Clear” to reset to an empty template.
Tips
- Leave the key empty to omit a row.
- Repeat keys for multi‑value parameters like
tag. - Use the encoder to percent‑encode special characters.
Troubleshooting
- Empty output → All keys are blank; fill at least one key.
- Unexpected characters → Percent‑encode values if the target system requires it.
- Order sensitive → Add rows in the desired order; the tool appends in sequence.
Example
Example 1: Basic build
Rows:
a = 1 b = 2
Output:
?a=1&b=2
Two rows produce a simple query string.
Example 2: Repeated keys
Rows:
tag = a tag = b
Output:
?tag=a&tag=b
Repeated keys are appended to represent multi‑value parameters.
FAQ
Is everything local?
Yes. The builder runs entirely in your browser.
Why is the output empty?
No rows have keys. Add at least one key to generate output.
How do I encode values?
Use the URL Encoder for special characters before pasting values.
Does order matter?
Yes. The builder appends rows in the order they appear.
Can I add duplicate keys?
Yes. It’s common for list‑style params; receiving systems should aggregate them.