Skip to content

Validate and autocomplete AsyncAPI with the schema registry ​

schemas.asyncapi.pavelon.dev is a registry of AsyncAPI JSON Schemas. Point a tool, a pipeline or an AI agent at a schema URL and it can validate an AsyncAPI document, autocomplete it, or learn the structure of the specification.

It is a separate thing from this documentation:

Documentation (this site)Schema registry
PurposeExplains the schemas and bindings with examplesMachine-readable schemas to validate and complete documents
AudiencePeople writing or generating AsyncAPIIDEs, CI, code generators, AI agents and LLMs
Where/schemas/ and /bindings/schemas.asyncapi.pavelon.dev

Nightly channel

The registry is a nightly build channel with refactored and improved AsyncAPI JSON Schemas. It carries the latest changes first.

Where the schemas are ​

Every schema is served as application/schema+json with open CORS, so browsers, editors and agents can fetch it directly. URLs have no .json extension.

WhatURL
AsyncAPI 3.0.0 documenthttps://schemas.asyncapi.pavelon.dev/draft-07/schemas/v3.0.0/asyncapi
AsyncAPI 3.1.0 documenthttps://schemas.asyncapi.pavelon.dev/draft-07/schemas/v3.1.0/asyncapi
Schema Objecthttps://schemas.asyncapi.pavelon.dev/draft-07/schemas/schema
Multi-format schemahttps://schemas.asyncapi.pavelon.dev/draft-07/schemas/multiformatschema
Shared v3 parts (servers, channels, operations, security, tags)https://schemas.asyncapi.pavelon.dev/draft-07/schemas/v3/
A broker binding, for example Kafka 0.5.0 channelhttps://schemas.asyncapi.pavelon.dev/draft-07/bindings/apache-kafka/0.5.0/channel
Avro and OpenAPI schema formatshttps://schemas.asyncapi.pavelon.dev/draft-07/integrations/

Browse the registry to find any other schema. Older AsyncAPI 2.x documents are listed under /draft-07/schemas/.

Learn what each schema means in the bindings documentation and the schemas documentation.

Use it in your editor ​

YAML files (VS Code and other editors with the YAML language server) ​

Add a comment at the top of the file:

yaml
# yaml-language-server: $schema=https://schemas.asyncapi.pavelon.dev/draft-07/schemas/v3.0.0/asyncapi
asyncapi: 3.0.0
info:
  title: Orders
  version: 1.0.0

Or map it once for the whole project in settings.json:

json
{
  "yaml.schemas": {
    "https://schemas.asyncapi.pavelon.dev/draft-07/schemas/v3.0.0/asyncapi": "asyncapi*.yaml"
  }
}

JetBrains IDEs ​

Open Settings → Languages & Frameworks → Schemas and DTDs → JSON Schema Mappings, add a mapping, paste the schema URL, choose JSON Schema version 7 and map it to your AsyncAPI files.

The AsyncAPI plugin for JetBrains IDEs validates and completes AsyncAPI out of the box, so you don't need a mapping for it.

Validate in CI ​

check-jsonschema reads the schema from a URL and validates YAML or JSON:

bash
pip install check-jsonschema
check-jsonschema \
  --schemafile https://schemas.asyncapi.pavelon.dev/draft-07/schemas/v3.0.0/asyncapi \
  asyncapi.yaml

A document with a missing required field fails with a message such as $.info: 'version' is a required property.

Validate just one part, such as a Kafka channel binding:

bash
check-jsonschema \
  --schemafile https://schemas.asyncapi.pavelon.dev/draft-07/bindings/apache-kafka/0.5.0/channel \
  kafka-channel-binding.json

Use it with AI agents and LLMs ​

The schemas are the most precise description of what a valid AsyncAPI document looks like. An agent can use them in three ways:

  1. Learn the structure. Fetch the document schema and the binding schema for your broker before writing a document, instead of guessing field names.
  2. Validate what it generated. Run the generated document against the schema (for example with the CI command above) and fix every reported error before showing the result.
  3. Constrain one part. Use a single binding or component schema to generate only that piece, such as a Kafka channel binding, and drop it into the document.

Tip for prompts: give the agent the exact schema URL for your AsyncAPI version and the binding versions you target.