URL Parser & Query Editor
Break a URL into parts and edit its query live.
Paste a URL to break it apart
Enter a full URL (including the scheme, like https://). Its protocol, host, port, path, and hash appear below, and the query string becomes an editable table that rebuilds the URL as you change it.
Runs entirely in your browser
No query parameters. Use “Add parameter” to create one.
Parse and rebuild URLs locally
A URL packs several pieces into one string: the protocol (https), the host and optional port, the path, the query string, and the hash fragment. This tool parses a URL with your browser's built-in URL and URLSearchParams APIs — the same parser the browser itself uses — and lays each part out so you can read it. The query string becomes an editable table: change a value, rename a key, add a new parameter, or delete one, and the full URL rebuilds instantly with everything percent-encoded correctly. Nothing is sent anywhere; parsing and rebuilding happen entirely in your browser tab.
Common questions
What counts as a valid URL here?
Anything the browser's native URL parser accepts, which needs a scheme — for example https://example.com/path?a=1#top or ftp://host/file. A bare host like example.com without a scheme will not parse; add https:// in front.
How does the query parameter table work?
Each row is one key/value pair from the query string. Edit a key or value, delete a row with its × button, or use Add parameter to append a blank row. The URL above rebuilds live, re-encoding values as needed, so what you see is exactly what the browser would send.
Does it handle repeated keys like ?tag=a&tag=b?
Yes. Repeated keys show as separate rows and are preserved in order when the URL is rebuilt, matching how URLSearchParams treats them.
Will it decode percent-encoded values?
The table shows decoded values so they are readable, and re-encodes them when rebuilding the URL. The rebuilt URL string stays properly percent-encoded.
Is the URL uploaded anywhere?
No. The URL stays in your browser tab — all parsing and rebuilding use local JavaScript APIs and nothing is sent to a server.