Skip to content

Developers

URL Parser

URL Parser

Beta

Paste a URL and see its protocol, credentials, host, port, path, query string as a table, and hash, plus a JSON form to copy. Validate it, and require HTTPS on request. Runs in your browser, no signup.

Use via API
  • Free, no sign-up
  • REST + MCP
  • Updated
  • Reviewed by Olgun Ozoktas
Paste a URL to parse it.

How to parse a URL

  1. Paste the URL

    Paste a full URL with its scheme into the box, or click Load sample. The components appear at once.
  2. Read the parts

    The Components list shows protocol, credentials, host, port, origin, path, query string and hash. Empty parts show a dash.
  3. Check the query

    The Query parameters table lists one row per key and value, with repeated keys on separate rows and encoded characters decoded.
  4. Copy the JSON

    Click Copy to put the structure on your clipboard as JSON, for a test fixture, a bug report or a script.

Common use cases

Debugging tracking links

See every UTM parameter and its decoded value in a table instead of scrolling a 300-character link.

Checking redirect targets

Confirm the scheme, host and port of a redirect before you allow it, with Require HTTPS on.

Reading log lines

Paste a request URL from a log and copy its JSON form into a ticket.

API tests

Turn a URL into the JSON fixture a test asserts against, with repeated keys as arrays.

Why use a URL parser?

A long URL from a log line, an email campaign or a redirect chain hides its parts: the host behind credentials, a port after the host, a query string with repeated keys, a fragment that never reaches the server. This parser splits the URL the way a browser does, shows each part in its own row, lists every query parameter with repeated keys as separate rows, and gives you the whole structure as JSON. A validator with an optional HTTPS requirement tells you whether the string is a URL at all.

The URL Parser splits a URL the way a browser does and shows every part in its own row: protocol, username and password, host, port, origin, path, query string and hash. The query string becomes a table with one row per parameter, repeated keys on separate rows and percent-encoding decoded, and the whole structure is available as JSON to copy. A validator reports whether the string is a URL at all and can require HTTPS.

The parsing and the validation are the same functions behind the REST tools url-parse and url-validate and the MCP tools url_parse and url_validate, so a script sees exactly what the page shows.

To go the other way, the JSON to URL Params tool builds a query string from a JSON object with correct encoding.

How it compares

A browser's address bar and the URL constructor in a console split a URL too, but they do not show repeated keys as rows, decode the values in a table, or validate with an HTTPS requirement, and they are not available to a script or an AI client. Other online parsers often stop at the query string or send the URL to a server.

This page parses in your browser, shows components, a query table and JSON, validates with an optional HTTPS rule, and exposes the same functions through a REST endpoint and an MCP server. It does not resolve relative URLs and says so.

Tips

  • Include the scheme. Without https:// the string is not a URL to the parser.
  • Turn on Require HTTPS when the URL will be stored as a webhook or redirect target.
  • Repeated keys are arrays in the JSON; a server that reads only the last value will see the last row.
  • The hash never reaches a server; do not put secrets there and expect the server to see them.
  • Use JSON to URL Params to build a query string from the JSON you copied here.

Frequently Asked Questions

What does the parser split a URL into?

Protocol, username and password if present, host, port, origin, path, the raw query string, and the hash. The query string is also broken into a key and value table, and the whole result is shown as JSON. Percent-encoded characters in keys and values are decoded in the table.

How are repeated query keys handled?

A key that appears more than once, such as size=42&size=43, becomes one row per value in the table and an array in the JSON. That matches how most servers read repeated parameters.

Why does the port show as empty for a normal URL?

The parser follows the browser's URL rules: a default port (80 for http, 443 for https) is dropped. A port shows only when it differs from the scheme's default, as in https://host:8443.

What does Require HTTPS do?

It runs the validator with the require_https option, so an http:// URL is reported as invalid even when it is well formed. Use it when a link must be secure, for example before you store a webhook target or a redirect URL.

Is the hash sent to the server?

No. The part after # stays in the browser and never reaches the server; the parser shows it so you can see what a client-side router or an anchor link will use.

Does the URL Parser require a signup?

No. It is available with no signup and no usage limits. The URL is parsed in your browser and is not sent anywhere.

Can I parse URLs from a script or an AI client?

Yes. The same functions are the REST tools url-parse and url-validate at api.findutils.com and the MCP tools url_parse and url_validate at mcp.findutils.com. Both take a url argument; the validator also takes require_https.

What makes a URL invalid?

A missing scheme (example.com without https://), spaces or control characters, an unbalanced percent-encoding, a port outside 0 to 65535, or a host that is not a valid domain name or IP address. The validator names the reason it found.

How do I turn the query back into a URL?

Edit the JSON's query object and pass it to the JSON to URL Params tool, which builds a query string with correct encoding. This page reads URLs; that page writes them.

Are relative URLs supported?

No. A URL needs a scheme and a host to be parsed, so /path?x=1 is reported as invalid. Prefix it with the site's origin first.

Rate This Tool

0/1000

Get Weekly Tools

Suggest a Tool