URL Toolkit
The most comprehensive URL workspace available. Analyze every part of a URL with live visual inspection. Encode and decode with auto-detect. Edit query parameters in a visual table. Build URLs from components. Generate UTM marketing URLs. Validate URL structure with friendly error messages. Analyze security concerns. Generate QR codes. All processing happens entirely in your browser — nothing leaves your device.
Enter a URL to begin
Live URL Inspector
Every part of your URL, color-coded and clickable.
Enter a URL above to see its parts
Keyboard Shortcuts
Related Tools
Other tools you might find useful.
Test, debug, explain and build regular expressions visually with live highlighting, token explanations, and a built-in debugger.
Format, validate, and beautify JSON data instantly.
Validate JSON with human-friendly error messages and instant feedback.
Compare JSON files visually. Highlight additions, removals and modifications with side-by-side and inline comparison.
Decode and inspect JSON Web Tokens securely in your browser. View headers, payloads, claims, and expiration status.
Encode and decode Base64 instantly with Unicode, file, and live mode support.
Frequently Asked Questions
Should I use encodeURIComponent or encodeURI?
Why did my URL come back with %2520 instead of %20?
A redirect parameter I built is getting cut off at the ampersand — why?
Does anything here get sent to a server?
What's the difference between a fragment and a query parameter?
encodeURIComponent vs encodeURI, and the bug that comes from mixing them up
Plus what actually happens when a query parameter value contains an ampersand.
This tool started as just a URL encoder, and grew into a full workspace because encoding a URL correctly is rarely the whole job — you also need to know why a link broke, or what a redirect parameter is actually pointing at, or whether a tracking URL is going to survive being pasted into a Slack message without mangling. Most of the traffic to this page is people debugging a URL that's already broken, not building one from scratch.
How it works
encodeURIComponent and encodeURI are the two JavaScript functions doing the actual work here, and mixing them up is the single most common source of broken URLs I see. encodeURIComponent escapes everything that isn't a plain letter, digit, or a small set of safe symbols — including &, ?, =, and /, which is exactly what you want when the value is going into a single query parameter, because those characters would otherwise be interpreted as URL structure instead of data. encodeURI is deliberately less aggressive: it leaves &, ?, =, and / alone because it assumes you're encoding a complete URL where those characters are doing their normal structural job. Run encodeURIComponent on a whole URL and you'll double-escape the slashes and break it; run encodeURI on a single parameter value that happens to contain an & and you'll silently split it into two parameters.
A real example
Say you're building a redirect URL where the return address is https://app.example.com/search?q=cats&dogs — note the ampersand inside the value itself. If you just concatenate that raw into https://example.com/login?returnTo=https://app.example.com/search?q=cats&dogs, the server sees returnTo, q, and dogs as three separate parameters, not one URL with an embedded query string — the destination gets mangled. Run the inner URL through encodeURIComponent first and you get returnTo=https%3A%2F%2Fapp.example.com%2Fsearch%3Fq%3Dcats%26dogs — now it's one clean parameter value that decodes back to the exact original URL on the other end.
Common mistakes
- Double-encoding. Running a URL through encoding twice turns %20 into %2520. This happens constantly when a URL passes through two different systems that both encode it. The Auto-Detect feature in this tool flags double-encoding specifically because it's easy to miss visually.
- Assuming query parameter order is preserved everywhere. Technically it usually is, but some CDNs and caching layers treat differently-ordered but otherwise-identical query strings as different cache keys, which can cause mysterious cache-miss issues. If you're debugging a caching problem, check whether parameter order is consistent across the URLs being generated.
- Forgetting the fragment (#) never reaches the server. Anything after # is client-side only — if you're trying to pass data to a backend, it needs to be a query parameter before the #, not a fragment.
Frequently Asked Questions
Everything you need to know about encoding, decoding, and analyzing URLs
Should I use encodeURIComponent or encodeURI?
Why did my URL come back with %2520 instead of %20?
A redirect parameter I built is getting cut off at the ampersand — why?
Does anything here get sent to a server?
What's the difference between a fragment and a query parameter?
Tool Overview
A closer look at URL Toolkit — how it works, who it's for, and where it fits in your workflow.
A URL is more than a link — it's a structured document with a scheme, host, path, query parameters, and fragment, and each part has rules. The URL Toolkit analyzes any URL and renders its anatomy visually, so you can see at a glance which components are present, what each query parameter does, and whether the URL is well-formed. The encode/decode module handles percent-encoding with automatic direction detection, and the query parameter editor presents your parameters in a table you can edit, add, or remove without hand-editing a string.
Marketers and developers alike will find the UTM builder useful: assemble campaign URLs with utm_source, utm_medium, utm_campaign, and friends in a structured form, then copy the final link — or generate a QR code for it on the spot. The security analyzer flags common issues like plain-HTTP links, exposed credentials, or suspicious hosts, helping you audit links before you click or share them.
URL inspection frequently involves private or unpublished links, so the toolkit processes everything locally in your browser. Paste a link from staging, a draft campaign, or an internal tool — nothing is transmitted anywhere.
Key Features
Everything you get with this tool, at a glance.
Full URL Anatomy
Visually inspect scheme, host, path, query, fragment, and port.
Encode & Decode with Auto-Detect
Percent-encode or decode URLs and query strings without choosing a direction.
Query Parameter Editor
Add, edit, and remove parameters in a table — no hand string surgery.
UTM Campaign Builder
Generate clean marketing URLs from a structured form.
Security Analyzer
Flag HTTP links, exposed credentials, and suspicious hosts.
QR Generation
Turn any URL into a scannable QR code without leaving the page.
How to Use URL Toolkit
Get from zero to done in four quick steps — no account, no learning curve.
Paste a URL
Drop in any link — the anatomy view breaks it into its parts immediately.
Edit query parameters
Use the table editor to add, remove, or tweak parameters, then copy the rebuilt URL.
Build a UTM link
Fill the campaign form and copy a ready-to-use tracking URL.
Analyze security
Run the security analyzer to catch HTTP links or embedded credentials before sharing.
Practical Examples
Real input and output pairs so you know exactly what to expect.
Encode a URL with spaces
Input
https://example.com/search?q=forge plug&lang=en
Output
https%3A%2F%2Fexample.com%2Fsearch%3Fq%3Dforge%20plug%26lang%3Den
Decode a percent-encoded query
Input
https://example.com/?q=hello%20world%20%F0%9F%9A%80
Output
q = hello world 🚀
Parse query parameters
Input
https://shop.com/products?color=red&size=m&in_stock=1
Output
color=red · size=m · in_stock=1
Guides & Articles
Learn how to get the most out of this tool with our in-depth guides.
QR Codes for Small Business: Menus, WiFi, Payments, and More
QR codes stopped being a gimmick — they're now how customers reach your menu, your WiFi, and your payment page. Here are the uses that earn their place.
How to Test a REST API Without Building a Backend
You don't need a server to design, test, and document an API. Here's how mock APIs work and how to prototype requests, errors, and auth.
Part of Developer Essentials
Was this tool helpful?
Your feedback helps us improve URL Toolkit for everyone.
Share this tool
