Skip to content

Query string editor

Edit query parameters as rows, preserve repeated names, and build an encoded URL with a live preview.

Rows replace its query. Import an existing query before editing.

Duplicate names, empty values and row order are preserved. Uncheck a row to leave it out without deleting it. The URL fragment is kept.

Parameter 1
Parameter 2
2 / 100 rows · 2 included
Encoded URL58 characters
https://example.com/search?q=good+coffee&tag=local#results
Processed on your device

How it works & useful details

How this tool works

Use HTTP(S) URLs without credentials. Import the URL query to populate the rows; otherwise the rows replace it. Duplicate keys, empty keys, empty values and order are preserved. URLSearchParams uses + for spaces and normalizes query encoding. Import uses forgiving decoding for invalid UTF-8 sequences. Up to 100 rows, 256 characters per name and 2,048 per value.

URLSearchParams specification

About this tool

Query string editor lets you change URL parameters as rows, preserving repeated names like filter=one&filter=two and handling encoding for you. It is the precise way to edit tracking or filter links without breaking them.

A live preview shows the final encoded URL as you edit, so mistakes are visible immediately. All parsing and building happens locally.

How to use it

  1. Paste the URL or start from an empty query.
  2. Add or edit parameter rows, including repeated names.
  3. Check the live encoded preview of the resulting URL.
  4. Copy the finished URL.

Worked example

Starting from https://example.com/search#results and adding the rows q = "good coffee" and tag = local produces:

https://example.com/search?q=good+coffee&tag=local#results

The space is encoded as +, following the application/x-www-form-urlencoded rules that URLSearchParams and HTML forms use, and the fragment #results stays at the end. Add a second tag row, and tag appears twice in the query in the order you entered.

Why rows beat hand-editing

Editing long query strings by hand is error-prone. It is easy to break an escape sequence, lose an & between parameters, or encode a value twice. Editing parameters as rows keeps each name and value separate, and the tool handles encoding. Rows can be disabled temporarily to test a URL without a parameter.

Repeated names such as tag=fresh&tag=local are preserved, because many frameworks read them as a list. Parameter order is kept too. It rarely matters to servers, but it does matter for caching and for comparing URLs as text.

Frequently asked questions

How are repeated parameters preserved?

Each row keeps its own name, so parameters that appear several times stay in order instead of collapsing into one value.

Is the output encoded correctly?

Values are percent-encoded for query use, and existing encoding is not double-applied.

What is the limit?

Up to about 238,000 characters of URL text.

Why %20 in some URLs and + in others?

Both encode a space. + is used in form-encoded query strings, and %20 is used in paths and by encodeURIComponent. Servers decode both correctly in query strings.