API Query Parameter Builder

Runs in browser Web

Add key/value pairs, arrays and nested filters, choose the encoding style (repeat, brackets, comma) and preview the final URL as you type.

Privacy: This tool runs entirely in your browser. Your input never leaves your device.
Loading tool…

How to use API Query Parameter Builder

  1. Enter the endpoint URL.
  2. Add parameters; use "a, b" or ["a","b"] for lists and bracket keys for nested filters.
  3. Choose the array style and encoding your backend expects.
  4. Copy the final URL or just the query string.

API Query Parameter Builder features

  • Key/value editor with comma lists and JSON values for arrays and nested filters
  • Bracket keys (filter[price][max]) and JSON objects produce nested structures
  • Four array styles (repeat, brackets, indices, comma) and RFC 3986 or form encoding
  • Optional key sorting, empty-value skipping and merging with the base URL's existing query
  • Live final URL, bare query string, encoded-parameter table and JSON view
  • Warnings for over-long URLs and whitespace in keys

API Query Parameter Builder example

Pagination, sorting and a list filter

Input:

Base: https://api.example.com/v1/products · page=2 · per_page=25 · sort=-created_at · status=active, pending · q=café & crème

Output:

https://api.example.com/v1/products?page=2&per_page=25&sort=-created_at&status=active&status=pending&q=caf%C3%A9%20%26%20cr%C3%A8me

Frequently asked questions about API Query Parameter Builder

How do I pass a list of values?

Type them comma-separated (active, pending) or as a JSON array (["a","b"]). Then pick the array style your API expects: repeat (status=a&status=b), brackets (status[]=a), indices (status[0]=a) or comma (status=a,b).

How do I build nested filters?

Use bracket keys such as filter[price][max] or JSON objects as values. They are serialised with percent-encoded brackets (filter%5Bprice%5D%5Bmax%5D=…), which PHP, Rails, Laravel and Express (qs) decode into nested structures.

Which characters are encoded?

Everything outside the unreserved set (letters, digits, - _ . ~) is percent-encoded per RFC 3986, including & = # + and non-ASCII characters (UTF-8 bytes). Form encoding additionally turns spaces into +.

What happens to a query string already in the base URL?

With "Keep existing query" enabled, existing parameters are parsed and merged with the ones you add; new values with the same key are appended as repeats.