FIRST CH TOOLS / 18 URL PARAMETERS
URL Parameter Editor & UTM Builder
Paste a URL and its query string is broken out into a key/value table. Values are shown decoded, and editing, adding, removing or switching off a parameter rebuilds the URL as you type. Add UTM tags, strip click IDs like gclid in one click, and encode or decode strings on their own.
Paste a URL — it is parsed as you type
Values in the table are shown decoded (%20 → a space, + → a space). Rows you have not edited are written back byte-for-byte, so rebuilding a URL without touching anything returns exactly what you pasted. Tick “Re-encode everything” to rewrite every parameter with encodeURIComponent rules instead.
Build a tagged URL (GA4 source / medium)
These buttons fill in utm_source and utm_medium. The campaign name is up to you.
GA4 treats UTM values as case-sensitive: Google and google are counted as two different sources, so agree on one spelling across the team. utm_source and utm_medium are judged as a pair — with only one of them, the session shows up as “(not set)”. Anything entered here also appears in the table on the “Break down & edit” tab.
URL-encode / decode a string — type in either box
encodeURIComponent escapes everything including / : ? & = #, which is what you want when wrapping a single value such as a redirect URL. encodeURI leaves the URL delimiters alone, so use it to clean up spaces and non-ASCII characters in a whole URL. Using encodeURI on a value is the classic bug: an & inside the value survives and splits your parameter in two.
How to Use
- Paste a URLDrop it into the box at the top and the query string splits into key/value rows. Values are shown decoded, and the scheme, host and path are listed next to them.
- Edit, add or removeRewrite keys and values in place, untick a row to leave it out without deleting it, or press “Add a parameter” for a new row. The UTM tab gives you a form for the tracking tags instead.
- Copy the rebuilt URLEvery edit is reflected immediately — hit Copy to take it. Duplicate names, unencoded spaces and leftover ad click IDs are listed under Checks.
About This Tool
Everything after the ? in a URL is keys joined to values with =, separated by &. Only a limited set of characters is allowed there, so spaces, non-ASCII text and most punctuation have to travel as %XX percent-encoding. This tool decodes that for display and re-encodes on the way out, so you can read and write the actual values.
A + in a query string means a space — a leftover from HTML form submission that URLs inherited. A literal plus has to be written as %2B, and getting this wrong turns “1+1” into “1 1”. This tool shows + as a space and lets you choose which form (%20 or +) to write back.
Rows you have not edited are written back exactly as they arrived. URL builders that normalise everything on open are how signed URLs get broken by simply looking at them. Turn on “Re-encode everything” only when you actually want the whole query rewritten.
UTM tags are the convention for telling analytics where a visit came from. GA4 decides the source from utm_source (where) and utm_medium (how) together, and it compares them case-sensitively, so a stray capital letter becomes a separate channel. Click IDs such as gclid and fbclid are the opposite: they only mean something immediately after an ad click and do not belong in a link you paste into an article or a chat. One button clears them all.
Whatever is in a URL leaves traces — browser history, the Referer header sent to the destination, proxy and server access logs. When a key looks like a token or a session ID, this tool says so. The URL you paste never leaves your browser; the checks run locally too.
Directly callable via URL parameters: /en/url/?u=https%3A%2F%2Fexample.com%2F%3Fa%3D1 / /en/url/?text=hello%20world&tab=encode
From AI Agents
The same parsing and rebuilding logic is available as the url_params tool on the MCP (Model Context Protocol) server @first-ch/tools-mcp, so an AI agent can call it directly without driving a browser. See How to use from AI agents for setup.
Install
claude mcp add firstch-tools -- npx -y @first-ch/tools-mcp
Examples
# Break a URL down and see the checks
url_params(url="https://example.com/p?utm_source=Google&gclid=EAIa&q=a+b")
# Add UTM tags
url_params(
url="https://example.com/lp/",
utm={"source": "newsletter", "medium": "email",
"campaign": "2026-08"})
# Strip click IDs and sort what is left by name
url_params(url="…", removeTracking=true, sort=true)
# Encode / decode a string on its own
url_params(mode="encode", text="hello world")
url_params(mode="decode", text="hello+world%21")
Other Tools
- 01Batch Image → WebPWebP Converter
- 02White Background RemoverWhite BG Remover
- 03WCAG Contrast CheckerContrast Checker
- 04Character CounterCharacter Counter
- 05llms.txt Generatorllms.txt Generator
- 06JSON-LD GeneratorJSON-LD Generator
- 07Markdown → PDFMD → PDF
- 08OGP Meta Tag WizardOGP Wizard
- 09Favicon GeneratorFavicon Generator
- 10TikTok PublisherTikTok Publisher
- 11Encoding & Line Ending ConverterEncoding Converter
- 12Batch Image → AVIF + pictureAVIF Converter
- 13Test Data GeneratorTest Data Generator
- 14Marp Markdown → SlidesMarp Slides
- 15Text & Code Diff CheckerDiff Checker
- 16Cron Explainer & Next RunsCron Explainer
- 17Base64 & Data URI EncoderBase64 & Data URI
- 19HTML Entity Escape & UnescapeHTML Escape
- 20JSON ⇄ YAML ConverterJSON ⇄ YAML
- 21PX ⇄ REM / EM ConverterPX ⇄ REM / EM 単位変換
- 22Color Converter & AlphaColorコード変換&アルファ透過
- 23MD5 / SHA-256 Hash Generatorハッシュ生成
- 24JWT Decoder & Expiry CheckerJWTデコーダー&有効期限チェッカー
- 25User-Agent ParserUser-Agent解析&デバイス判定
- 26UUID & ULID GeneratorUUID (v4) & ULID 一括生成
- 27Aspect Ratio Calculatorアスペクト比計算&サイズ算出