URL Encoder / Decoder
Percent-encode or decode URLs and query values, and unwrap double-encoded strings from logs in one click.
Split a URL into protocol, host, port, path, query parameters, and fragment, and edit the parameters as a table. Free, private, and 100% in your browser.
Paste a URL to see its protocol, host, port, path, query parameters, and fragment.
Long URLs from logs, analytics, and redirects are hard to read: tracking parameters, encoded values, and fragments run together. Paste a URL to see each part on its own line and every query parameter decoded in a key-value table.
https://user:pass@shop.example.com:8443/en/products?color=blue&size=42#reviews
scheme https
credentials user:pass
host shop.example.com
port 8443
path /en/products
query color=blue&size=42
fragment reviewsProtocol, username, password, hostname, port (with the default port), origin, path segments, query string, and fragment, each with a copy button.
Keys and decoded values side by side, with the raw encoded value and a warning for repeated keys. Copy them all as JSON.
Change, add, or remove parameters in the table and the URL is rebuilt with correct encoding, ideal for tweaking API calls and tracking links.
OAuth redirects such as #access_token=…&state=… are split into their own table.
Punycode hostnames like xn--mnchen-3ya.de are shown in Unicode (münchen.de).
Parsing uses the WHATWG URL standard built into your browser, so the result matches what fetch() and the address bar see. Nothing is sent anywhere.
A URL such as https://user:pass@example.com:8080/path/page?key=value#section has a scheme (https), optional credentials (user:pass), a host (example.com), an optional port (8080), a path (/path/page), a query string (key=value), and a fragment (section).
The host is the domain name or IP address, plus the port if one is given. The origin is the scheme, host, and port together, such as https://example.com:8080. Browsers use the origin for security rules like CORS and cookies.
A key can appear several times, as in ?tag=a&tag=b. The table lists every occurrence in order and flags the repeated key. When you copy the parameters as JSON, repeated keys become arrays.
No. The fragment is only used by the browser, for example to scroll to a section or to pass data to a single-page app. Servers never receive it, which is why OAuth implicit flow put tokens there.
The tool assumes https:// so that inputs like example.com/path or localhost:3000/api can still be parsed, and it tells you that the scheme was added.
Percent-encode or decode URLs and query values, and unwrap double-encoded strings from logs in one click.
Identify the browser, operating system, device type, and bots from any User-Agent string, one or thousands at once.
Convert cURL commands, including Copy as cURL from DevTools, into JavaScript fetch() or axios code.
Search every HTTP status code, from 200 OK and 404 Not Found to 418 I'm a teapot, with causes and fixes.