Tool

Query String Parser.

Paste a URL or query string. Get a clean table of decoded key/value pairs. Works with form-encoded and percent-encoded values, repeated keys, and array notation.

Query String Parser
Query strings · Deep dive

Understanding the query string.

What a query string is

The query string is the part of a URL that comes after the ? and before any # fragment. It carries parameters as key=value pairs separated by &. Both keys and values are URL-encoded — so a value containing a space, comma, or non-ASCII character appears as percent-encoded bytes.

Repeated keys and arrays

The query-string format allows the same key to appear multiple times. ?tags=a&tags=b&tags=c is three values for the same key. Different frameworks handle this differently: Express.js parses it as an array, PHP turns it into an array if the key ends with [], Ruby on Rails accepts both syntaxes. The standard URLSearchParams API gives you all values via .getAll(key).

Spaces: %20 or +

In a query string, a space can be encoded as %20 or + — both are accepted. The + form is the legacy convention from HTML form submissions (application/x-www-form-urlencoded). Both this parser and the standard URLSearchParams handle either correctly. In a path component (before the ?), + is literal and only %20 works as a space.

Common debugging scenarios

Use this tool when you’re reading server logs and want to understand what a complicated query string actually meant; when you’re testing an API and want to verify which parameters a client sent; when you’re analyzing a tracking link and want to see UTM parameters in plain text; when you’re looking at a JavaScript app’s URL hash routing and need to see the deep-linked state.

Related tools

More from the toolkit.