Overview
Paste any string to check whether it parses as a valid, well-structured URL, using the browser’s native URL() constructor rather than a hand-rolled regex - the same parsing logic browsers use to navigate. On success, the URL is broken into its component parts (protocol, hostname, port, path, query string, and fragment) so you can immediately see how a link will actually resolve, which is especially useful for spotting a typo’d protocol or an unexpected extra path segment. On failure, the message distinguishes a missing scheme (no "https://" or similar) from a structurally broken URL. Runs entirely client-side.
Best for: Confirming a link is well-formed before publishing it
How to use this tool
- Paste a URL. Any string you want checked, with or without a protocol.
- Native parser validates it. The browser’s own URL() constructor checks the string, the same logic used to navigate.
- See the full breakdown. Protocol, hostname, port, path, query string, and fragment are all shown separately.
- Spot the problem if it fails. A missing scheme is called out distinctly from a structurally broken URL.
Why use this tool
Native browser parsing
Uses the same URL() logic browsers rely on to navigate, not a hand-rolled regex that can miss edge cases.
Full component breakdown
See protocol, host, port, path, query, and fragment individually, not just a pass/fail result.
Distinguishes failure types
A missing "https://" is explained differently than a genuinely malformed URL.
Catches unusual ports at a glance
The Host vs. Hostname distinction makes a non-default port immediately visible.
Frequently asked questions
A URL is only fully specified once it has a scheme (protocol) telling a client how to interpret the rest of the string - without one, "formatiq.com/tools" is ambiguous between a URL and a plain path or filename, so the parser rejects it rather than guessing.
No - this only confirms the string is structurally a valid URL according to the URL standard. A URL can be perfectly well-formed and still point to a domain that doesn’t resolve or a page that returns a 404; checking reachability would require actually fetching it, which a client-side tool intentionally doesn’t do.
Hostname is just the domain or IP address, while Host includes the port number too when a non-default one is specified (e.g. "formatiq.com:8080" vs. "formatiq.com") - useful for spotting when a URL is pointing at an unusual port.