URL Parser & Query String Editor

This free URL parser splits any link into scheme, host, path, query parameters, and hash route, lets you edit every parameter in a table with decoded previews, and rebuilds the URL live as you type. A one-click cleanup strips tracking parameters — all computed locally with nothing uploaded.

All computations run locally in your browser, no data uploaded to server.
     

How To Use

  1. Paste a full URL, a scheme-less link (example.com/path?x=1), a bare query string (?a=1&b=2), or a hash (#/route?x=1) into the input. Parsing re-runs live as you type.
  2. The URL parts table breaks the link into scheme, host, port (shown only when it is not the default), path, query, and hash — each with a one-click copy.
  3. Edit query parameters in the table: change keys or values, read the decoded preview, tick or clear Included to keep or drop a parameter, or delete the row. Every edit rebuilds the URL immediately.
  4. Add parameter appends an empty row to the table and to the rebuilt URL.
  5. Remove tracking params strips every utm_*, fbclid, gclid, msclkid, and ref parameter in one click and names exactly what was removed.
  6. Use Copy rebuilt URL to copy the final link.

Usage Example

Input URL:

https://shop.com/item/123?utm_source=newsletter&tag=sale&tag=summer&debug&next=%2Fcart%3Fid%3D7#/orders?status=paid

URL parts:

Scheme: https   Host: shop.com   Path: /item/123
Query: utm_source=newsletter&tag=sale&tag=summer&debug&next=%2Fcart%3Fid%3D7
Hash:  #/orders?status=paid

Query parameters (one row per value, flags included):

utm_source = newsletter
tag        = sale
tag        = summer
debug      (no value)
next       = %2Fcart%3Fid%3D7   →  decoded: /cart?id=7

The hash is parsed separately as the route #/orders with its own parameter status=paid. After Remove tracking params, the rebuilt URL is the clean link:

https://shop.com/item/123?tag=sale&tag=summer&debug&next=%2Fcart%3Fid%3D7#/orders?status=paid

Use Cases

Cleaning tracking parameters is the most common reason to parse url online. A shared campaign link like https://shop.com/item/123?utm_source=newsletter&fbclid=IwAR2x&gclid=EAIaIQ carries parameters you rarely want to forward or archive, and deleting them by hand easily misses one &-separated fragment or breaks the URL. One click removes every utm_*, fbclid, gclid, msclkid, and ref parameter — and reports exactly what it removed — so you can remove utm parameters and copy a clean link.

Debugging redirects and OAuth callbacks: paste the callback URL to see which parameters actually came back — code, state, session_state — and read every percent-encoded value in the decoded preview instead of deciphering %3D and %2F by eye. To convert such encoded values in bulk, the URL Encode / Decode tool percent-encodes and decodes any string in one click.

Building and editing API links: add page=2, change lang, or toggle a flag directly in the parameter table. This url parameters editor stays reliable where the address bar fails: when a value itself contains an encoded & (%26), the rows are already separated, so you never miscount delimiters.

SPA and hash-route debugging: parameters hidden behind # — as in https://app.com/#/orders?status=paid — are invisible to ordinary address-bar inspection. The tool splits the hash route from its own query string and lists those parameters in a separate table.

Multi-value and flag parameters such as ?tag=a&tag=b&debug get one row each — repeated keys and value-less switches alike — which makes this query string parser a fast way to inspect, enable, disable, or delete individual parameters without touching the raw string.

Frequently Asked Questions

What is a query string?

The query string is the part of a URL after the ? — one or more key=value pairs joined by & — that carries parameters to the server, for example https://example.com/search?q=shoes&page=2. This tool splits it into an editable table with decoded previews.

What is the difference between a query and a fragment (hash)?

The query (after ?) is sent to the server with the request. The fragment (after #) never leaves the browser — pages use it for in-page anchors and, in single-page apps, for client-side routing. That is why this tool parses the hash route and its parameters into their own table.

Should spaces be encoded as + or %20?

Both spellings appear in the wild: HTML forms and URLSearchParams write + in query strings, while component encoding uses %20. This editor keeps whichever form your URL already uses, and the URL Encode / Decode tool converts between the two modes.

What are UTM parameters and why remove them?

utm_source, utm_medium, utm_campaign, and friends tag where a link came from so analytics tools can attribute visits. Removing them does not change the destination page — the cleaned link just stops leaking campaign context when you share, print, or archive it. The cleanup also strips the common click ids fbclid, gclid, and msclkid, plus ref.

How are multi-value and flag parameters handled?

Repeated keys such as ?tag=a&tag=b get one row per value, and a parameter without an = sign (like ?debug) is shown as a value-less flag. Each row can be edited, temporarily excluded with its checkbox, or deleted.

Does editing re-encode my values?

Untouched parameters keep their original encoding, so a parse → rebuild round-trip preserves the URL exactly. Only text you type is minimally percent-encoded (spaces, &, #, and non-ASCII characters) so the rebuilt URL stays valid.

Is my URL sent anywhere?

No. Parsing and rebuilding run entirely in your browser with the native URL API. Nothing is uploaded.