URL Parser — Break a URL into Its Parts
This free URL parser breaks any URL down into its component parts — protocol, host, port, path, query string, and fragment — and lists every query parameter with its value decoded. It uses the browser's built-in URL engine, the same parser the web platform uses, so the results match exactly how a browser or server will interpret the address.
It is handy for debugging redirects, reading long tracking URLs, checking how query parameters are encoded, or pulling apart an OAuth callback. Everything runs locally in your browser, so the URLs you paste — which often contain tokens and personal data — never leave your device.
How to use URL Parser
- Paste a URL into the input box. The breakdown appears instantly as you type.
- If your input has no scheme (like example.com/path), leave "Assume https://" enabled so it can still be parsed, or add the scheme yourself.
- Read the URL components table for the protocol, hostname, port, path, query, hash, and more; copy any value with its copy button.
- Review the query parameters table, where each key and its decoded value are listed — repeated keys appear once per occurrence.
- Use "Copy as JSON" to export all parameters as a JSON object for use elsewhere.
The parts of a URL
A URL is made of several components. Using https://user:pass@example.com:8443/docs/page?q=hi&tag=a#top as an example: the protocol is https:, the username and password are user and pass, the hostname is example.com, the port is 8443, the pathname is /docs/page, the search (query string) is ?q=hi&tag=a, and the hash (fragment) is #top. The origin combines the protocol, hostname, and port.
https://example.com:8443/docs/page?q=hi&tag=a#top protocol: https: host: example.com:8443 pathname: /docs/page search: ?q=hi&tag=a hash: #top
Query parameters and encoding
The query string carries key-value pairs after the ? separator, joined by &. This tool parses them with the URLSearchParams engine, which percent-decodes each value (so %20 and + both become a space) and preserves repeated keys such as tag=a&tag=b. The values shown are the decoded, human-readable versions; if you need to re-encode text for a URL, use the URL Encode/Decode tool.
Scheme-less input
A bare host like example.com/path is not technically a valid URL because it has no scheme, and the underlying parser rejects it. With the "Assume https://" option enabled, the tool retries such input with https:// prepended so you can still inspect it; a note tells you when a scheme was assumed. Input that already has a scheme is never altered.
Related terminology
- Scheme (protocol)
- The part before the first colon, such as https, mailto, or ftp, that says how the resource is accessed.
- Host and hostname
- The hostname is the domain or IP (example.com); the host also includes the port when one is present (example.com:8443).
- Origin
- The combination of scheme, hostname, and port that defines a security boundary in the browser's same-origin policy.
- Query string
- The part after the ? that carries key-value parameters separated by &; also called the search component.
- Fragment (hash)
- The part after the # that identifies a section within the resource; it is never sent to the server.
- Percent-encoding
- The URL escaping scheme that represents reserved or non-ASCII characters as %XX, for example a space as %20.
Frequently asked questions
- How do I extract query parameters from a URL?
- Paste the URL and look at the Query parameters table. Each key is listed with its percent-decoded value, repeated keys are shown once per occurrence, and you can copy the whole set as JSON.
- Does it handle repeated query keys like tag=a&tag=b?
- Yes. Both occurrences are listed in order, and the JSON export groups a repeated key into an array of its values.
- Can I parse a URL without https:// in front?
- Yes, as long as the "Assume https://" option is on. A scheme-less host like example.com/path is retried with https:// so it can be parsed; the tool tells you when it did this. You can also just type the scheme yourself.
- Are the URLs I paste uploaded anywhere?
- No. Parsing uses the browser's built-in URL engine and runs entirely on your device, so URLs — which often contain tokens or personal data — are never sent to a server.
- Why is the port empty for my https URL?
- When a URL uses the default port for its scheme (443 for https, 80 for http), the port component is empty by definition. The port only appears when it is explicitly stated, like :8443.