URL Query String Decoder

Parse and decode URL query strings into readable key-value pairs. 100% client-side — nothing leaves your browser.

192 chars
Base URL:https://codekeet.com/search
Fragment:#results
10
Parameters
9
Unique keys
4
Encoded values
156
Query chars
🔍 Decoded parameters
KeyValueActions
1
2
3
4
5
6
7
8
9
10

🔗 Rebuilt query string

q=hello%20world&category=dev%20tools&page=2&sort=relevance&tag=web&tag=javascript&utm_source=newsletter&utm_medium=email&user%5Bname%5D=Alice&user%5Bage%5D=30

📋 JSON representation

{
  "q": "hello world",
  "category": "dev tools",
  "page": "2",
  "sort": "relevance",
  "tag": [
    "web",
    "javascript"
  ],
  "utm_source": "newsletter",
  "utm_medium": "email",
  "user[name]": "Alice",
  "user[age]": "30"
}
Duplicate keys become arrays. Bracket notation (user[name]) is kept as-is.
🔒 100% private: All parsing happens in your browser. Your URLs (including any tokens) never leave your device.

About URL Query String Decoder

Query strings are the part of a URL after the "?" — a series of key=value pairs separated by "&". They carry search terms, pagination, filters, tracking parameters (UTM), API arguments, and authentication tokens. Raw query strings are hard to read: %20 means space, %26 means literal &, %3D means literal =, and + often means space (form data convention). Long query strings from real APIs can be hundreds of characters of encoded gibberish. This tool parses a query string into a clean table — each key and value decoded and displayed side by side. It handles URL encoding, plus signs, duplicate keys, and bracket notation (a[b]=c), and shows both raw and decoded forms so nothing is lost.

How It Works

  1. Paste a full URL or just the query string (?a=1&b=hello%20world).
  2. See each parameter decoded in a table.
  3. Toggle between raw (encoded) and decoded views.
  4. Copy individual values, export as JSON, or use the rebuilt query string.

✨ Key Features

  • ✓Parse query string from a full URL or a fragment
  • ✓Decode URL encoding (%20, %26, %3D, %2F, etc.)
  • ✓Handle "+" as space (application/x-www-form-urlencoded)
  • ✓Support duplicate keys (?tag=a&tag=b)
  • ✓Detect bracket notation (a[b]=c, a[]=1)
  • ✓Show both raw and decoded values
  • ✓Rebuild the query string from the parsed parameters
  • ✓Export as JSON object
  • ✓Copy individual keys or values
  • ✓Show parameter count and total length
  • ✓100% client-side — no data sent to any server

🎯 Common Use Cases

  • →Debugging API requests with complex query strings
  • →Decoding UTM tracking parameters on marketing links
  • →Reading OAuth callback URLs with encoded tokens
  • →Parsing search/filter URLs from a web app
  • →Understanding duplicate keys and bracket notation
  • →Extracting specific parameters from long URLs
  • →Converting a query string to a JSON object
  • →Analyzing URLs from server logs

💡 Advanced Tips & Pro Insights

  • ▸URL encoding (%XX): special characters are encoded as % followed by two hex digits. Space = %20, & = %26, = = %3D, / = %2F, ? = %3F, # = %23, + = %2B.
  • ▸In application/x-www-form-urlencoded (typical HTML forms and query strings), "+" also represents a space. This tool decodes both %20 and + as space.
  • ▸Duplicate keys are valid (?tag=a&tag=b) and common. This tool preserves both. Most APIs treat them as an array.
  • ▸Bracket notation (?user[name]=Alice&user[age]=30) is a PHP/Rails convention for nested objects. This tool detects and displays it but keeps the raw key.
  • ▸The "#" fragment is not part of the query string — it is client-side only. This tool stops at "#".

Frequently Asked Questions

Is this query string decoder free?▾
Yes, this URL query string decoder is completely free with no signup, email, or usage limits.
Is my data safe?▾
Yes, 100% safe. All parsing and decoding happens in your browser. Your URLs and tokens are never uploaded to any server.
What is URL encoding?▾
URL encoding (percent-encoding) converts special characters into %XX format so they can be safely included in a URL. Space becomes %20, & becomes %26, = becomes %3D. Non-ASCII characters (like é or नमस्ते) are encoded as UTF-8 byte sequences.
Why does + sometimes mean space?▾
In application/x-www-form-urlencoded (used by HTML forms and most query strings), "+" is shorthand for space. This tool decodes both %20 and + as space. If you need a literal +, it should be encoded as %2B.
How are duplicate keys handled?▾
Duplicate keys are valid and common (?tag=a&tag=b). This tool lists every occurrence separately, so nothing is lost. When exporting to JSON, they become an array.
What is bracket notation?▾
Bracket notation (?user[name]=Alice) is a convention used by PHP, Rails, and some frameworks to represent nested objects. This tool keeps the raw key "user[name]" and can optionally show the nested structure.
Can I decode a full URL or just the query part?▾
Both. Paste "https://example.com/path?a=1&b=2" or just "?a=1&b=2" — the tool extracts the query string and parses it. If there is no "?", it treats the entire input as a query string.
What about the #fragment?▾
The fragment (after "#") is not sent to the server and is not part of the query string. This tool stops parsing at "#".