URL Fixer
Repair broken URLs online — smart quotes, missing https, double slashes, mixed encoding, line breaks pasted from Word or Slack.
What is URL Fixer?
You copied a link out of an email, a Word doc, a Slack message, or a Confluence page — and now it has curly quotes around it (" instead of "), an en-dash (–) where a hyphen should be, no https:// at the front, or a stray newline that snapped the URL in two. Paste it here and get a working URL back. URL Fixer cleans up the syntactic damage that copy-paste leaves behind, following the rules in the WHATWG URL Standard and RFC 3986.
The fixer handles the stuff a regex would have to special-case forever: smart quotes, smart dashes, accidental double slashes in the path, mixed or double percent-encoding (so %2520 becomes %20 when it's clearly a double-encode), unencoded spaces, and CR/LF/tab characters that landed inside the URL when someone hit Enter at the wrong time. It does not invent a hostname, change your query parameters, or add a path segment that wasn't there. The output is then validated against the browser URL API rules so you know it will actually parse on the other end. Internationalised host names (Unicode, IDN) are preserved per RFC 3987.
Your URL goes to the backend so the fix can run, then comes straight back. We don't log the input — URLs often carry session tokens, customer IDs, or other things you don't want sitting in a log file. If your URL contains an actual secret (a signed S3 link, a one-time auth token), rotate it after pasting anywhere — including here.
How to Use the URL Fixer
Three steps. Each one matches a button on this page — there's nothing hidden.
Paste the Broken URL or Load the Sample
Drop your broken URL into the left editor. Click Sample URL to load a deliberately broken example with curly quotes, an en-dash, a missing scheme, and an unencoded space — the kind of thing you actually paste out of an email. Example of a broken URL:
"shop.example.com/orders/ORD–1001?customer=Ava Chen"Surrounding curly quotes from a Word doc, en-dash inside the path segment, no scheme, and a literal space in the query value. Four separate problems in one short line.
Click Fix URL!!
Hit the green Fix URL!! button. The fixer strips the wrapping quotes, replaces the en-dash with a hyphen, prepends https://, and percent-encodes the space so the result conforms to RFC 3986.
Copy the Fixed URL
The right panel shows the cleaned-up URL. Skim it, copy it, drop it into your browser, your fetch() call, your README, or the test that was failing. If you want to see the URL broken down into its parts, send it through our URL Parser next.
When You'd Actually Use This
Links Pasted From Email or Word
Outlook and Word silently turn straight quotes into curly quotes and hyphens into en-dashes. The URL looks fine in the message and broken the second you paste it into a terminal. The fixer reverses that "smart" autocorrect so the link works again.
URLs Wrapped in Quotes by a Logger
JSON-formatted application logs love to print URLs as "https://api.example.com/v1/orders?id=ORD-1001". When you grab it for a quick curl, the surrounding quotes come along. The fixer drops them and you stop wondering why your shell is complaining about an unmatched quote.
Newlines Dropped Mid-URL by Slack or Jira
Long URLs in Slack, Jira, or a Confluence page often wrap and pick up a stray \n when you copy them. The path looks right but fetch() rejects the URL with a parse error. The fixer flattens the line breaks so the URL is one continuous string again.
Double-Encoded Query Strings
When a URL gets passed through two systems that both percent-encode it, you end up with %2520 where %20 should be. The fixer collapses the obvious double-encodes back to a single layer — useful when you're debugging redirect chains or webhook payloads.
Common Questions
Is my URL stored or sent anywhere I can't see?
Your URL goes to our backend so the fix can run, then comes straight back. We don't log the input itself — URLs frequently carry session tokens or PII in the path/query. We log that a fix happened, not what was fixed. If the URL contains a real secret (a signed link, an auth token), treat it as exposed once you paste it into any third-party tool — including this one — and rotate it.
What kinds of URL errors does it actually fix?
The everyday ones: missing scheme (defaults to https://), curly/smart quotes wrapped around the URL, en-dash or em-dash where a hyphen should be, accidental // in the path, double percent-encoding (%2520 → %20 when it's a clear double-encode), unencoded spaces in query values, tab/CR/LF characters dropped inside the URL by a word processor, and surrounding angle brackets like <https://example.com> from Markdown links.
Will it change my path, query, or fragment values?
No. The fixer is intentionally conservative. It will not invent a hostname, guess a missing TLD, add or remove path segments, add or remove query parameters, change parameter order, or drop the fragment. It only touches characters that are syntactically wrong. If customer=Ava Chen goes in, customer=Ava%20Chen comes out — same value, just properly encoded per RFC 3986.
Does it support international (Unicode) domain names?
Yes. Unicode characters in the host or path are preserved as Internationalised Resource Identifiers (the IRI form). If your application needs the punycode (ASCII) form for the host instead, run the cleaned URL through your language's URL library — Node's url module, Python's idna package, or the browser's built-in URL constructor will give you both forms.
What about really long URLs?
There's a 64 KB cap on the input — that's about 64,000 characters. Real URLs are almost always under 2,000 characters; if yours is larger, it's usually because something has been double-encoded into a giant blob, or there's a binary payload sitting in the query string that should be in a POST body. The fixer will tell you the input is too large; trim or restructure first.
It returned an error instead of a fixed URL. Now what?
Some inputs are too far gone — for example, a URL where the host is missing entirely, or one where the structure is so mangled the model can't tell what was meant. In that case, eyeball the URL, fix the obvious issues by hand (the host and scheme are the usual suspects), and re-run it. You can also drop the result into our URL Validator to see exactly what the URL parser is complaining about.
Other URL Tools You Might Need
Fixing the URL is one step. Once it parses cleanly, these tools take it the rest of the way: