No scheme found — assumed https://
About this tool
A URL parser decomposes a URL string into its standard components — scheme, userinfo, host, port, path, query and fragment — following the WHATWG URL specification that browsers themselves implement. This tool runs that same parsing engine on your input as you type, percent-decoding each part, splitting the path into segments, and pulling apart the query string into individual name/value pairs (with duplicate keys preserved rather than silently dropped).
Use it to debug a redirect URL that isn't routing correctly, inspect the exact query parameters an analytics or OAuth callback is sending, confirm which port and origin a request will actually hit, or decode a path that's buried under percent-encoding. Paste a protocol-less host like example.com/path and it assumes https://; flip the "+ as space" toggle when you're reading form-encoded query values, and copy the parsed parameters straight out as JSON.
Parsing follows the WHATWG URL standard, so international domains are shown in their Punycode (xn--) form and default ports like 443 are implied rather than printed in the address.
Frequently asked questions
Why does my parsed URL show no port number?
When a URL omits the port, the scheme's default is implied — 443 for https, 80 for http — and the browser leaves the port field empty. The tool notes the implied default (e.g. "default 443") rather than inventing a value.
How are duplicate query parameters handled?
Repeated keys like ?x=1&x=3 are kept as separate rows in the name/value table, preserving their order. In the JSON output the duplicate key collapses to an array, so x becomes ["1", "3"].
What does the "+ as space" toggle do?
In form-encoded query strings a plus sign represents a space, but in other contexts it can be a literal +. The toggle lets you choose whether + is decoded to a space, so you can read either form-encoded or literal values correctly.