How to use
- openapi.yaml
Paste or open the spec
- Validation resultsProblems in one listEndpoint list
Validate and list
- curl examplesYAML ⇄ JSON
Output curl or JSON
Paste OpenAPI (or Swagger 2.0) YAML or JSON into the input pane, or click “Open file” (several files at once are fine). “Sample” loads an example.
In “View”, search or filter to pick an endpoint, then read its parameters, request body, responses, schema tree, examples and curl example. Tabs for schemas, security and general info are there too.
In “Validate”, see syntax errors with line and column, mismatches with the official schema, undefined $refs, duplicate operationIds, missing path parameters and examples that do not fit their schema. “Go to” selects the spot in the input.
In “Convert”, switch between YAML and JSON, then copy or download.
Relative references to other files (./schemas.yaml#/Pet) resolve against the files you loaded together. References to anything else are shown as unresolved.
What it does
Official-schema validation
Checks Swagger 2.0, OpenAPI 3.0 and 3.1 files against the official JSON Schemas (from @apidevtools/openapi-schemas 2.1.0) and shows each mismatch with its line and column. Validation runs in a Web Worker, so large definitions do not freeze the page.
Mistakes the schemas cannot express
Finds undefined $refs, duplicate operationIds, path templates and path parameters that do not match, required names missing from properties, minimum above maximum, undefined security schemes, and example / default values that do not fit their schema.
Tag-grouped list and detail
Lists method, path, summary and deprecated per tag with search. Each operation shows parameters, request body, responses (with headers and examples per media type) and the security schemes it needs.
Schema trees that survive cycles
Follows $ref and expands allOf, oneOf and anyOf. A circular reference is marked and not followed, and trees stop at depth 10 and 3,000 nodes, so recursive definitions cannot hang the page.
Relative references across files
Resolves relative references between the files you load together (for example to another file’s #/components/…). URLs and files that were not loaded are never fetched; they are counted as unresolved.
curl examples with placeholders
Builds a curl command per operation. Credentials and unspecified values stay as placeholders such as <TOKEN> and <API_KEY>; nothing is actually sent.
Use cases
- Check a work-in-progress OpenAPI YAML against the spec without opening an editor
- Read a Swagger / OpenAPI file someone sent you without standing up Swagger UI
- Catch duplicate operationIds and missing path parameters before review
- Verify that examples still match their schemas
- Inspect an internal API definition without sending it to an online service
- Convert OpenAPI between YAML and JSON
Supported formats
Input
Output
Capability matrix
| Feature | Support | Notes |
|---|---|---|
| Viewing OpenAPI 3.0 / 3.1 and Swagger 2.0 (endpoints, schemas, examples, security schemes) | Supported | — |
| Syntax errors with line and column (YAML, JSON) | Supported | — |
| Validation against the official JSON Schemas | Supported | 2.0, 3.0 and 3.1. 3.2 files are viewed using the 3.1 rules without schema validation |
| Undefined $ref, duplicate operationId, path parameters, required contradictions, example vs schema | Supported | Example checks stop at 300 examples or 4 seconds |
| Relative references between several files | Supported | Only among the files loaded together |
| YAML ⇄ JSON conversion | Supported | YAML comments do not survive into JSON |
| curl example generation | Partial | Uses only values from examples and defaults; credentials are placeholders; style / explode serialization is not applied |
| Markdown in descriptions | Partial | Shown as plain text, not rendered |
| Fetching external $refs (URLs, files that were not loaded) | Not supported | No network access, so they are shown as unresolved |
| Try it out (calling the API) | Not supported | It needs network access, so it is not built |
| Swagger 2.0 → OpenAPI 3 conversion | Not supported | No reliable converter library could be bundled for the browser. 2.0 files are viewed and validated as 2.0 |
| Validating a whole multi-file definition | Partial | Only the first spec file is validated; the other files are used for resolving references |
| Offline use | Supported | Works without a connection once loaded |
Limits & notes
- Up to 5 million characters per file, 10 million in total and 20 files. Above one million characters, auto-run pauses and you press “Run”.
- Nesting is limited to 100 levels. YAML aliases are limited to 100 uses; beyond that the file is rejected.
- Up to 3,000 operations are listed and 300 validation results are shown. Schema trees stop at depth 10 and 3,000 nodes; anything beyond is omitted.
- Processing is stopped after 30 seconds (a huge definition, or a pattern that takes very long).
- Markdown and HTML in descriptions are not interpreted; they are shown as text. Links are http(s) only and open in a new tab with rel="noopener noreferrer nofollow".
- nullable (3.0) and x-nullable (2.0) are treated as allowing null when examples are checked.
Privacy & safety
Your definition and files are processed only inside your browser. Nothing is sent to or stored on any server, and external $refs are never fetched. HTML in descriptions is never executed; it is displayed as text. Closing the page discards everything.
FAQ
How is this different from Swagger Editor or Swagger UI?
What does the OpenAPI validation check?
Why are duplicate operationIds a problem?
How are $refs to other files handled?
Can it convert Swagger 2.0 to OpenAPI 3?
Is my definition sent to a server?
Related tools
JSON Studio — Formatter & Validator
Paste JSON to format, minify or validate it instantly. Errors are shown with the exact line, column and cause, and comments or trailing commas can be auto-repaired. Your data never leaves your device.
YAML / TOML Studio — Validate, Format & Convert
Paste YAML, TOML or JSON to validate, format or convert it. Errors show the exact line and column, and type traps such as “no becomes false” and anything lost in conversion are flagged up front. Your data never leaves your device.
curl Converter
Paste “Copy as cURL” from Chrome or Firefox to see the method, URL, headers, cookies and body in tables, then convert to 12 kinds of code. The request is never sent and everything runs in your browser. Authorization and cookies can be hidden before you share.
Schema Codegen — JSON to Types & Schema
Paste sample JSON, a JSON Schema or an OpenAPI document to get type definitions in 10 formats. Put several samples in a row to infer optional keys and unions. Your data never leaves your device.
Secret Scanner
Paste text or drop config and code files to list likely secrets with file, line and rule before you publish or share them. Values are masked by default and you can save a copy with them replaced by ***. A helper only — it cannot guarantee that nothing is missed.
Diff Tool — Text & Code Compare
Paste or drop two versions and see added and removed lines, plus the exact words that changed inside each line. Copy or save the result as a unified patch. Nothing leaves your browser.
Last updated: