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
View JSON Schema on GitHub

JSON Schema

asyncapi-document-schema.json Raw ↑
{
  "$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"}
      }
    }
  }
}