How to use
Paste the old AsyncAPI in “Before (old definition)” and the new one in “After (new definition)”, or open a file with “Open file”. “Try a sample” also works.
To check one document, press “Check document” (it reads the left pane). To compare two, press “Compare” (or Ctrl / ⌘ + Enter).
The check lists servers, channels, operations and messages, with issues by line number. The comparison shows breaking change candidates and safe changes.
Use “Copy Markdown” to paste a table into a pull request description, or “Save JSON” to keep the verdict, counts and changes.
What it does
Channels, operations and messages
Reads publish and subscribe from 2.x, and channels and operations (send and receive) from 3.0, and lists them.
$ref resolution and cycle check
Resolves #/... references inside the document, and shows unresolved and circular ones by line number. External files and URLs are never fetched.
Writing issues
Flags the version field, info title and version, mixed 2.x and 3.0 styles, operations without a channel and unused components.
Breaking change candidates
Removed channels, operations and messages, removed payload properties, changed types and newly required properties are shown as candidates, apart from safe additions.
Runs only in your browser
The document is not sent anywhere and is read inside your browser. The tool does not connect to a broker.
Use cases
- Check a pull request that edits an event definition for changes that may break existing subscribers
- Find unresolved $ref values and components that nothing uses, by line number
- Check whether the 2.x and 3.0 writing styles are mixed
- Compare internal event definitions without sending them outside
Supported formats
Input
Output
Capability matrix
| Feature | Support | Notes |
|---|---|---|
| Reading AsyncAPI 2.x and 3.0 in YAML or JSON | Supported | — |
| Lists of info, servers (protocol), channels, operations, messages and components | Supported | — |
| $ref (#/...) inside the document: resolution and cycle check | Supported | — |
| $ref to external files or URLs | Not supported | Not fetched. Shown as not resolved |
| Issues: version field, info, unresolved $ref, unused components, operation without a channel, mixed styles | Supported | A check for common mistakes. It is not a full schema validation |
| Comparing channels, operations and messages (added and removed), and payload properties, types, required and enum | Supported | Only payload parts that resolve inside the document are compared |
| Full JSON Schema validation (checking payload values) | Not supported | — |
| Connecting to a broker, sending or receiving messages | Not supported | No network access |
| AsyncAPI 1.x | Not supported | Not supported. The version field shows it |
| Code or HTML documentation generation | Not supported | — |
| Offline use | Supported | Works without a connection once the page has loaded |
Limits & notes
- Up to 300,000 characters per document. Files up to 1 MB.
- References are expanded to depth 5. Deeper parts are not compared.
- The verdict follows general rules for writing and compatibility. Each API may have its own policy.
Privacy & safety
The document is read only inside your browser. Nothing is sent or stored, and closing the page discards it. Analytics only record that a run happened, with no content or counts.
FAQ
What is AsyncAPI?
How is this different from the OpenAPI tool?
What is the difference between AsyncAPI 2.x and 3.0 writing?
Are $ref values in external files resolved?
Can it fully validate a document against the specification?
Related tools
OpenAPI Studio — Viewer & Validator
Paste an OpenAPI 3.0 / 3.1 or Swagger 2.0 definition to browse endpoints by tag and schemas as trees, and to check it against the official schemas with line and column. It never calls the API or fetches external files, and nothing leaves your device.
OpenAPI Diff (Breaking Change Checker)
Paste the old and new OpenAPI (or Swagger 2.0) definitions to list the changes that break clients: removed paths, newly required fields, type changes and more. Each change is sorted into breaking, caution or non-breaking, with the reason on its row. Nothing leaves your browser.
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.
GraphQL Schema Check and Breaking Changes
Paste a GraphQL SDL schema (schema.graphql) to list its types, fields and arguments, with issues such as undefined types by line number. Paste an old and a new schema to see breaking change candidates, such as removed fields or newly required arguments, apart from safe changes. Nothing leaves your browser.
Protobuf .proto Check and Compatibility
Paste a .proto to list its messages, field numbers, types, labels, enums and rpcs, with issues such as duplicate or out-of-range numbers by line number. Paste an old and a new version to see changes that may break compatibility, such as a changed field number or type, apart from cautions and safe changes. Nothing leaves your browser.
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: