{"openapi":"3.1.0","info":{"title":"YAML API","version":"1.0.0","description":"Convert, validate and tidy YAML through a fast, fully-local API. Turn YAML into JSON (including multi-document streams) or JSON into clean YAML with optional key sorting and custom indentation, validate a document and get the exact line and column of any syntax error with a context snippet, or reformat and normalize existing YAML. Inputs can be sent as a raw text/plain body, a JSON field or a query parameter; outputs are tidy JSON. Pure server-side compute with no third-party upstream, so responses are instant and the service is always available. Ideal for DevOps and CI/CD, configuration and infrastructure-as-code tooling, no-code platforms, editors and data pipelines.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/yaml-api","description":"oanor gateway"}],"tags":[{"name":"YAML"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/format":{"get":{"operationId":"get_v1_format","tags":["YAML"],"summary":"Format / normalize YAML","description":"","parameters":[{"name":"yaml","in":"query","required":true,"description":"YAML document","schema":{"type":"string"},"example":"{b: 2, a: 1}"},{"name":"sort_keys","in":"query","required":false,"description":"Sort keys (true/false)","schema":{"type":"string"},"example":"true"},{"name":"indent","in":"query","required":false,"description":"Indent 1-10","schema":{"type":"string"},"example":"2"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"yaml":"a: 1\nb: 2\n","documents":1},"meta":{"timestamp":"2026-05-30T18:16:53.767Z","request_id":"bb9c5cc2-d621-4138-9c4d-4bc1f2dff440"},"status":"ok","message":"OK","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/to-json":{"get":{"operationId":"get_v1_to_json","tags":["YAML"],"summary":"YAML to JSON","description":"","parameters":[{"name":"yaml","in":"query","required":true,"description":"YAML document (raw text body, field or query)","schema":{"type":"string"},"example":"{name: Ada, age: 36, tags: [a, b]}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"json":{"age":36,"name":"Ada","tags":["a","b"]},"documents":1},"meta":{"timestamp":"2026-05-30T18:16:53.843Z","request_id":"c3de528c-4be5-4218-8df7-7b2291a17bac"},"status":"ok","message":"OK","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/to-yaml":{"get":{"operationId":"get_v1_to_yaml","tags":["YAML"],"summary":"JSON to YAML","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"JSON value (object or string)","schema":{"type":"string"},"example":"{\"server\":{\"host\":\"x\",\"ports\":[80,443]}}"},{"name":"sort_keys","in":"query","required":false,"description":"Sort keys (true/false)","schema":{"type":"string"},"example":"true"},{"name":"indent","in":"query","required":false,"description":"Indent 1-10 (default 2)","schema":{"type":"string"},"example":"2"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"yaml":"server:\n  host: x\n  ports:\n    - 80\n    - 443\n"},"meta":{"timestamp":"2026-05-30T18:16:53.921Z","request_id":"6d40377b-5362-4be8-bebb-5964f0d7f458"},"status":"ok","message":"OK","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/validate":{"get":{"operationId":"get_v1_validate","tags":["YAML"],"summary":"Validate YAML","description":"","parameters":[{"name":"yaml","in":"query","required":true,"description":"YAML document","schema":{"type":"string"},"example":"{name: Ada, age: 36, tags: [a, b]}"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"valid":true,"documents":1},"meta":{"timestamp":"2026-05-30T18:16:53.995Z","request_id":"898272d4-1945-4435-b5a7-d09b576fb0a8"},"status":"ok","message":"OK","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1000,"rps_limit":2,"hard_limit":true},{"slug":"basic","name":"Basic","price_cents_month":400,"monthly_call_quota":60000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1100,"monthly_call_quota":400000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":3100,"monthly_call_quota":2000000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/yaml-api"}