Query String Builder

Parameters

Pasting or leaving a "?" or "#" here splits it into parameters and a fragment automatically.

Parameters
Encoding

Result

Add parameters to build a query string.

About this Query String Builder

Add key-value pairs and generate a properly encoded query string or full URL.

Rows build live as you type — there's no separate "build" step. Toggle a row off to exclude it from the output without deleting it, or paste an existing URL or query string into Import (or directly into Base URL) to split it back into rows automatically.

FAQ

What's the difference between this and the Query String Parser?

Query String Parser is read-only — paste a query string and it's decoded into a table. This tool is the other direction: add, edit, and reorder parameters yourself and it builds a properly encoded query string or full URL as you go.

When does RFC 3986 vs. form encoding (+) actually matter?

Only for characters like spaces and a handful of punctuation marks. RFC 3986 percent-encodes a space as %20 (correct for a query string appended to a URL); form encoding (application/x-www-form-urlencoded, what an HTML form submission produces) encodes it as +. Most APIs accept either, but if a server expects one specifically, switch modes to match — it doesn't touch the values you've already typed, only how they're encoded in the output.

Can I use the same key more than once?

Yes — add another row with the same key. Duplicate keys are common (e.g. tag=a&tag=b) and are kept as separate parameters in the output rather than merged or overwritten.

If I paste an already-encoded value, does it get double-encoded?

No. Values pulled in through Import or the Base URL field's auto-split are decoded first (so %20 becomes a real space internally) and only re-encoded once, at output time, in whichever mode is selected.

Can I paste a full URL, not just a query string?

Yes — that's what Import and the Base URL field are for. Paste a full URL into either one and it's split automatically: the scheme/host/path becomes the Base URL, ?key=value pairs become rows, and #fragment becomes the Fragment field.

Is anything sent to a server?

No — building and encoding happen entirely in your browser.

Related tools