URL Decoder

Decode percent-encoded URLs and expand query parameters into a table.

Encoding Runs in your browser Shareable link
URL or encoded value
Decoded

Nothing decoded yet

Paste an encoded value or a whole URL. A full URL is broken down into its parts with every query parameter listed.

Runs entirely in your browser. Your data isn't uploaded — this page makes no network request with anything you type, which you can verify in your browser's network tab. How this works.

What is the URL Decoder?

Decoding a URL is usually the first step in debugging a redirect chain, an OAuth callback or a tracking link, and the interesting information is rarely the decoded string itself — it is the parameters hidden inside it.

This tool decodes percent-encoding and then breaks the URL apart: scheme, host, port, path, fragment, and every query parameter in a table, including repeated keys and nested encoded URLs.

How to use it

  1. Paste the encoded URL or value.
  2. Press Decode (or Ctrl/Cmd + Enter).
  3. Read the parsed table to see each query parameter separately.
  4. Use Decode again on any nested value that is still encoded.

Example

A callback URL decoded and broken into parameters.

Input
https://app.example.com/callback?next=%2Fdashboard%3Ftab%3Dbilling&state=abc
Result
path   /callback
next   /dashboard?tab=billing
state  abc

Features

  • Percent-decoding with optional + as space for form bodies
  • Full URL parsing into scheme, host, port, path, query and fragment
  • Query parameters shown in a table, preserving repeated keys
  • Detects double-encoded values and offers another pass
  • Handles malformed sequences with a clear error instead of throwing

Frequently asked questions

Why does decoding fail with "URI malformed"?
A % is present that is not followed by two hexadecimal digits — often a literal percent sign that was never encoded, or a truncated value. The error points at the offending position.
What does %25 mean?
A literal percent sign. Seeing %2520 instead of %20 is the classic sign of double encoding: the value was encoded twice.
Esc

Loading the catalog…