URL Forge
Recursively decode URLs, edit query parameters live, and build UTM tracking links.
Input
Output
URL
Parameters
0 parametersRebuilt URL
Link details
Generated URL
What is URL Forge?
URLs can only contain a limited set of characters, so spaces, accents and symbols get replaced with codes like %20 — this is called URL encoding, and it's why links sometimes look like garbled text. URL Forge bundles three related tasks in one place: decoding/encoding those codes back to readable text, breaking a URL's query string into individual parameters you can edit, and building UTM-tagged links for tracking marketing campaigns.
How to use URL Forge
- Pick a mode at the top: Encode / Decode, Query Parser or UTM Builder.
- In Encode/Decode, paste text or a URL into the Input panel, choose Decode or Encode, and click Copy on the result.
- In Query Parser, paste a URL to see each query parameter listed separately — use Add parameter to add more, then Copy the rebuilt URL.
- In UTM Builder, fill in your base URL and campaign fields, then click Copy to grab the finished tracking link.
How URL encoding and query parsing work
A URL can only contain a limited set of characters safely. Percent-encoding (also called URL encoding) replaces every other character with % followed by its two-digit hex byte value, per RFC 3986. A URL that passes through several systems — a redirect, a tracking pixel, an email link — sometimes gets encoded more than once, which is where recursive decoding helps:
// One pass isn't always enough
%2568%2565%256C%256C%256F → %68%65%6C%6C%6F → hello
(pass 1) (pass 2)
The query parser and UTM builder use the browser's native URL and URLSearchParams classes instead of hand-written regex, so a value that's itself a percent-encoded URL (like a redirect parameter) is decoded once for editing and re-encoded once on rebuild — it never gets double-encoded by accident.
Frequently asked questions
What does "recursive" decoding mean?
Some URLs get percent-encoded more than once (for example when a link is embedded inside another link). Recursive decoding keeps applying decodeURIComponent until the string stops changing, and shows exactly how many passes it took.
Why does editing a query parameter not corrupt an already-encoded value?
The query table reads and writes parameters through the native URLSearchParams API, which decodes a value once on read and re-encodes it once on write — so a value like a nested URL round-trips correctly instead of getting double-encoded.
Is this safe for tokens, API keys or session URLs?
Yes. Everything runs in your browser with native JavaScript; nothing you paste here is sent to a server.
What are UTM parameters for?
utm_source, utm_medium and utm_campaign (plus optional utm_term and utm_content) are query parameters that analytics tools like Google Analytics use to attribute traffic to a specific link, so you can tell which campaign or channel sent a visitor.