Paste an AsyncAPI definition to examine its event API structure. This inspector summarizes supported fields without connecting to a broker.
Runs locally in your browserPaste an AsyncAPI definition as YAML or JSON and the page lists its channels, the operations declared on them, the messages each channel carries, the servers and the document version. The parsing happens in the browser: the definition is never uploaded and no request leaves the page.
This is a reading aid for a specification file, not a broker client and not a validator. It reports what it can actually see in the text you paste, including the cases where a message reference points at a definition that is not in the document.
In AsyncAPI 3.0 the messages of a channel live under channel.messages, and each operation in the operations section names its channel, usually through a $ref. In 2.x the channel itself holds publish and subscribe, and each of those carries one message. The inspector reads both shapes: a 3.0 channel row gets its messages from the messages map, a 2.x row gets them from publish.message or subscribe.message.
Channel references are resolved by name with JSON Pointer escaping applied, so a reference such as #/channels/user~1signed-up matches a channel keyed user/signed-up. When a message is a reference rather than an inline object, the name at the end of the reference is shown instead of an empty column.
The report is JSON, so it can be read by a person or diffed in a review. It contains the declared asyncapi version, the info title and version, the server names, and for every channel the operations found on it next to the message names. An operation is taken from the channel itself in 2.x, or matched by channel reference in 3.0; a channel with no operation at all is marked declared so the difference stays visible.
Four counters sit under the report: the specification version, the number of channels, the number of operations and the number of servers. Under them the page lists what it noticed — a definition without info.title, or one without any channel — so an empty or half-filled document is called out instead of looking complete.
The inspector never opens a connection, subscribes to a topic or contacts the servers named in the document. The word local in the panel is literal: everything is text parsing with the JavaScript already loaded in the page, which is also why the tool keeps working with the network disconnected.
It is not an AsyncAPI linter either. It does not check that bindings are valid, that referenced schemas exist, or that the document follows every rule of the specification. A definition with an error it does not look for will be reported as read successfully. For rule-by-rule validation use the official AsyncAPI tooling and treat this page as a quick read of the structure.
The parser accepts ordinary YAML and JSON. Duplicate keys, anchors and custom tags beyond the common ones are outside what the light YAML reader implements, so a document that relies on them may not be read the way a full YAML library would read it. An unclosed bracket or a broken indentation is reported with the line number instead of being guessed at.
Size is handled in the browser, so a very large definition costs memory and time on your machine rather than on a server. A document with several hundred channels is still read in about two seconds, and the page stays responsive because the work is a single pass over the parsed text.