Query String Parser

Parse URL query strings into a key/value table and rebuild them

What is it and how does it work?

A query string is the part of a URL that comes after the ? character and encodes key-value parameters: ?name=Alice&page=2&sort=desc. Query strings are used everywhere — search engines, analytics tracking, API calls, pagination, filter states, and OAuth flows all pass data via query strings. Parsing them correctly is trickier than it looks: values may be URL-encoded, keys may be repeated, and some frameworks use bracket notation (filter[]=a&filter[]=b) for arrays.

This tool parses any URL or raw query string into a readable table of keys and values, decoding percent-encoded characters automatically. You can also build a query string from scratch by entering key-value pairs — useful for constructing API test URLs or debugging filter parameters without writing code.

Common use cases

Frequently asked questions

Why does the same key appear multiple times in a query string?

Repeated keys encode arrays. ?tag=css&tag=javascript is how many frameworks pass a list of values for one parameter. Some use bracket notation: ?tags[]=css&tags[]=javascript. The parser handles both and groups repeated keys into arrays.

What is the difference between %20 and + in query strings?

Both represent a space in a URL. %20 is the percent-encoding of ASCII 32 (space). + is a shorthand for space in the application/x-www-form-urlencoded format (used in HTML forms). The decoder handles both: a literal + in a value should be %2B if it's not intended as a space.

What happens to special characters in query string values?

Characters outside the allowed set must be percent-encoded. The encoder takes your raw value and encodes &, =, +, ?, #, and other special characters to their %XX sequences, ensuring the value doesn't break the URL structure.

Is the fragment (#hash) part of the query string?

No. The fragment (everything after #) is never sent to the server — it's processed only by the browser. A URL like page.html?q=test#section2 has query string q=test and fragment section2. The fragment is useful for client-side routing (SPA hash routing) but is invisible to server logs and analytics.

Network

Subnet Calculator · IP Address to Binary · URL Builder · MIME Type Finder · HTTP Header Builder · Common Ports Reference