YAML Validator & Linter

Validate YAML syntax in your browser with line-numbered errors. Catches indentation and structure problems before your CI does. Free.

YAML inputpaste, type, or drop a file
Text output
Runs 100% in your browser. Nothing is uploaded, logged, or stored, and there are no ads. Verify it yourself: open your browser's Network tab while you convert and watch that no requests leave this page.

About this tool

Validate YAML before your deployment pipeline does it for you. Indentation errors, duplicate keys, and malformed structures are reported with their line numbers.

This checks syntax, not semantics: a file can be valid YAML and still be an invalid Kubernetes manifest. But nearly all 'my pipeline rejected the file' errors are the syntax kind this catches.

Common uses

  • Check a Kubernetes manifest or GitHub Actions workflow before pushing.
  • Find the indentation slip in a deeply nested config.
  • Validate YAML front matter from static site content.

Automate via API

The same conversion is available as a REST endpoint for scripts, pipelines, and backends:

curl -X POST https://payloadly.com/api/v1/tools/yaml-validator \
  -H "Content-Type: text/plain" \
  -H "X-Api-Key: YOUR_API_KEY" \
  --data-binary @input.yaml

API documentation · Get an API key

Worked examples

Real payloads from tools people use daily, with the exact output this converter produces. Every example runs in your browser, so you can load one and adapt it to your own data.

Validate a GitHub Actions workflow

A single mis-indented step makes Actions reject the whole workflow; check it here before you push.

YAML input
name: CI
on:
  push:
    branches: [main]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci
      - run: npm test
Text output
Valid YAML.

Root value : object with 3 keys
Input size : 169 B (11 lines)

Validate a docker-compose.yml

Confirms your Compose file parses as valid YAML before docker compose up complains about it.

YAML input
services:
  web:
    image: nginx:1.27
    ports:
      - "80:80"
  db:
    image: postgres:16
    environment:
      POSTGRES_PASSWORD: secret
Text output
Valid YAML.

Root value : object with 1 key
Input size : 143 B (9 lines)

Validate a Kubernetes manifest

Catches the indentation slips that make kubectl apply fail, before it reaches the cluster.

YAML input
apiVersion: v1
kind: Service
metadata:
  name: web
spec:
  selector:
    app: web
  ports:
    - port: 80
      targetPort: 8080
Text output
Valid YAML.

Root value : object with 4 keys
Input size : 128 B (10 lines)

YAML notes

YAML is a human-friendly superset of JSON used heavily in Kubernetes manifests, GitHub Actions workflows, Docker Compose files, and CI/CD pipelines. Indentation is structural, and unquoted scalars are type-coerced.

  • Indentation defines structure; tabs are not allowed for indentation.
  • Unquoted values like `no`, `on`, or `1.0` may be coerced to booleans or numbers.
  • Comments (`# ...`) cannot survive a round-trip through JSON.

Frequently asked questions

Is my data uploaded to a server?

No. This tool runs entirely in your browser using JavaScript, and there are no ads on the page. Nothing you paste or drop here is uploaded, logged, or stored, and you can verify that yourself: open your browser's developer tools and watch the Network tab while you convert (no requests leave the page), or disconnect from the internet after the page loads and keep working.

Is there a size limit or a fee?

The browser tool is free with no signup and comfortably handles files up to tens of megabytes (limited by your device's memory). For automated or bulk processing inside your own scripts and pipelines, use the paid REST API.

Related tools