Split a web address into scheme, host, port, path, query and fragment, and list every parameter. Nothing leaves your browser.
The parser cuts the address in a fixed order. The fragment is everything after the first #. The query is everything after the first ? that comes before it. The scheme is the letters before the first colon, such as https or mailto. If the rest starts with //, what follows up to the next / is the authority: optional username and password, then the host, then an optional port. Credentials are split at the last @, and the password starts after the first colon in them. An IPv6 host in square brackets, such as [::1]:3000, is kept whole. What remains is the path. Addresses without // after the scheme, such as mailto:a@b.co or tel:+1555, have a scheme and a path but no host. A protocol-relative address that starts with // has an empty scheme.
The port must be a number from 0 to 65535. When the scheme has a well-known port, the tool says so: https has 443, http and ws have 80, wss has 443, ftp has 21, ssh and sftp have 22, ldap has 389 and ldaps has 636. An address with no port shows the default next to it, and an address that writes the default port shows that it can be left out. A password is shown as ••• unless you turn on Show the password, so you can share a screenshot or a copy of the result without leaking it. The username is always shown. Nothing is checked against the real server: the tool reads the text only.
The query is split on &. Every segment becomes one row, in the order written, so a repeated key such as size=42&size=43 appears twice. Only the first = splits a key from its value, so t=a=b has the value a=b. A segment without = has an empty value and is marked. Empty segments between && are skipped. Each value is shown decoded and raw. Decoding turns %XX sequences into UTF-8 text, so %C3%A9 becomes é, and with the plus option on (the default) a + becomes a space, as in form submissions. A + stays a plus when the option is off or when it is written %2B. A broken sequence, such as a lone % or bytes that are not valid UTF-8, is left as written and counted in a notice. The table shows the first 500 parameters; the text box lists all of them.
Paths are shown as written, not decoded. Host names are shown as typed and are not converted from or to punycode. An address without a scheme gets a message asking for one, since example.com/page could be read in too many ways. To turn text into %-sequences or back, use the Text Encoder. The text is processed in your browser, up to 1,000,000 characters, and is not uploaded or stored.
The address must start with a scheme such as https:// or mailto:. A bare example.com/page has none, so add https:// in front. If you only have the part after the question mark, use the query string page.
Addresses with a password are often pasted into tickets and chats. The password shows as ••• until you turn on Show the password. The username and every other part are always shown.
Raw value is the text exactly as written after the equals sign. Value is the same text with %XX sequences turned into characters and, if the plus option is on, each + turned into a space.
No. Each one gets its own row in the order it appears. That matters for lists such as size=42&size=43, where servers differ on which copy wins or whether all are used.
No. It is parsed in your browser, in this tab, and no server receives it, and the tool does not open the address. Your choices are saved in this browser, the text is not.