⌨ DEVELOPER · GENERATOR

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.

RFC 3986 or form encoding · Lists · Empty values · Sorting · Length check
Tip: values are encoded for you — type Tom & Jerry, not Tom%20%26%20Jerry.Need to split a URL into its parts? URL Parser →
Fill in the form — the URL and the checks update as you type.
DetailsSaved in this browser
URL
Optional. Leave empty to get just the query string. An existing ?query is kept and a #fragment is moved to the end.
Parameters
Add the same name more than once to send a list. Spaces at the start and end of a name or value are ignored.
Encoding
Parameters & checks
    URL
    ◆ ABOUT THIS TOOL

    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.

    ⌘ REFERENCE

    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
    ◐ THREE STEPS

    How to Use the Query String Builder

    Get your result in under ten seconds.

    1

    Enter the base URL

    Optional — leave it empty for just the query string.

    2

    Add parameters

    Plain names and values; repeat a name for a list.

    3

    Copy the URL

    Encoded and checked, ready to paste.

    ✓ FEATURES

    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.

    FAQ

    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.