AsyncAPI tools and reference, from one of its maintainers
Write, validate and generate AsyncAPI documents with a JetBrains plugin, keep them in step with live brokers with Kurkik, and look up every protocol binding, schema format and security scheme in plain language.
- brokers with bindings docs
- 20
- JSON Schemas for validation
- 600+
- AsyncAPI versions covered
- 2.x & 3.x
asyncapi: 3.0.0
info:
title: Orders
version: 1.0.0
channels:
orderCreated:
address: orders.created
bindings:
kafka:
partitions: 12
messages:
orderCreated:
payload:
schemaFormat: application/vnd.apache.avro;version=1.9.0
schema:
$ref: './order.avsc'
bindings:
kafka:
key:
type: string
operations:
sendOrderCreated:
action: send
channel:
$ref: '#/channels/orderCreated'
What are you working on?
Start from the task. Each card goes to the page that answers it.
Describe a broker
Kafka topics and keys, AMQP exchanges and queues, MQTT QoS, SQS and SNS: every binding field, with examples.
Bindings for 20 brokersDefine message payloads
JSON Schema, Avro, Protobuf and more: how the Schema and Multi-Format Schema objects describe what you send.
Schema formatsSecure the API
Bearer tokens, API keys, OAuth 2.0 flows, SASL PLAIN, SCRAM and GSSAPI, X.509: which scheme fits, and how to write it.
Security schemesWrite and validate in the IDE
An AsyncAPI editor inside IntelliJ IDEA and other JetBrains IDEs: completion, live validation, preview, linting.
JetBrains pluginGenerate from Spring code
Turn @KafkaListener, JMS, SNS, SQS, Pulsar and STOMP code into an AsyncAPI document instead of writing it twice.
Spring Messaging supportValidate in CI or with AI agents
Point editors, pipelines and LLM agents at a schema URL for your AsyncAPI version and bindings.
JSON Schema registry
AsyncAPI tools for the IDE, the JVM and live brokers
From writing the first document to keeping it true years later: the declaration and the systems it describes should not drift apart.
AsyncAPI plugin for JetBrains IDEs
Free + ProAn AsyncAPI editor for IntelliJ IDEA and every JetBrains IDE, that also generates documents from Spring code and live brokers
- Live validation, completion and preview for AsyncAPI 2.0.0 to 3.1.0
- Generate AsyncAPI documents from Spring code: Kafka, Pulsar, SQS, SNS and JMS
- Export AsyncAPI from a live Kafka or Pulsar cluster, or an SNS or SQS account
AsyncAPI Language Server
In developmentAsyncAPI support for VS Code, Zed and Sublime Text
- Errors and warnings highlighted as you type
- Context-aware completion
- Quick documentation on hover
Kurkik
Early Access ProgramCatch drift between your AsyncAPI document and the brokers and queues that actually run
- Document an existing Apache Kafka, Apache Pulsar, Amazon SNS or Amazon SQS estate
- Detect drift between your AsyncAPI document and the live system
- Apply changes as a reviewed plan, with the risky ones kept out of the default approval
JAsyncAPI
Free & open sourceRead, create and write AsyncAPI documents from Java and Kotlin
- AsyncAPI 2.0.0, 2.6.0 and 3.0.0
- 19 protocol bindings, from Kafka and AMQP to MQTT, NATS, SNS and SQS
- All security scheme types
AsyncAPI bindings, schemas and security schemes
Plain-language docs for the parts of the specification people search for most, with examples you can copy. Every page is also available as Markdown for AI tools.
Protocol bindings for 20 brokers
- Amazon SNS2 versions, latest 0.2.0
- Amazon SQS3 versions, latest 0.3.0
- AMQP 0-9-13 versions, latest 0.3.0
- AMQP 1.00.1.0
- Anypoint MQ0.0.1
- Apache Kafka4 versions, latest 0.5.0
- Apache Pulsar0.1.0
- Google Cloud Pub/Sub2 versions, latest 0.2.0
- HTTP3 versions, latest 0.3.0
- IBM MQ0.1.0
- Jakarta Messaging API (JMS)0.0.1
- Mercure0.1.0
- MQTT2 versions, latest 0.2.0
- MQTT v52 versions, latest 0.2.0
- NATS0.1.0
- Redis0.1.0
- ROS 20.1.0
- Solace4 versions, latest 0.4.0
- STOMP0.1.0
- WebSockets0.1.0
What bindings are and how to use them
JSON Schema registry for editors, CI and AI agents
Machine-readable schemas for AsyncAPI 3.0 and 3.1 documents, every binding version and every security scheme. Paste a URL into your IDE, your pipeline or an agent's prompt.
https://schemas.asyncapi.pavelon.dev/draft-07/schemas/v3.0.0/asyncapiDrift, caught from both sides
An AsyncAPI document is a promise. Code changes, topics get added, queues get reconfigured, and the promise quietly stops being true. These tools compare the declaration with what actually runs.
- From source code
JetBrains plugin
Generates the AsyncAPI document from Spring Messaging code and flags listener mistakes in the editor. When the code changes, you review the difference.
See the plugin - The contract
One AsyncAPI document
The single place that says what your system does, validated against the AsyncAPI JSON Schemas by editors, CI pipelines and AI agents.
Use the schema registry - From brokers and queues
Kurkik
Reads a live Kafka, Pulsar, SNS or SQS system, shows where it differs from the document, and applies fixes only as a plan you approve.
Read about Kurkik
Frequently asked questions
What is AsyncAPI?
AsyncAPI is an open specification for describing message-driven APIs: which servers (brokers) an application connects to, which channels (topics, queues, routing keys) it uses, which messages it sends or receives and what their payloads look like. It does for Kafka, MQTT, AMQP, WebSocket and other protocols what OpenAPI does for HTTP request-response APIs, and documents are written in YAML or JSON.
What is the difference between AsyncAPI and OpenAPI?
OpenAPI describes request-response HTTP APIs: paths, methods and responses. AsyncAPI describes event-driven APIs: channels, the messages on them and whether an application sends or receives them, over protocols such as Kafka, AMQP, MQTT or WebSocket. Both describe payloads with JSON Schema, and AsyncAPI can reuse OpenAPI schemas through the Multi-Format Schema Object.
What is an AsyncAPI binding?
A binding adds protocol-specific details that the core specification does not cover, at server, channel, operation or message level: for example a Kafka topic’s partitions and the message key, an AMQP exchange and queue, or MQTT QoS. Each broker has its own binding with its own versions. Bindings for 20 brokers are documented here with examples.
Is AsyncAPI the same as JSON Schema?
No. JSON Schema describes the shape of a piece of data; AsyncAPI describes a whole messaging API and uses a schema for each message payload. The AsyncAPI Schema Object is a superset of JSON Schema draft-07, and other formats such as Avro or Protobuf can be used through the Multi-Format Schema Object.
How do I use an Avro or Protobuf schema in AsyncAPI?
In AsyncAPI 3.0, set the message payload to a Multi-Format Schema Object: schemaFormat names the format, for example application/vnd.apache.avro;version=1.9.0, and schema holds the schema itself or a $ref to it. In AsyncAPI 2.x, put schemaFormat on the message next to payload. Protobuf uses application/vnd.google.protobuf;version=3, which not every tool supports. Avro examples.
How do I add message examples to an AsyncAPI document?
Use the examples field of the Message Object: a list of examples, each with optional name, summary, headers and payload. Examples should validate against the message’s payload and headers schemas.
How do I describe a Kafka message key in AsyncAPI?
Use the Kafka message binding: its key field holds the schema of the record key, next to the message payload. Topic settings such as partitions and replicas go in the Kafka channel binding, and consumer group and client IDs in the operation binding. Kafka binding reference.
Is there an AsyncAPI editor for IntelliJ IDEA?
Yes. The AsyncAPI plugin for JetBrains IDEs adds completion, live validation for AsyncAPI 2.x and 3.x, a preview, Spectral and Redocly linting, and generation of AsyncAPI documents from Spring Messaging code. It works in IntelliJ IDEA, WebStorm, PyCharm, Android Studio and other JetBrains IDEs, with a free core and paid extras.
How do I validate an AsyncAPI document?
Validate as you type in the JetBrains plugin, or validate against the AsyncAPI JSON Schemas from the schema registry in any editor and in CI, for example with check-jsonschema. Add Spectral or Redocly rules for style and conventions.
How can an AI agent or LLM write valid AsyncAPI?
Give the agent the schema URL for your AsyncAPI version and binding from the registry. It can read the structure from the schema, generate a document or a single binding, then validate the result against the same schema and fix what it reports.
How do I keep an AsyncAPI document in sync with the code and the brokers?
From the code side, the JetBrains plugin regenerates the document from Spring Messaging code so you review what changed. From the broker side, Kurkik compares the document with a live Kafka, Pulsar, SNS or SQS system, reports drift and applies changes only after you approve them.