AsyncAPI Check and Event API Diff

Paste AsyncAPI YAML or JSON to list its servers, channels, operations and messages, with issues such as unresolved $ref and unused components by line number. Paste an old and a new version to see candidates such as removed channels or operations, and removed or newly required payload properties. Nothing leaves your browser.

On-device・No uploadMobile friendlyWorks offline

Your files and input are processed only inside your browser on this device and are never uploaded to our servers.

Before (old definition)
0 / 300,000
After (new definition)
0 / 300,000
Up to 300,000 characters per document. Press Ctrl (⌘) + Enter to compare.
Paste an AsyncAPI and press “Check document” or “Compare” to see the result here.
Rules
  • Breaking change candidate A change that may stop existing subscribers or senders from working (a candidate).
  • Safe change A change that existing subscribers and senders keep working with.

How to use

  1. 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.

  2. To check one document, press “Check document” (it reads the left pane). To compare two, press “Compare” (or Ctrl / ⌘ + Enter).

  3. The check lists servers, channels, operations and messages, with issues by line number. The comparison shows breaking change candidates and safe changes.

  4. 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

AsyncAPI 2.x (such as 2.6.0)AsyncAPI 3.0.0.yaml / .yml / .jsonUTF-8 (with or without BOM)

Output

On-screen lists (definitions, issues, changes)Markdown (table for a pull request)JSON (verdict, counts and changes)

Capability matrix

FeatureSupportNotes
Reading AsyncAPI 2.x and 3.0 in YAML or JSONSupported—
Lists of info, servers (protocol), channels, operations, messages and componentsSupported—
$ref (#/...) inside the document: resolution and cycle checkSupported—
$ref to external files or URLsNot supportedNot fetched. Shown as not resolved
Issues: version field, info, unresolved $ref, unused components, operation without a channel, mixed stylesSupportedA 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 enumSupportedOnly 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 messagesNot supportedNo network access
AsyncAPI 1.xNot supportedNot supported. The version field shows it
Code or HTML documentation generationNot supported—
Offline useSupportedWorks 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?
A specification for writing event-driven APIs (message channels and send and receive operations) in YAML or JSON. HTTP APIs are written with OpenAPI.
How is this different from the OpenAPI tool?
OpenAPI describes HTTP APIs (paths and methods). AsyncAPI describes message channels and send or receive operations. Choose the tool that matches your definition.
What is the difference between AsyncAPI 2.x and 3.0 writing?
In 2.x, publish and subscribe sit under each channel. In 3.0, channels and operations (send and receive) are written separately. This tool reads both and flags a mix of the two.
Are $ref values in external files resolved?
No. Files are not fetched, so they are shown as not resolved. Put the related definitions in components to check them here.
Can it fully validate a document against the specification?
No. It is a light check for common mistakes. Use the official AsyncAPI tools for full validation.

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.

No upload

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.

No upload

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.

No upload

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.

No upload

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.

No upload

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.

No upload

Last updated: