URL Parser
Paste any URL — see the protocol, host, port, path, query parameters (decoded), hash, and origin laid out.
Enter input above to see the result.
Enter input above to see the result.
What is this for?
A URL is a structured string with seven well-defined parts (scheme, authority, host, port, path, query, fragment) that you eyeball as one blob. When something is wrong — the wrong parameter, an unexpected port, an extra encoded character — it's much easier to spot in a parsed table than in the raw string. This tool uses the browser's native URL object so the parse exactly matches what JavaScript sees, then breaks each query parameter out so the decoded values are visible alongside the raw form.
When to use it
- Debugging an OAuth callback URL where the
stateorcodeparameter looks wrong or is truncated. - Inspecting a tracking URL (UTM tags, click-tokens, session IDs) and seeing the actual values rather than the encoded blob.
- Confirming a webhook URL parses the way the receiving service expects — particularly the path, scheme, and any query parameters.
- Eyeballing why a deep link works in one app and not another (port? scheme? authority?).
- Checking whether sensitive data is accidentally leaking in query parameters instead of request headers.
- Verifying redirect URLs in authentication flows match your allowlist exactly.
How it works
- Paste any valid URL into the input field and the tool parses it immediately in your browser.
- The URL is broken into its seven canonical parts: protocol (scheme), host (hostname), port, path, query string, fragment (hash), and computed origin.
- Query parameters are extracted and decoded separately, showing both the raw
application/x-www-form-urlencodedform and the decoded human-readable value side by side. - If a URL is malformed or cannot be parsed as a valid URL, the tool will report an error rather than guessing.
- All parsing is done locally in your browser — nothing is sent to any server.
Common gotchas
- Repeated query keys are real.
?a=1&a=2is two values fora; tools that read only the first miss data. The parser shows all values per key. - The fragment never reaches the server. Anything after
#stays in the browser. If your backend isn't seeing data you put in the URL, check whether it's actually in the fragment. - Encoding matters.
%20in a query value decodes to space;+in a query value also decodes to space (perapplication/x-www-form-urlencoded). The browser'sURL.searchParamshandles both. - Default ports don't appear in
port. A URL likehttps://example.com/has port empty (the default 443 is implied). The same applies to port 80 forhttp. - Origin is sometimes "null". For
file://,data:, or sandboxed contexts, origin is opaque and shown as the literal stringnull. - This is parsing, not validation. A URL can parse cleanly and still be wrong for your application (e.g. wrong host, missing path, scheme not supported).
Limitations
- The tool relies on the browser's built-in
URLstandard parser, so edge cases or non-standard URL schemes may behave differently in other contexts. - If your URL contains non-ASCII characters (e.g. emoji, Chinese, accented letters), they will be shown both decoded and in percent-encoded form depending on how they were input.
- Very long URLs may be truncated in display for readability, but the full value is always available for copying.