AsyncAPI · Schema
AsyncAPI Document
Root object of an AsyncAPI 3.x document describing an event-driven application.
AsyncAPIEvent-Driven ArchitectureAsynchronous APIsMessage BrokersAPI SpecificationsKafkaMQTTAMQPWebSocketLinux Foundation
Properties
| Name | Type | Description |
|---|---|---|
| asyncapi | string | Semantic version of the AsyncAPI specification this document conforms to. Major.Minor.Patch. |
| id | string | Unique identifier for the application this document describes. URN or URL form. |
| info | object | Metadata about the API: title, version, description, contact, license, tags, externalDocs. |
| servers | object | Map of server objects (keyed by short server name) describing brokers / endpoints this application connects to. |
| defaultContentType | string | Default content type for messages defined in this document. |
| channels | object | Map of channel objects (keyed by channel name) representing addressable message endpoints. |
| operations | object | Map of operation objects (keyed by operation id) describing send/receive actions the application performs on channels. New in AsyncAPI 3.0 — operations were split out of channels. |
| components | object | Reusable definitions: schemas, messages, securitySchemes, serverVariables, parameters, channels, operations, replies, replyAddresses, externalDocs, tags, correlationIds, operationTraits, messageTraits |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/async-apis/refs/heads/main/json-schema/asyncapi-document-schema.json",
"title": "AsyncAPI Document",
"description": "Root object of an AsyncAPI 3.x document describing an event-driven application.",
"type": "object",
"required": ["asyncapi", "info"],
"properties": {
"asyncapi": {
"type": "string",
"description": "Semantic version of the AsyncAPI specification this document conforms to. Major.Minor.Patch.",
"pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+(-.+)?$",
"examples": ["3.0.0", "3.1.0"]
},
"id": {
"type": "string",
"format": "uri",
"description": "Unique identifier for the application this document describes. URN or URL form."
},
"info": {
"type": "object",
"description": "Metadata about the API: title, version, description, contact, license, tags, externalDocs.",
"required": ["title", "version"],
"properties": {
"title": {"type": "string"},
"version": {"type": "string"},
"description": {"type": "string"},
"termsOfService": {"type": "string", "format": "uri"},
"contact": {"type": "object"},
"license": {"type": "object"},
"tags": {"type": "array"},
"externalDocs": {"type": "object"}
}
},
"servers": {
"type": "object",
"description": "Map of server objects (keyed by short server name) describing brokers / endpoints this application connects to.",
"additionalProperties": {"$ref": "asyncapi-server-schema.json"}
},
"defaultContentType": {
"type": "string",
"description": "Default content type for messages defined in this document.",
"examples": ["application/json", "application/cloudevents+json"]
},
"channels": {
"type": "object",
"description": "Map of channel objects (keyed by channel name) representing addressable message endpoints.",
"additionalProperties": {"$ref": "asyncapi-channel-schema.json"}
},
"operations": {
"type": "object",
"description": "Map of operation objects (keyed by operation id) describing send/receive actions the application performs on channels. New in AsyncAPI 3.0 — operations were split out of channels.",
"additionalProperties": {"$ref": "asyncapi-operation-schema.json"}
},
"components": {
"type": "object",
"description": "Reusable definitions: schemas, messages, securitySchemes, serverVariables, parameters, channels, operations, replies, replyAddresses, externalDocs, tags, correlationIds, operationTraits, messageTraits, serverBindings, channelBindings, operationBindings, messageBindings.",
"properties": {
"schemas": {"type": "object"},
"messages": {"type": "object"},
"securitySchemes": {"type": "object"},
"serverVariables": {"type": "object"},
"parameters": {"type": "object"},
"channels": {"type": "object"},
"operations": {"type": "object"},
"replies": {"type": "object"},
"replyAddresses": {"type": "object"},
"externalDocs": {"type": "object"},
"tags": {"type": "object"},
"correlationIds": {"type": "object"},
"operationTraits": {"type": "object"},
"messageTraits": {"type": "object"},
"serverBindings": {"type": "object"},
"channelBindings": {"type": "object"},
"operationBindings": {"type": "object"},
"messageBindings": {"type": "object"}
}
}
}
}