URI template expander
Expand an RFC 6570 URI template into a real URL using variables you provide.
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.