Query String Builder
Build a URL with parameters without worrying about encoding. Type names and values in plain text — spaces, &, =, #, accents and emoji are encoded correctly, and you choose how spaces and lists are written.
Tom & Jerry, not Tom%20%26%20Jerry.Need to split a URL into its parts? URL Parser →How Query Strings Work
The part after the ? that passes data to a page.
A query string is the part of a URL after the ?: ?q=red+shoes&size=42. Each parameter is a name=value pair, and pairs are separated by &. Because &, =, #, ? and spaces have special meanings, they must be percent-encoded inside names and values — & becomes %26, for example.
This builder encodes every name and value for you. Choose %20 for spaces (RFC 3986, safe everywhere) or + for spaces (the format HTML forms and URLSearchParams use). Both are decoded the same way by almost every server.
Lists. There's no single standard for sending several values under one name. Most servers (Express, Django, Flask, Go, ASP.NET, Java) read repeated names: tag=a&tag=b. PHP and Rails expect tag[]=a&tag[]=b (written as tag%5B%5D, since brackets must be encoded). Some APIs want a comma list: tag=a,b.
Length. Browsers handle very long URLs, but servers, proxies and CDNs often cut off at 8 KB or less, and some tools still break above about 2,000 characters. The builder warns you when a URL gets that long.
How Characters Are Encoded
In names and values.
| Character | %20 mode (RFC 3986) | + mode (forms) |
|---|---|---|
| Space | %20 | + |
& = # ? + | %26 %3D %23 %3F %2B | %26 %3D %23 %3F %2B |
/ : @ , | %2F %3A %40 %2C | %2F %3A %40 %2C |
! ' ( ) * | %21 %27 %28 %29 %2A | %21 %27 %28 %29 and * |
- . _ ~ | unchanged | - . _ unchanged, ~ → %7E |
| é, ₹, 😀 | UTF-8 bytes: %C3%A9, %E2%82%B9, %F0%9F%98%80 | |
How to Use the Query String Builder
Get your result in under ten seconds.
Enter the base URL
Optional — leave it empty for just the query string.
Add parameters
Plain names and values; repeat a name for a list.
Copy the URL
Encoded and checked, ready to paste.
Why Use the Query String Builder on Developers Web Tools
Fast, accurate and private — built for developers.
Correct encoding
Every name and value is percent-encoded — no broken & or # ever.
Two styles
RFC 3986 %20 or HTML-form + for spaces.
Lists your way
Repeated names, PHP-style tag[] or comma lists.
Keeps the base
An existing query is kept and the #fragment stays at the end.
Checks
Missing names, invalid base URLs, duplicates and over-long URLs.
Private
Runs in your browser; your form is saved only on this device.
Frequently Asked Questions
Both work for query strings on almost every server. %20 (RFC 3986) is correct anywhere in a URL; + is what HTML forms send and what URLSearchParams produces. If an API's documentation shows one, use that.
Add the same parameter name several times, then pick the list format your server expects: tag=a&tag=b (most frameworks), tag[]=a&tag[]=b (PHP, Rails) or tag=a,b (some REST APIs).
The fragment must always come last, so the builder moves it after the new parameters: /page#top becomes /page?a=1#top. Browsers never send the fragment to the server.
There's no official limit, but many servers and CDNs reject URLs longer than 8 KB, and some tools fail above about 2,000 characters. For large amounts of data, send a POST request instead.
Avoid it. URLs are saved in browser history, server logs and analytics, and can leak through the Referer header. The builder warns you when a parameter name looks like a secret.
No. The URL is built in your browser, and the form is saved only in this browser's local storage — press Reset to clear it.