Skip to content
epitometool

URL parser

Dev quality-of-life

Break any URL into protocol, host, port, path, query, and fragment, with the query string decoded into readable key/value pairs — all client-side.

Updated

URL

Components

Protocol
https:
Username
user
Password
pass
Hostname
www.example.com
Port
8443
Path
/path/to/page
Query
?q=hello+world&lang=en
Fragment
#section-2
Origin
https://www.example.com:8443

Query parameters (2)

  • qhello world
  • langen

Quick start

How to use the URL parser

Paste a URL, read its parts and parameters — nothing leaves your browser.

  1. Step 1
    Paste a URL

    Drop a full absolute URL, including the https:// scheme, into the input.

  2. Step 2
    Read the breakdown

    See protocol, host, port, path, query, and fragment, plus decoded parameters.

  3. Step 3
    Copy a component

    Copy any single part with its Copy button to reuse elsewhere.

In-depth guide

Parsing a URL into its parts

A URL packs a surprising amount of structure into one string: scheme, credentials, host, port, path, query, and fragment. This tool uses the browser's standard URL parser to split any absolute URL into those components and to decode the query string into readable key/value pairs — useful for debugging links, tracking parameters, and redirect chains.

The anatomy of a URL

Take https://user:pass@host:8443/path?q=1#top. The parser identifies the protocol (https:), optional username/password, the hostname and port, the path, the query (everything after ?), and the fragment (after #). It also reports the origin — scheme + host + port — which is the security boundary browsers use.

When to reach for it

  • Debugging tracking links — see every UTM or campaign parameter decoded.
  • Inspecting redirects — confirm the host, port, and path a link really points to.
  • Auditing credentials — spot a username/password accidentally embedded in a URL.
  • Understanding encoding — compare the raw query string with its decoded parameters.

Step by step

  1. Paste a full, absolute URL (including https://) into the input box.
  2. Read the component breakdown on the left and the decoded query parameters on the right.
  3. Copy any single component with its Copy button.
  4. If you see an error, add the missing scheme — the parser requires an absolute URL.

Common pitfalls

  • Relative URLs are rejected. The WHATWG parser needs a scheme; /path?a=1 alone is not a valid absolute URL.
  • Raw vs decoded query. The Query component shows the encoded string; the parameter list shows the decoded values. They will look different for anything containing %20 or +.
  • Punycode hostnames. Unicode domains are shown in their xn-- form, which is what is actually sent — that is correct, not a bug.

Privacy and how it runs

The URL is parsed by the browser's built-in engine inside the page. Nothing is sent to a server, logged, or stored, so you can safely inspect links that carry session tokens, signed parameters, or credentials. The tool works offline after loading and forgets everything when the tab closes.

Frequently asked questions

Does this URL parser send my URL anywhere?

No. Parsing uses the browser's native URL API in the page — nothing is requested or logged. You can dissect URLs containing tokens or session IDs safely; confirm in DevTools → Network that no calls fire.

What components does it break a URL into?

Protocol, username, password, hostname, port, path, query string, fragment (hash), and the computed origin. It also decodes the query string into individual key/value pairs so you can read each parameter without manual percent-decoding.

Why does it say my URL is invalid?

The parser needs an absolute URL with a scheme. "example.com/path" is rejected because it has no protocol; add https:// to make it valid. This matches how the WHATWG URL standard and real browsers behave.

Are the query parameters decoded?

Yes. Percent-encoding and + (space) in the query string are decoded, so q=hello+world shows as "hello world". The component view, by contrast, shows the raw encoded query string so you can see exactly what was transmitted.

Can it parse the username and password in a URL?

Yes — userinfo like https://user:pass@host is split into separate username and password fields. Embedding credentials in URLs is discouraged for security, but the parser surfaces them so you can audit links that contain them.

Does it handle internationalised domain names?

The URL API normalises internationalised hostnames to their Punycode (xn--) form, which is what is actually sent on the wire. That lets you see the ASCII-compatible encoding a browser would use for a Unicode domain.

Keep exploring

More tools you'll like

Hand-picked utilities that pair well with the one you're on — all free, client-side, and zero-signup.