Read a tracking URL
Split an ad URL loaded with utm_, gclid or fbclid parameters to see each value.
This tool converts back and forth between a query string (the part of a URL after the ?) and a readable JSON object. In Parse mode it splits the parameters and decodes their values; in Build mode it turns a JSON object into a correctly encoded string, ready to add to a URL.
In Parse mode, if the input contains a ?, only the part after it is read, so you can paste a full URL. Each key=value pair is split on &, then decoded using web form rules, where + stands for a space.
The result is an indented JSON object. A parameter that appears several times becomes an array that keeps all its values in order; the fragment (#section) of a pasted URL is ignored.
In Build mode, the input must be a JSON object. Each property becomes a key=value pair; spaces are written as + and special characters are encoded as %XX, in property order.
Malformed JSON in Build mode produces an error: check the double quotes around keys and values.
Parse to go from a URL to JSON, Build for the reverse.
A URL or query string in Parse mode, a JSON object in Build mode.
Click Process to get the result.
Copy the JSON or append the generated string after the ? in your URL.
Split an ad URL loaded with utm_, gclid or fbclid parameters to see each value.
Write the parameters of a GET request as JSON and get the encoded string.
Parse two query strings to spot the parameter that differs.
The + becomes a space. The color parameter appears twice, so both values, bleu and vert, are kept in an array.
Input
Mode: Parse
Input: https://example.com/search?q=gourde+inox&color=bleu&color=vert&page=2Result
Result:
{
"q": "gourde inox",
"color": [
"bleu",
"vert"
],
"page": "2"
}Spaces become + signs and the parameters keep the order of the JSON object.
Input
Mode: Build
Input: {"q":"gourde inox","page":"2","tri":"prix croissant"}Result
Result: q=gourde+inox&page=2&tri=prix+croissantQuery strings follow the application/x-www-form-urlencoded format, where + represents a space. A literal + must be written %2B.
They are grouped in an array, in order of appearance: color=blue&color=green gives "color": ["blue","green"]. Multiple filters on an e-commerce site are therefore preserved.
Yes, in Parse mode. Everything before the first ? is ignored and only the query string is split.
A flat JSON object, for example {"q":"bottle","page":"2"}. A nested object is not flattened: it becomes the unusable text [object Object].
No. Processing runs in your browser.
Related tools
Tools similar or complementary to this one.
Validate, normalize and inspect web addresses locally.
Encode or decode a URL, its parameters, and any special characters it contains.
Turn a title or phrase into a clean slug that is ready to use in a URL.
Design stable readable URLs, normalize slugs and parameters, and reduce duplicate or ambiguous public routes.
Resize a batch of images, convert them to WebP and remove metadata with one reusable Pipeline.
Resize, compress and choose between WebP, AVIF and other formats with a practical workflow that reduces file size without unnecessary visual loss.
WebAssembly, browser APIs and faster devices enable more processing locally. How far can this approach replace services that upload files to servers?