Bulk URL Parameter Updater

Add or overwrite arbitrary query parameters across a whole list of URLs at once. Enter your key=value pairs, paste your URLs, and get an updated list back.

Instructions

Use this tool to add arbitrary URL parameters to a list of URLs. Enter the desired parameters and values, then paste the list of URLs and click "Generate URLs" to see the results.

  1. Enter your parameters in the Parameters field above, written as a query string: key1=value1&key2=value2. Join as many pairs as you need with & — there is no limit.
  2. Paste the list of URLs in the text area, one per line.
  3. Click "Generate URLs" to append the parameters to each URL.
  4. Copy the generated URLs from the output — "Copy" puts the whole list on your clipboard.

Everything runs in your browser. Your URLs are never uploaded to a server.

Use Cases

This tool is ideal for digital marketers who need to add arbitrary URL parameters to multiple URLs for tracking purposes. By using this tool, you can quickly generate URLs with custom parameters for campaigns, emails, ads, and more.

It is the general-purpose counterpart to the Bulk UTM Code Builder. Reach for that one when you want the five standard UTM fields with labelled inputs; reach for this one when the parameter isn't a UTM — a gclid, a ref, a variant, a cache-buster, a feature flag, an affiliate ID, or anything else your stack reads off the query string.

Writing the Parameters Field

The field is parsed exactly like a real query string, which has a few consequences worth knowing:

  • Separate pairs with &ref=partner&variant=b sets two parameters.
  • A + means a space. campaign=spring+launch sets campaign to spring launch. Write the space as + (or %20) rather than typing a literal space.
  • Encode & and = inside a value. If the value itself needs one of the delimiters, percent-encode it: q=a%26b sets q to the literal a&b. Left unencoded, the & would start a new pair instead.
  • A key with no = gets an empty value. debug produces ?debug= on the output URLs, which is what you want for flags that only need to be present.

Do not include a leading ? — just the pairs.

How This Tool Handles Your URLs

  • Existing query strings are preserved. A URL that already carries ?ref=partner keeps it, and your parameters are appended alongside.
  • Same-named parameters are overwritten, not duplicated. If a URL already has variant=a and you enter variant=b, the output has a single variant=b. This means the tool is safe to run over a list that is already partly tagged, and you can re-run it on its own output to change a value.
  • Values are re-encoded correctly on output. Whatever you type is decoded once when the field is parsed, then encoded again when it is written onto each URL, so the result is always a valid URL.
  • Lines that aren't valid URLs pass through unchanged and are counted under "Invalid lines" — a stray heading, a blank, or a bare domain missing its https:// won't break the rest of the batch, but it won't be updated either.

The "URLs processed" count tells you how many lines were handled, so you can check it against the number of URLs you meant to paste.

Example

With utm_source=new&gclid=abc123 in the Parameters field, this input:

https://example.com/pricing?ref=partner&utm_source=old
https://example.com/blog/post

produces:

https://example.com/pricing?ref=partner&utm_source=new&gclid=abc123
https://example.com/blog/post?utm_source=new&gclid=abc123

Note what happened on the first line: ref=partner survived untouched, and the existing utm_source=old was replaced in place rather than appended a second time.

These tools are how Elegant Atomics thinks about growth for B2B SaaS. Work with us. Work with us →