RUNWEBTOOLS
English

Query String Parser

Parse a URL query string into readable key–value pairs.

Paste a URL or query string
No parameters yet — paste a URL above.

Use on any page (bookmarklet)

Want Query String Parser without leaving the page you're on? Drag the button below to your bookmarks bar, then click it on any website to open Query String Parser right there — it runs entirely in your browser.

Query String Parser← drag this to your bookmarks bar

Use responsibly: a bookmarklet runs on whatever page you click it on. Avoid sensitive sites such as online banking, payment, or healthcare pages — you run it at your own risk. Everything is processed locally and no data is sent anywhere. See our Terms.

  1. Show your bookmarks bar if it's hidden — Ctrl+Shift+B (+Shift+B on Mac).
  2. Drag the button above onto the bookmarks bar.
  3. Open any website and click the bookmark — the Query String Parser panel appears in the top-right corner. Use ✛ to move it between corners, or ›/‹ to tuck it against the edge and pull it back out.
  4. Click the bookmark again (or the ✕) to close it.
Can't drag? Copy it and create a new bookmark with this as the URL:

Note: a few sites with strict security policies may block bookmarklets.

Examples

Parse a search URL

Input

https://example.com/search?q=hello+world&page=2

Output

q = hello world
page = 2

Repeated keys as JSON

Input

?tag=news&tag=sports

Output

{ "tag": ["news", "sports"] }

About this tool

This free online query string parser breaks a URL's query string into clean key/value pairs and a ready-to-copy JSON object. Paste a full URL or just the part after the ?, and every parameter is decoded from percent-encoding so you can read the real values. Everything runs in your browser with no upload.

How to use

  1. Paste a URL or query string (or click Sample to try it).
  2. Read the parsed parameters in the table.
  3. Copy the JSON if you need the data in code.

The plus-sign trap

Query strings inherit form-encoding rules, in which + means a space. A literal plus must therefore be written as %2B, and when it isn't, it turns into a space without any error. This quietly corrupts exactly the values most likely to contain one — international phone numbers, base64 tokens, and search terms with operators.

The rule applies only to the query string. A plus in the path part of a URL stays a plus, which is why the same character behaves differently either side of the ?. If a value is arriving mangled, this is the first thing to check; the URL encoder will show you the correctly escaped form.

Repeated keys have no single standard

Nothing in the URL specification says what ?tag=a&tag=b should mean, so frameworks disagree. Some return a list of both values, some keep only the first, and some keep only the last. PHP requires explicit bracket syntax (tag[]=a) before it builds an array at all. If you control both ends, pick one convention and document it; if you don't, test what the receiving system actually does rather than assuming.

Reading UTM links

Campaign links carry three parameters that matter — utm_source, utm_medium, and utm_campaign — plus two optional ones. Values are case-sensitive, so Facebook and facebook become two separate sources in analytics and split your reporting in half. It is also worth remembering that everything in a query string is visible to whoever clicks the link and to every server it passes through, so parameters are never a place for anything private.

Common uses

Debugging UTM tracking parameters before a campaign goes out, inspecting API request URLs, reading OAuth redirect parameters and error codes, working out why a value arrives mangled, and converting a query string into JSON for scripts and tests. The bookmarklet version parses the URL of whatever page you are already on.

Frequently asked questions

What is a query string?

A query string is the part of a URL after the ? — a list of key=value pairs joined by &, like ?q=hello&page=2. This tool splits it into readable parameters.

Why does a + in the URL become a space?

Because query strings inherit form-encoding rules, where + is the legacy encoding for a space. That means a literal plus sign in a value must be written as %2B — and if it isn't, it silently becomes a space. This is a routine source of broken search links and corrupted values like phone numbers and base64 tokens, which contain plus signs naturally. Note the rule applies to the query string only: a + in the path portion of a URL stays a plus.

Which UTM parameters actually matter?

Three are required for a link to be attributed at all: utm_source (where the traffic came from), utm_medium (the channel, such as email or cpc), and utm_campaign (which campaign). utm_term and utm_content are optional refinements. Two things to watch: the values are case-sensitive, so Facebook and facebook become separate sources in your reports, and UTM parameters are visible to the person clicking — never put anything private in them.

Can I paste a full URL?

Yes. Paste a whole URL or just the query string, with or without a leading ?. The tool finds the parameters either way and ignores any #fragment.

Does it decode percent-encoding?

Yes. Values like hello%20world and hello+world are decoded to 'hello world', so you see the real, human-readable values.

What happens with repeated keys?

Repeated keys such as ?tag=a&tag=b are kept and collapsed into an array in the JSON output, so no values are lost.

Is my URL uploaded anywhere?

No. Parsing happens entirely in your browser with no upload, so your URLs and their parameters stay private.

Learn more

Related tools