URL Parser & Query Builder
Take a URL apart and put it back together. Every component is listed separately, query parameters are shown decoded so percent-encoding stops getting in the way, and editing any of them rebuilds a correctly encoded URL. Handy for reading a tracking-laden link or assembling an API request by hand.
Developer Tools
Private by default
This tool runs entirely in your browser. Your data is never uploaded to a server.
How it works
The parts of a URL
scheme://user:password@host:port/path?query#fragment
Parsing follows the WHATWG URL standard, the same one your browser uses, so what you see here is what the browser would resolve. Rebuilding re-encodes each parameter, which is what makes a hand-edited query string safe.
- An empty port means the scheme's default is in use: 443 for https, 80 for http.
- The fragment is never transmitted — it exists only in the browser.
- Repeated parameter names are legal and are kept in order. Which one a server honours is up to that server.
- Percent-encoding rules differ by position: a space is + in a query string but must be %20 in a path.
For reference
Reading a URL left to right
Taking https://shop.example.com:8443/catalog/shoes?size=42#reviews apart.
| Part | Value | Notes |
|---|---|---|
| Protocol | https: | Includes the colon |
| Hostname | shop.example.com | Domain only, no port |
| Port | 8443 | Empty when it is the default |
| Path | /catalog/shoes | Always starts with / |
| Query string | ?size=42 | Includes the question mark |
| Fragment | #reviews | Never sent to the server |
The origin for this URL is https://shop.example.com:8443 — the three parts browser security is scoped to.
How to use
4 clear steps.
Paste a full URL, including its scheme.
Read the component table for the parts it breaks into.
Edit, add, or remove query parameters.
Copy the rebuilt URL.
Good to know
Frequently asked questions
- Why does it reject my URL?
- It parses absolute URLs only, so a scheme is required. `example.com/path` has none; `https://example.com/path` parses. That is the same rule browsers and the URL standard apply.
- What is the difference between origin and hostname?
- The hostname is just the domain, like `shop.example.com`. The origin is the scheme, host, and port together — `https://shop.example.com:8443` — and it is what browser security rules such as CORS and cookies are scoped to.
- Why did my space become a plus sign?
- Rebuilding uses the standard query-string encoding, where a space in a parameter value is `+`. Servers decode `+` and `%20` identically in a query string, so both are correct — but only `%20` works in the path.
- Is the fragment sent to the server?
- No. Everything after the # stays in the browser and never appears in the request. It is why fragments are used for in-page anchors and client-side routing, and why putting anything the server needs there does not work.