Tool

Online query string parser and builder

Split, edit and rebuild URL parameters without losing duplicate keys or sending the data.

Your data is processed locally in your browser and is not sent to our servers.

Repeated keys, their order and empty values are preserved. Under form rules, + is a space and %2B is a literal plus.

Paste a URL or query to inspect each key-value pair.

Parse a URL without losing parameters

Paste a complete URL, a path containing ?, or a raw query string. The tool places every key-value pair in an editable row and preserves three details that are commonly lost when a query is converted to a plain object:

  • the original parameter order;
  • multiple occurrences of the same key;
  • empty keys or values.

You can then edit, add or remove rows and copy the rebuilt URL, the query without ?, or duplicate-safe JSON.

Verifiable example

This input contains two tags, a space, a literal plus and an empty value:

https://example.com/search?tag=astro&tag=seo&q=Tools+in+a+Tab&literal=a%2Bb&empty=#results

It produces these rows in the same order:

Key Value
tag astro
tag seo
q Tools in a Tab
literal a+b
empty empty string

The rebuilt URL retains the #results fragment. JSON is exported as a list of { "key", "value" } objects rather than a plain object, because a plain object could retain only one of the two tag values.

Encoding rules used by the tool

The query is interpreted as application/x-www-form-urlencoded, the format used by URLSearchParams. In this context, + represents a space and %2B represents a literal plus. Reserved characters inside a key or value are encoded again when the output is built.

That is not the same operation as encoding a complete URL. Use the URL encoder when you need to transform a component, path, or complete address without editing its parameter list. The guide to repeated query string parameters shows how to handle them with getAll(), append(), and data structures that do not discard information.

What it validates—and what it cannot decide

The tool reports incomplete percent escapes and decoded bytes that are not valid UTF-8. It accepts only HTTP and HTTPS as absolute URL schemes and limits work to 100,000 characters and 1,000 parameters to protect the tab.

It cannot decide which parameters an API accepts, whether a signature is valid, whether order matters to a server, or how a framework models arrays. tag=a&tag=b, tag[]=a&tag[]=b, and tag=a,b are different contracts. The tool preserves the actual input rather than guessing what the receiver expects.

Privacy

The input, editable rows, and output remain in browser memory. They are not added to the Tools in a Tab address, saved in local storage, or sent to a server.

Reviewed on by Tools in a Tab.