TOOLGRID
HomeImage ToolsPDF ToolsVideo ToolsAudio Tools
More
Dev ToolsWeb & SEOCategoriesText ToolsCalculatorsAbout
Menu
HomeImage ToolsPDF ToolsVideo ToolsAudio ToolsDev ToolsWeb & SEOCategoriesText ToolsCalculatorsAbout
TOOLGRID

The full toolbox remains available when you need a specific utility.

Β© 2026 TOOLGRID. All rights reserved.

Tools

Image ToolsPDF ToolsVideo ToolsAudio Tools

Resources

CategoriesPrivacy Policy

Company

AboutTermsContact
  1. Home
  2. Web & SEO Tools
  3. Query String Builder

Query String Builder

Compose URL query strings from key-value rows β€” repeated keys for arrays, automatic percent-encoding, live preview.

Use this tool
Browser-local processingNo input upload to TOOLGRIDReview before copy
Formats and processing
Input
Pasted code or structured data
Output
Query String Builder result
Runtime
Browser APIs
Browser-local workspaceStart below with browser-local processing.

Tool code processes selected files and entered content in your browser and does not submit them to a TOOLGRID processing endpoint. TOOLGRID measures tool usage, not the content you enter.

Loading tool…

Browser-basedWhat this tool does

Free in-browser query string builder. Add key-value rows, get a fully percent-encoded query string back. Repeated keys produce array-style parameters (tag=a&tag=b). Use it to build API request URLs, deep links, campaign URLs, or any URL with parameters. Tool code does not submit entered values to a TOOLGRID processing endpoint.

Repeated keys are supported natively β€” add the same key on multiple rows and you get array-style output (?tag=alpha&tag=beta&tag=gamma). This is the standard convention consumed by Express's qs parser, Rails strong parameters, Spring's @RequestParam List<>, and most modern frameworks. No special bracket syntax required.

Encoding uses the browser's built-in URLSearchParams, so values with spaces, ampersands, equals signs, emoji, or full Unicode are escaped correctly. You get the same percent-encoding the browser would produce when serializing a form β€” trustworthy without round-tripping through DevTools.

Representative tasks

What you can do with this tool

Build campaign URLs with UTM parameters

Add rows for utm_source, utm_medium, utm_campaign, utm_content, and utm_term. The builder encodes spaces and special characters in campaign names automatically β€” no more broken Google Analytics attribution from malformed URLs.

Construct API request URLs for testing

When testing a REST or GraphQL endpoint in Postman, curl, or a browser, build the query string here first so every value is properly encoded. Especially useful when one of your filter values contains a comma, slash, or equals sign.

Generate array-style parameters for filters

Faceted search and tag filters typically use repeated-key parameters (?category=books&category=ebooks&category=audio). Add the same key on multiple rows and the builder outputs them in the format Express, Rails, and most backends expect by default.

Boundaries

What to check before relying on the result

  • Performance and maximum practical input size depend on browser memory, device speed, and the structure of the input.
  • Review the generated result before replacing or publishing an original file.
MDN Web APIs

How to use

  1. 1

    Edit the seeded rows or add new rows with the + button. Enter a key and value on each row.

  2. 2

    Watch the preview update live β€” the percent-encoded query string is shown as you type.

  3. 3

    Copy the generated string and append it to your base URL with a leading ? (or & if you're concatenating to an existing query).

Use Cases
Build campaign URLs with UTM parameters

Add rows for utm_source, utm_medium, utm_campaign, utm_content, and utm_term. The builder encodes spaces and special characters in campaign names automatically β€” no more broken Google Analytics attribution from malformed URLs.

Construct API request URLs for testing

When testing a REST or GraphQL endpoint in Postman, curl, or a browser, build the query string here first so every value is properly encoded. Especially useful when one of your filter values contains a comma, slash, or equals sign.

Generate array-style parameters for filters

Faceted search and tag filters typically use repeated-key parameters (?category=books&category=ebooks&category=audio). Add the same key on multiple rows and the builder outputs them in the format Express, Rails, and most backends expect by default.

Compose mobile app deep links

Deep links of the form myapp://path?source=email&campaign=spring-sale need the same percent-encoding rules as web URLs. Build the query portion here, then append it to your custom scheme prefix.

Round-trip a query string with URL Parser

Build a query here, paste it into our URL Parser to verify Google sees what you intended, edit any rows that need adjustment, and copy the final version. The two tools are designed to be used together.

Tips & Tricks
Repeated keys produce array parameters

Want ?tag=a&tag=b&tag=c? Just add three rows with key=tag and different values. This is the standard format consumed by most backend frameworks. No need for ?tag[]=a&tag[]=b unless your specific framework requires it (some older PHP setups do).

Spaces become + with URLSearchParams

URLSearchParams uses application/x-www-form-urlencoded serialization, so spaces become +. Percent-encoded %20 also decodes to a space, but this tool intentionally reports the browser API's + output.

Empty values produce key=, not just key

A row with a key and an empty value outputs key= (key followed by equals followed by nothing). To omit the parameter entirely, delete the row instead of leaving the value blank. Some APIs treat key= as a falsy value, others as absent β€” be explicit about your intent.

The hash fragment is not a query parameter

Everything after # is the hash fragment, parsed separately by the browser and never sent to the server. Build your query string here, then append a hash manually if your single-page app needs one (e.g., #!/route/123).

FAQ

Are keys and values automatically URL-encoded?

Yes. Encoding uses the browser's built-in URLSearchParams API. Spaces become +, ampersands become %26, equals signs become %3D, and full Unicode (including emoji) is escaped using UTF-8 percent encoding. The output can be appended as a query string without encoding it again.

Does it handle repeated keys for array-style parameters?

Yes. Add the same key on multiple rows β€” the builder includes each row's value as a separate parameter in the output (e.g., tag=alpha&tag=beta). This matches what Express's qs parser, Rails strong parameters, and most modern backends consume by default.

Can I parse an existing query string back into rows?

Not in this tool β€” it's a builder, not a parser. To break a query string apart, use our URL Parser, which decomposes the full URL (protocol, host, path, query, hash) and lists every parameter with auto-labeled UTM and tracking tags. Build here, parse there.

What's the difference between this and the UTM Builder?

This tool is a generic any-parameter builder β€” keys and values are freeform. The UTM Builder is purpose-built for Google Analytics campaign URLs with named fields (Source, Medium, Campaign, Content, Term) and validation specific to UTM conventions. Use UTM Builder if you only need campaign URLs; use this when you need arbitrary query parameters for APIs, filters, or deep links.

Does the tool support empty values or empty keys?

Empty values output key= (a key followed by an equals sign and nothing). Empty keys are skipped β€” a row with no key contributes nothing to the output. To remove a parameter, delete the row instead of clearing one of its fields.

Is my data sent to a server?

The URLSearchParams API is built into every modern browser, and the tool runs in your browser. Tool code does not submit entered keys, values, or generated query strings to a TOOLGRID processing endpoint. Review browser extensions and device security before handling sensitive parameters.

Will the output work with my framework's query parser?

For repeated keys (arrays), yes β€” Express qs, Rails strong parameters, Spring @RequestParam List, ASP.NET model binding, and Go's url.Values all accept the standard ?key=a&key=b format. PHP defaults are an exception: you may need ?key[]=a&key[]=b β€” type the brackets explicitly in your key field if so.

Continue this workflow

Useful next steps

Open a nearby browser tool when you need to validate, convert, or reuse the result.

URL Parser & Query String DecoderWeb & SEO · Local→URL Encoder & Decoder — Convert Text to URL-Safe FormatConverters · Local→UTM BuilderWeb & SEO · Local→