AsyncAPI · Schema

AsyncAPI Channel

An AsyncAPI channel — an addressable component of the messaging system (a Kafka topic, MQTT topic, AMQP exchange/queue, WebSocket path, NATS subject, etc.) over which messages flow.

AsyncAPIEvent-Driven ArchitectureAsynchronous APIsMessage BrokersAPI SpecificationsKafkaMQTTAMQPWebSocketLinux Foundation

Properties

Name Type Description
address stringnull Concrete address of the channel on the server. For Kafka: the topic name. For MQTT: the topic filter. For AMQP: the routing key. Null means the channel has no concrete address (used for runtime resolu
title string Human-readable title for the channel.
summary string Short summary of what the channel represents.
description string Long-form description. CommonMark allowed.
servers array References to the servers this channel is available on. Each item is a Reference Object pointing into #/servers.
messages object Map of message objects (keyed by message id) that can flow over this channel. Each value is a Message Object or Reference.
parameters object Map of parameter definitions used in the channel address template (e.g. `user/{userId}/signup`).
tags array Tags for categorizing channels.
externalDocs object External documentation pointer.
bindings object Protocol-specific channel definitions (kafka, mqtt, amqp, ws, nats, sns, sqs, http, jms, pulsar, ibmmq, googlepubsub, anypointmq, solace).
View JSON Schema on GitHub

JSON Schema

asyncapi-channel-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-channel-schema.json",
  "title": "AsyncAPI Channel",
  "description": "An AsyncAPI channel — an addressable component of the messaging system (a Kafka topic, MQTT topic, AMQP exchange/queue, WebSocket path, NATS subject, etc.) over which messages flow.",
  "type": "object",
  "properties": {
    "address": {
      "type": ["string", "null"],
      "description": "Concrete address of the channel on the server. For Kafka: the topic name. For MQTT: the topic filter. For AMQP: the routing key. Null means the channel has no concrete address (used for runtime resolution)."
    },
    "title": {
      "type": "string",
      "description": "Human-readable title for the channel."
    },
    "summary": {
      "type": "string",
      "description": "Short summary of what the channel represents."
    },
    "description": {
      "type": "string",
      "description": "Long-form description. CommonMark allowed."
    },
    "servers": {
      "type": "array",
      "description": "References to the servers this channel is available on. Each item is a Reference Object pointing into #/servers.",
      "items": {"type": "object"}
    },
    "messages": {
      "type": "object",
      "description": "Map of message objects (keyed by message id) that can flow over this channel. Each value is a Message Object or Reference.",
      "additionalProperties": {"$ref": "asyncapi-message-schema.json"}
    },
    "parameters": {
      "type": "object",
      "description": "Map of parameter definitions used in the channel address template (e.g. `user/{userId}/signup`).",
      "additionalProperties": {
        "type": "object",
        "properties": {
          "description": {"type": "string"},
          "enum": {"type": "array"},
          "default": {"type": "string"},
          "examples": {"type": "array"},
          "location": {"type": "string"}
        }
      }
    },
    "tags": {
      "type": "array",
      "description": "Tags for categorizing channels.",
      "items": {"type": "object"}
    },
    "externalDocs": {
      "type": "object",
      "description": "External documentation pointer."
    },
    "bindings": {
      "type": "object",
      "description": "Protocol-specific channel definitions (kafka, mqtt, amqp, ws, nats, sns, sqs, http, jms, pulsar, ibmmq, googlepubsub, anypointmq, solace).",
      "properties": {
        "kafka": {"type": "object"},
        "mqtt": {"type": "object"},
        "amqp": {"type": "object"},
        "ws": {"type": "object"},
        "nats": {"type": "object"},
        "sns": {"type": "object"},
        "sqs": {"type": "object"},
        "http": {"type": "object"},
        "jms": {"type": "object"},
        "pulsar": {"type": "object"},
        "ibmmq": {"type": "object"}
      }
    }
  }
}