Skip to main content

YAML Validator

Check whether YAML is valid and see where it breaks.

YAML input

Ln 1, Col 1
YAML

Result

Your result will appear here

Add YAML above, then choose Validate.

Add YAML on the left, then choose Validate.

Waiting for input

Check whether your YAML is valid under the YAML 1.2 Core rules, in one or several documents, and see the line and column of the first problem.

What is YAML Validator?

YAML Validator is a free online tool that checks whether your text is valid YAML and, when it is not, shows where the problem is. It runs in your browser, reads YAML under the YAML 1.2 Core rules, as one document or several separated by ---, and answers with a verdict. When the text is valid and YAML Formatter can format it, the result also shows it formatted, every document included, with the same layout YAML Formatter gives with “2 spaces” selected.

Use it before you send YAML to a program, a pipeline or a configuration file that would reject it.

What it supports

  • YAML read under the YAML 1.2 Core rules, as one document or several separated by ---: plain, quoted and multi-line text, numbers, true, false, null, lists, mappings, comments, anchors and aliases.
  • With several documents, the verdict is valid only when every document is valid. The line and column of a problem count from the start of the whole text.
  • Anchors (&name) and aliases (*name) are checked but never expanded. An alias with no anchor, an alias that comes before its anchor and an alias that points at an anchor in another document are errors.
  • A key repeated in the same mapping is an error.
  • Only one problem is reported: the one nearest the start of the text. Fix it and validate again to find the next one.
  • Some YAML is valid but outside what the YAML Formatter and Viewer support: a tag that is not a standard YAML tag, a key that is not text (a number, true, false, null, an empty key, or a key written as a list or mapping), and a directive such as %YAML or %TAG. The verdict is valid, and a warning says that the Formatter and Viewer cannot process it. Only the verdict is shown, with no formatted text.
  • The merge key << is not part of YAML 1.2 Core. It is read as an ordinary key, with a warning.

Good to know

  • Valid means the text is valid YAML. The validator does not check that the data has the keys or values your program expects.
  • It never repairs YAML. There are no automatic corrections and your text is never changed: the message says what to fix, and you make the change yourself.
  • A text with only comments or blank lines has nothing to validate, so you get a note asking for content, not a verdict.
  • A directive such as %YAML 1.1 is only reported as a warning: the document is still read under the YAML 1.2 Core rules, whatever the directive says. Programs that follow the older YAML 1.1 rules can read some texts differently, for example when they apply merge keys.
  • The formatted text always uses 2 spaces: there is no indentation option and no tree. A text that is not valid gets only the verdict. So does a valid text that YAML Formatter refuses to format, such as one with a tag that is not a standard YAML tag, and a valid text whose formatted version would be larger than 2,000,000 bytes. In those cases there is nothing to copy or download.
  • YAML nested deeper than the limit is refused as beyond what the tool processes. It is not called invalid.

How do I use YAML Validator?

  1. Paste or type your YAML in the input box. Nothing runs while you type.
  2. Press “Validate”.
  3. Read the verdict. “The YAML is valid.” means the text is valid YAML. “The YAML is not valid.” comes with the problem nearest the start of the text, its line and column, and the spot highlighted in your text. Warnings, if there are any, are listed under the verdict.
  4. When the verdict is valid and the formatted text appears, press “Copy” to put it on your clipboard or “Download” to save it as formatted.yaml.
  5. Fix the problem in your text and press “Validate” again. Editing your text clears the old verdict, so a verdict on screen always matches what you validated.

Examples

A valid text

Paste this text and press “Validate”. It follows the YAML rules, so the verdict is “The YAML is valid.” In the tool, the result also shows the text formatted.

name: demo
items:
  - one
  - two

The YAML is valid.

A repeated key

The key “name” appears twice in the same mapping, and YAML requires the keys of a mapping to be unique. The verdict is “The YAML is not valid.”, followed by the line and column of the repeat, which is also highlighted in your text.

name: demo
name: other
items: [1, 2]

The YAML is not valid.

A key is repeated in the same mapping. YAML requires the keys of a mapping to be unique. Remove or rename the repeated key.

Line 2, column 1

An error in a later document

The second document, after the --- line, has a line with no colon after its key. The verdict is “The YAML is not valid.”, followed by the line and column of the problem. They count from the start of the whole text, so the lines of the first document are counted too, and the spot is highlighted in your text.

name: web
port: 80
---
name: api
port 8080

The YAML is not valid.

Something is missing here, such as a colon (:) after a key, a closing quote, bracket (]) or brace (}), or the document start marker (---) after a directive.

Line 5, column 1

Valid, with a warning

The tag !money is not one of the standard YAML tags. The syntax is valid, so the verdict is valid, but a warning tells you that the YAML Formatter and Viewer cannot process this text, so only the verdict is shown, with no formatted text. The tag itself is never run or looked up.

price: !money 12.50

The YAML is valid.

The syntax is valid, but this YAML uses a tag this tool does not support: a custom or non-Core tag, or a Core tag (such as !!int) that does not fit its value. The YAML Formatter and Viewer cannot process it.

A merge key

Some YAML tools read << as a merge key, which copies the keys of an anchor into a mapping. YAML Validator follows the YAML 1.2 Core rules, which have no merge keys, so << is an ordinary key and nothing is merged. The verdict is valid, with a warning because programs that apply YAML 1.1 merging may read this text differently.

defaults: &d
  retries: 3
prod:
  <<: *d
  retries: 5

The YAML is valid.

This YAML uses << as an ordinary key. This tool follows the YAML 1.2 Core schema, which has no merge keys, so nothing is merged in. Programs that apply YAML 1.1 merging may read it differently.

Limits and privacy

Size limits

  • Input: up to 2,000,000 bytes of UTF-8 text (about 2 MB). Accented letters and emoji take more than one byte each. Larger input is rejected.
  • Nesting: up to 256 levels of mappings and lists inside each other. Deeper YAML is refused because it is beyond what the tool processes.
  • Time: a run that takes longer than its time limit is stopped. Try a smaller input.

Is my text sent to a server?

No. The text you type or paste, or open from a local file, is processed locally in your browser, in a dedicated Web Worker. It is never uploaded or sent to the server (a file you open is read in your browser only), and it is not written to storage, cookies or the address bar.

“Copy” puts the result on your clipboard and “Download” saves it as a file, but only when you press the button. The file is created in your browser, so nothing is uploaded.

For the full details, see the Privacy Policy

Related tools and pages

Your text stays in the page when you switch tools in the same tab, so you can try the same text in another tool. Reloading or closing the tab ends it.

All tools

Format, validate and convert JSON, YAML, XML, CSV, HTML, CSS and Markdown, plus Base64, URL and JWT.

JSON

  • JSON Formatter

    Format JSON with one consistent layout: even indentation, one value per line, your values untouched. Runs the same formatter as JSON Beautifier.

  • JSON Validator

    Check whether your text is valid JSON. If it is not, see the first problem with its line and column, highlighted in your text.

  • JSON Diff

    Compare two JSON documents by structure, ignoring key order, and see every added, removed and changed path in one list.

  • JSON Schema Validator

    Validate JSON against a JSON Schema (draft 2020-12, or draft-07 through $schema) and see each error with the path where it occurs.

  • JSON Schema Generator

    Generate a JSON Schema (draft 2020-12) from a sample JSON document, ready to copy and refine.

  • JSON Beautifier

    Beautify minified or unevenly spaced JSON into readable, indented text, with your values untouched. Runs the same formatter as JSON Formatter.

Convert JSON

  • JSON to CSV

    Convert a JSON list of objects, or the first list of objects inside an object, to plain CSV text.

  • CSV to JSON

    Convert CSV to a JSON array of objects, using the header row as keys. Comma, semicolon and tab separators are detected, and values stay as text.

  • JSON to XML

    Convert JSON to plain, readable XML, with your numbers and text copied exactly as written.

  • XML to JSON

    Convert XML to JSON, with attributes as @name keys and repeated elements gathered into arrays so the structure carries over.

  • JSON to YAML

    Convert JSON to readable block YAML with 2 or 4 spaces of indentation, keeping every value and every number exactly as you wrote it.

  • YAML to JSON

    Convert YAML to JSON with anchors and aliases resolved. A file with several documents becomes a JSON array.

YAML

  • YAML Validator

    Check whether your YAML is valid under the YAML 1.2 Core rules, in one or several documents, and see the line and column of the first problem.

  • YAML Viewer

    Explore a YAML document as a tree you can open and close, with anchors, tags and aliases marked on the row where they appear.

  • YAML Formatter

    Format YAML with consistent indentation while keeping comments and values.

HTML, XML and CSS

  • HTML Formatter

    Format HTML into readable, indented markup. The result is plain text: scripts do not run and nothing in your HTML is loaded.

  • XML Formatter

    Format XML with clear indentation while preserving its content and meaning.

  • CSS Beautifier

    Beautify minified CSS into readable rules, one declaration per line, without changing what the CSS does. Runs the same formatter as CSS Formatter.

  • CSS Formatter

    Format CSS you maintain with one consistent style: the same indentation, spacing and spelling everywhere. Runs the same formatter as CSS Beautifier.

Encode & Decode

  • Base64 Encode/Decode

    Encode text to Base64 or decode Base64 back to text as UTF-8, with an option for the URL-safe Base64URL alphabet.

  • URL Encode/Decode

    Encode or decode text with %XX sequences, either as a URL component or as a full URL whose separators stay intact.

  • JWT Decoder

    Decode a JWT in your browser to read its header and payload, see the exp, iat and nbf dates and whether it has expired. The signature is not verified.

Markdown

New
  • Markdown Editor

    Free online Markdown editor and viewer: write or open an MD file, see a live GFM preview, then copy or download your Markdown.

  • Markdown to PDF

    Convert Markdown to PDF in your browser. Pick A4 or Letter paper and the margins, preview the document and download a real PDF file.

  • Markdown to Text

    Convert Markdown to plain text without losing code or punctuation. Choose how links appear, then copy the text or download a TXT file.

  • Markdown to Word

    Convert Markdown to Word: download an editable DOCX file that keeps headings, lists, tables and links. It runs in your browser.

  • Markdown to HTML

    Convert Markdown to HTML in your browser. Get an HTML fragment or a full document, check the preview, then copy or download it.

  • Markdown Table Generator

    Markdown table generator with an editable grid and column alignment. Import CSV or TSV, then copy or download the Markdown table.

  • Word to Markdown

    Convert Word to Markdown: open a DOCX file and get its headings, lists, links and tables as editable Markdown, all in your browser.

  • HTML to Markdown

    Convert HTML to Markdown from pasted markup or a local file. Scripts never run; headings, lists, links and simple tables carry over.

  • Markdown Formatter

    Markdown formatter that tidies your source and lists style suggestions for headings, spaces and the final newline. Review it before you copy.

  • Markdown to Image

    Convert Markdown to an image: choose the width and theme, preview your note or table and download a PNG or JPEG file.

  • Markdown to Rich Text

    Convert Markdown to rich text and copy it, formatted, into a document editor. Plain text is the fallback when rich copy is unavailable.

  • Markdown Table to JSON/CSV

    Convert a Markdown table to JSON or CSV. Review the headers and pick each column's type, so IDs and leading zeros stay as they are.

  • Excel to Markdown

    Convert Excel to Markdown: open an XLSX file, pick a sheet or a cell range and get a Markdown table without uploading the file.

  • Markdown to Excel

    Convert Markdown tables to Excel: download an XLSX file whose cells stay text, so leading zeros survive and nothing becomes a formula.

  • Paste to Markdown

    Paste to Markdown: turn copied rich text or HTML into Markdown. For plain text, apply heading and list actions yourself, then copy.

  • Markdown Compare

    Markdown compare: paste two versions or open two files and see which lines were added or removed in the source text.

  • Markdown to Mind Map

    Convert Markdown to a mind map: headings and lists become a map you can navigate and export. Built with Markmap, no account needed.

  • Mermaid Editor

    Mermaid live editor in your browser: write diagram code, see the preview and any syntax errors, and export SVG or PNG without an account.

  • Discord Markdown Preview

    Discord Markdown preview: check bold, code blocks and spoilers in an approximate local preview, then copy the message. No Discord account.

  • Obsidian Markdown Converter

    Obsidian Markdown converter: adapt [[wiki links]] and embeds to standard Markdown and list the files your note refers to.

  • GitHub README Viewer

    GitHub README viewer: paste or open a README, see a GFM preview and set a base URL for relative links. Nothing is fetched from GitHub.

  • PDF to Markdown

    Convert PDF to Markdown locally: extract its text layer or run OCR on selected pages without text. Review and edit before copying or downloading.

  • Image to Markdown

    Convert an image to Markdown with OCR in your browser: read text from a PNG or JPEG, correct it, then copy or download. Accuracy varies.