Skip to content
100% local

URI template expander

Expand an RFC 6570 URI template into a real URL using variables you provide.

Input
Variables
Output

URI template expander

Paste a URI template — the kind used in OpenAPI/Swagger link definitions, OAuth redirect URIs, webhook configs and hypermedia APIs (HAL, Hydra, JSON:API) — and this tool expands its {expressions} into a real URL. It implements RFC 6570 in full, including the path, query-string, path-parameter, label and fragment operators, so a template like "/users/{id}{?fields,tags*}" expands exactly the way a compliant client library would.

Variable values go in the second panel, one "key=value" per line. A plain value is a string; wrap a comma-separated list in square brackets ("tags=[dev,admin]") for list variables, and use curly braces with "|"-separated pairs ("keys={role=admin|team=core}") for associative (key-value) variables. The template level option (1 to 4) checks which RFC 6570 features an expression actually needs and flags any that go beyond your chosen level — useful when you're targeting a client that only implements a lower level. Percent-encode reserved characters forces strict encoding even inside the normally lenient "+" and "#" expansions; omit empty variables drops a variable that resolves to an empty string instead of leaving a bare parameter behind.

Below the expanded URL the tool always lists which variables were referenced but never supplied ("missing") and which were supplied but never used by the template ("unused") — the fastest way to spot a typo in either the template or the variable list. Line endings, prefix modifiers ("{var:3}") and explode modifiers ("{list*}", "{keys*}") are all handled per spec, and a malformed template (unbalanced braces, an empty expression, an unsupported operator) returns a plain-language error instead of a blank result.

Everything runs locally in your browser — the template and its variables are never uploaded anywhere. Copy the expanded URL, download it as a .txt file, or send it straight into another tool's input to keep working on it.

FAQ

What is a URI template?
A URI template (RFC 6570) is a URL pattern with {placeholders} that get filled in with real values — the format APIs use to document parameterized endpoints, like "/users/{id}".
Which operators does it support?
All of them: simple expansion, "+" (reserved characters allowed), "#" (fragment), "." (label), "/" (path segments), ";" (path-style parameters), "?" (query string) and "&" (query continuation).
How do I provide a list or an object as a variable value?
Wrap a list in square brackets, e.g. "tags=[dev,admin]". Wrap an object in curly braces with "|" between pairs, e.g. "keys={role=admin|team=core}" — a plain value stays a plain string.
What happens if a variable used in the template has no value?
It is expanded as empty and listed under "Missing" below the result, so you can see at a glance which values you still need to supply.
Is my URI template or variable data uploaded anywhere?
No. Expansion runs entirely in your browser — the template and its variables never leave your device.