Online YAML Validator
Use this free online YAML validator to check YAML for syntax errors. Paste or upload a file and it validates as you type - no button to press, no installation, and no login. Every problem is listed with its line and column and marked in the editor, and clicking one jumps the cursor to it. Choose which rules to check against: YAML 1.2 core, YAML 1.1, the JSON schema, or Failsafe. On a 1.2 schema the validator also flags values that YAML 1.1 would read differently - the reason a file that passes here can still surprise PyYAML or Ansible. Everything runs in your browser, so nothing you paste is uploaded.
The modern default. Only true and false are booleans.
Valid YAML
Find and Fix YAML Syntax Errors Line by Line
Most broken YAML comes down to one character - a tab instead of a space, a missing colon, a list item indented one level too deep. Fixing it means finding it first. This YAML checker lists every problem as you type: click an error, the cursor lands on the offending line, correct it, and the verdict updates with no button press and no round trip to a server.
- Syntax checking: it reports wrong indentation, tabs used for indentation, missing colons, unterminated quotes, and duplicate keys.
- Choice of rules: validate against YAML 1.2 core, YAML 1.1, the JSON schema, or the Failsafe schema - the same document can be valid under one and rejected by another.
- Version differences: on a 1.2 schema it names any value that YAML 1.1 reads differently, so country: NO showing up as the boolean false does not reach production unnoticed.
- Error Reporting: every problem is reported with its line and column, an excerpt of the offending YAML, and a marker on that line in the editor, so you can go straight to it.
FAQs
No - this tool reports whether the YAML is valid and where it is not. Formatting lives in the YAML Formatter, which reindents a document and keeps multi-document files intact.
Because those tools parse YAML 1.1, and the default on this page is YAML 1.2 - and the two versions read some unquoted values differently. Under 1.1, NO, yes, on and off are booleans, so country: NO loads as false; under 1.2 it is the string "NO". When your document is valid on a 1.2 schema, this validator re-parses it as 1.1 and names every value the two versions disagree on, so you can quote it before it reaches Ansible, PyYAML, or another 1.1-era parser.