Validate and evaluate APIs and Markdown against your standards
Pick a built-in ruleset, adjust any rule, and extend it with custom rules. The same rules run on your laptop and in CI, so problems surface in review, before they reach production. Each error points to the exact line in your file, shows it in a code frame, and suggests a fix where possible.
recheck lints the Markdown beside your API for structure and prose, and --fix repairs what it can.
$ redocly lint openapi.yaml --format=codeframe [1] openapi.yaml:9:7 at #/paths/~1orders/get/desciption Property `desciption` is not expected here. Did you mean: description ? 8 | summary: List orders 9 | desciption: Returns all orders | ^^^^^^^^^^ 10 | operationId: listOrders Error was generated by the struct rule. โ Validation failed with 1 error.
$ redocly lint openapi.yaml --format=json { "totals": { "errors": 1, "warnings": 0, "ignored": 0 }, "problems": [{ "ruleId": "struct", "severity": "error", "message": "Property `desciption` is not expected here.", "suggest": ["description"], "location": [{ "pointer": "#/paths/~1orders/get/desciption", "start": { "line": 9, "col": 7 } }] }] }
$ redocly lint openapi.yaml --format=junit <testsuites name="redocly lint" tests="1" errors="1" failures="0"> <testsuite name="openapi.yaml" tests="1" errors="1"> <testcase classname="struct" file="openapi.yaml" line="9"> <error message="Property `desciption` is not expected here."> Rule: struct ยท Line: 9 ยท Column: 7 </error> </testcase> </testsuite> </testsuites>
$ redocly lint openapi.yaml --format=github-actions ::error title=struct,file=openapi.yaml,line=9,col=7,endLine=9,endColumn=17::Property `desciption` is not expected here.%0A%0ADid you mean: description ? # shows up as an annotation on the pull request diff
$ redocly recheck docs ๐ Found 2 issue(s): single-h1 docs/index.md:5:1 Multiple top-level headings in the same document no-trailing-spaces docs/index.md:3:27 Trailing spaces [fixable] 1 of 2 fixable with --fix โ Found 2 error(s).