URL Query Builder
Build URLs by combining a base address with editable key-value query parameters — each pair toggleable, properly percent-encoded.
https://api.example.com/search?q=cloudflare%20workers&page=1&sort=relevance
Keys and values are percent-encoded with encodeURIComponent — same rules every well-behaved client uses.
How to use
- Type the base URL. If it already has a
?, the builder will append the rest with&. - Add key-value rows. Toggle the checkbox to include / exclude a row without deleting it.
- Pick
%20or+for spaces depending on whether the server expects standard URI encoding or form-encoded.
About this tool
ShowHide
A clean form for adding, editing, and disabling query parameters one by one, with the resulting URL built live. Keys and values are run through encodeURIComponent; you can choose whether to keep spaces as %20 or fold them to + (the form-urlencoded variant). Disabled rows stay in the list but don't appear in the output — handy for stashing alternatives without losing them.
The space toggle matters more than it looks. %20 is the correct percent-encoding everywhere in a URL, while + means a space only inside application/x-www-form-urlencoded data, which is what a query string conventionally is. Most server frameworks decode both in the query, but path segments, HTTP headers and JSON bodies do not, so a + copied out of a query string into any of those places stays a literal plus sign. When in doubt, %20 is the safer of the two.
encodeURIComponent deliberately leaves !, ', (, ) and * unescaped. They are legal in a query and most servers accept them, but OAuth signatures and some strict parsers expect them percent-encoded, and a signature computed over the un-escaped form will not verify. Note also that the encoding is applied to whatever you type: pasting a value that is already encoded produces a double encoding, where %20 becomes %2520.
Repeated keys are preserved rather than merged, because the meaning of ?tag=a&tag=b is decided by the receiving application, not by the URL syntax. PHP collapses repeats to the last value unless the key ends in [], Rails and Express build an array, and Go's standard library returns only the first. If a duplicate key is not producing what you expect, the fix belongs on the server side.
Frequently asked questions
When do I use + for spaces?
When the server treats the query string as application/x-www-form-urlencoded — most older form handlers and CGI scripts do. Modern REST APIs typically accept either, but the safe default for application/json POST bodies is %20.
Are duplicate keys allowed?
Yes — most servers treat repeated keys as an array. Some only keep the last; check the API docs if you're unsure.
Which characters must be encoded inside a value?
Anything that would otherwise be read as structure: the ampersand, the equals sign, the space, and above all the hash. Everything after a hash is the fragment and is never sent to the server, so one unencoded hash silently cuts the rest of your value off the request. Slashes and colons are legal inside a query string and can be left alone, though encoding them harms nothing.
Does the order of parameters matter?
Not to the server, which is free to read them in any order. It matters everywhere else: caches and CDNs key on the exact URL text, so the same parameters in a different order are a different cache entry, and anything that signs or compares URLs — analytics, signed links, deduplication — sees two distinct strings. Keep the order stable even though nothing forces you to.
Related tools
Query String to JSON Converter
Convert a URL query string to a JSON object and back, in your browser.
Developer
URL Encoder / Decoder
Percent-encode text for URLs, or decode encoded URLs back to text.
Developer
URL Parser
Break a URL into protocol, host, port, path, query, and hash. Decode query parameters into a table.
Developer
mailto: Link Builder
Build a mailto: URL with To, Cc, Bcc, subject, and body — RFC 6068 percent-encoded, ready to drop into an <a> tag.
Network
HTTP Status Code Reference
Searchable list of every HTTP status code (1xx-5xx) with summary, RFC, when to use, and common pitfalls.
Network
DNS Message Decoder
Paste a DNS packet as hex or DoH base64url and read it: header flags, opcode and rcode, every record, and the EDNS0 OPT options.
Network