YAML URL Decode
Recover readable YAML from percent-encoded text in one click.
Example
Encoded input:
name%3A%20demo%0Alist%3A%0A%20%20-%20a
Decoded YAML output:
name: demo
list:
- a
How it works
Paste URL-encoded YAML in the input; it runs decodeURIComponent and shows the decoded YAML live in the output pane. Handles plus-as-space when present and reports invalid escape sequences.
Good to know
YAML URL Decode takes percent-encoded text — the kind you get when a YAML document has been stuffed into a query string, a webhook payload, or a config field — and reverses the encoding so you can read the original document again. It runs decodeURIComponent on whatever you paste, turning sequences like %3A back into : and %0A back into real line breaks. It's aimed at developers and DevOps folks who pull YAML out of CI logs, API responses, GitOps manifests, or URLs and need it in plain, indented form.
Reach for it when a tool has URL-encoded a manifest before transport: a deploy pipeline that passes Helm values as a parameter, a Kubernetes annotation copied from a browser address bar, or a YAML snippet embedded in a webhook. Because YAML is whitespace-sensitive, the escaped spaces (%20) and newlines (%0A) matter just as much as the structural characters, and this tool restores all of them at once so indentation survives the round trip.
To read the result, check the status line under the panes. It confirms how many characters were decoded, or — if standard decoding failed — tells you it retried treating + as a space. The decoded text is not validated as YAML; the tool only undoes URL encoding, so a clean decode means the escaping was reversed, not that the YAML itself parses. Paste the output into a YAML linter or validator if you need to confirm structure.
One practical caveat: a literal percent sign that wasn't escaped as %25 will stop the decode, and a stray + is kept as-is because in YAML a plus is usually intentional. If your source double-encoded the YAML (encoded twice), run the output back through the tool a second time to fully recover it.
Frequently asked questions
What happens if my input has a stray % sign?
decodeURIComponent throws on malformed escapes like a lone %, so the tool catches it and shows an error in the status line instead of crashing. Fix the encoding (e.g. write %25 for a literal %) and it will decode.
Why isn't my + turning into a space automatically?
Strict URL decoding leaves + as a literal plus. If standard decoding fails, the tool retries treating + as space and notes that in the status. For YAML, a literal + is usually correct, so it is preserved by default.
Is my data uploaded anywhere?
No — this tool runs entirely in your browser. Your input never leaves your device and it works offline once loaded.
Is it free?
Yes, completely free with no sign-up and no limits.
People also ask
What is the difference between URL decoding and YAML parsing?
URL decoding only converts percent-escapes like %3A and %0A back into their original characters such as colons and newlines. YAML parsing then interprets that text as a data structure of keys, lists, and values; this tool does the first step only.
Why does my decoded YAML lose its indentation?
Indentation is usually preserved as long as the leading spaces were encoded as %20 and line breaks as %0A. If the indentation is wrong after decoding, the source was likely encoded without the leading spaces, or tabs were used, which YAML does not allow for indentation.
Can I decode YAML that was encoded twice?
Yes. Double-encoded text shows escapes like %253A (where %25 is an encoded percent sign). Decode once to get %3A, then run the output through the tool again to fully recover the original YAML.
Does decodeURIComponent handle non-ASCII or UTF-8 characters in YAML?
Yes. decodeURIComponent reassembles multi-byte UTF-8 sequences, so accented letters, emoji, and other Unicode encoded as %xx%xx are decoded back to their proper characters.
What is the difference between encodeURIComponent and encodeURI for YAML?
encodeURIComponent escapes nearly all reserved characters including colons, slashes, and ampersands, which is what YAML needs since those characters carry meaning. encodeURI leaves URL-structural characters unescaped, so it is not suitable for safely encoding a whole YAML document.
Why is a plus sign in my encoded YAML not turned into a space?
Strict URL decoding leaves + as a literal plus because that is only a space convention in form-encoded data, not in standard percent-encoding. The tool keeps it as a plus for YAML correctness and only treats it as a space if the strict decode fails.
Is it safe to decode YAML containing secrets or credentials here?
The tool runs entirely in your browser and does not upload your input, so the data stays on your device. As with any pasted secret, clear the fields when done and be mindful of browser history or shared machines.
Related tools