URL builder

Add query parameters and a fragment without encoding them by hand.

Your files are processed here, on your device

We do not send your file or text contents to a processing server. No account is needed and there is no daily operation quota. Individual tools have size limits to protect your device’s memory.

A connection is needed to load the site and its resources. Hosting may receive technical visit data. Favorites store only tool identifiers in this browser.

How we handle your data →

How to use this tool

  1. Enter a complete HTTP/HTTPS URL.
  2. Add name=value per line and choose to keep or replace the query.
  3. Set the fragment, apply and inspect the URL before using it.

An example you can verify

Build a query containing spaces and a literal plus sign.

Example input

Base: https://example.com/search
q=hola mundo
tag=a+b

SettingsKeep existing parameters. Empty fragment.

Expected result

https://example.com/search?q=hola+mundo&tag=a%2Bb

Space becomes + and the literal plus becomes %2B. The tool neither opens the link nor checks the destination response.

URL builder: uses and practical guidance

Building a parameterized URL is easier to inspect when the base address and query values are separate. The base contains protocol, domain and path; additional rows supply names and values. Start with a URL that already has parameters and choose whether to retain them or replace the whole query. Keeping appends new rows after existing parameters, retaining their original order. Replacing clears all previous parameters before adding the new rows. That choice affects every filter, token or setting already present in the link, so inspect the original query before selecting a replacement operation.

Each row uses name=value. Only the first equals sign separates the two fields, allowing a value to contain further equals signs. Surrounding whitespace is removed from names, while whitespace in values is retained as data. An empty value such as filter= creates a present parameter containing an empty string. Blank rows are ignored. Repeated names are retained: tag=a and tag=b create two tag parameters. The tool does not determine how the destination server should interpret repeated names. Check the receiving application's rules whenever a filter's meaning depends on how multiple values are handled.

Supply unencoded values. Spaces are represented as + and a literal plus sign becomes %2B. Other characters are encoded according to browser URL-query rules. Pasting %20 as text creates a value containing those three characters, so its percent sign is encoded too. The tool does not guess whether a value was already encoded, since a percent sign can be legitimate content. If starting from the URL parameter parser, use its decoded values. Check accents, ampersands and plus signs when transferring results between tools, since a visually similar query can have different decoded values.

The fragment field replaces content following #. Leaving it empty removes an existing fragment. This component is separate from the query, and its meaning depends on the destination site or application. Only complete HTTP or HTTPS addresses without embedded credentials are accepted. The browser's URL parser normalizes the result and may adjust domain spelling, default ports or character encoding. The destination is not visited and its existence is not verified. Up to two thousand new parameters are supported. Review the final link before opening or sharing it, especially when an existing query included information you intended to preserve or when the destination expects a particular parameter convention.

Settings and limits

Enter a credential-free HTTP/HTTPS URL and one name=value parameter per line. Supply unencoded values. Keep existing parameters or replace them all. Repeated names are retained. The fragment field replaces the current fragment; an empty field removes it. The URL is never visited. Maximum 2,000 new parameters.

Frequently asked questions

How are spaces and plus signs represented?

Spaces are encoded as + and a literal plus as %2B. Avoid already encoded values unless double encoding is intended.

Guides