Schema + semantic validation

A2UI Validator

Validate A2UI v0.9.1 JSON or JSONL before it reaches your renderer.

Official schema snapshotRuns locally in your browserNo payload upload
A2UI payload
JSON object, JSON array, or JSONL
1 MiB max
0 messages · 0.0 KiB
Your payload stays on this device.
Validation report
Schema snapshot a2ui-v0.9.1-basic
Waiting

Your validation report appears here

Paste A2UI JSON or load the broken sample, then validate against the v0.9.1 schema and surface graph rules.

Local by defaultCore validation runs in your browser. Raw payloads never enter analytics.
Official v0.9.1 snapshotServer-to-client, common types, and Basic Catalog schemas are pinned at commit 3f6877b.
Bounded and responsiveUp to 1 MiB / 1,000 messages with a 3-second hard timeout.

A2UI validation explained

What is an A2UI validator?

An A2UI validator checks agent-generated UI messages before a renderer consumes them. It confirms that the JSON or JSONL is valid, matches the expected A2UI message schema and catalog, and keeps surface and component relationships consistent.

This browser tool follows the A2UI v0.9.1 message model and the official Basic Catalog snapshot. It combines schema checks with deterministic lifecycle and component-graph rules, then returns stable error codes and repair guidance you can copy into an issue, pull request, or agent retry.

Deterministic checks

What this A2UI JSON validator checks

Validation runs in three stages so syntax, protocol, and graph failures do not get collapsed into one generic JSON error.

01

JSON and message stream

Parses one object, an array, or JSONL; reports the broken line when syntax fails; and rejects missing, mixed, or unsupported versions.

02

Official A2UI schema

Checks server-to-client envelopes, common types, required properties, value types, and Basic Catalog components against the pinned v0.9.1 snapshot.

03

Surface and component graph

Finds create-before-use violations, duplicate component IDs, missing roots, unknown references, cycles, and unreachable orphan components.

Runnable input formats

A2UI JSONL validation examples

Each non-empty JSONL line is one A2UI message. The first example creates a surface and defines a reachable root; the second has a wrong Text value and an unknown child reference.

Valid A2UI v0.9.1 JSONL

Valid
{"version":"v0.9.1","createSurface":{"surfaceId":"checkout","catalogId":"https://a2ui.org/specification/v0_9_1/catalogs/basic/catalog.json"}}
{"version":"v0.9.1","updateComponents":{"surfaceId":"checkout","components":[{"id":"root","component":"Column","children":["title"]},{"id":"title","component":"Text","text":"Review order"}]}}

Invalid A2UI v0.9.1 JSONL

2+ issues
{"version":"v0.9.1","createSurface":{"surfaceId":"checkout","catalogId":"https://a2ui.org/specification/v0_9_1/catalogs/basic/catalog.json"}}
{"version":"v0.9.1","updateComponents":{"surfaceId":"checkout","components":[{"id":"root","component":"Column","children":["missing"]},{"id":"title","component":"Text","text":42}]}}

To verify the invalid case, use Load broken sample in the live workbench above. It produces real schema and graph issues rather than a static demonstration result.

Actionable results

Common A2UI validation errors

The report keeps stable top-level codes while showing a precise location and a suggested correction for each issue.

INVALID_JSON_OR_JSONL

The input cannot be parsed

Fix the reported JSON line or column. For JSONL, keep exactly one complete JSON object on every non-empty line.

SCHEMA_MISMATCH

The message does not match v0.9.1

Check the JSON Pointer, required property, expected type, and Basic Catalog component definition shown in the report.

INVALID_SURFACE_OR_COMPONENT_GRAPH

The message stream is structurally inconsistent

Create the surface before updating it, define a reachable root, and remove duplicate, unknown, cyclic, or orphan references.

How it works

01
Paste or load a sample

Use one JSON object, an array of messages, or one object per JSONL line.

02
Validate locally

A same-origin Web Worker runs the pinned schema and graph checks without uploading the payload.

03
Use the report

Review every issue and copy a safe result summary without including the original input.

FAQ

Does this support A2UI v1.0?

Not in this release. It validates exact v0.9.1 messages so a different or mixed version can never pass silently.

Does my payload leave the browser?

No. Parsing, Schema validation, and surface graph checks run in a same-origin Web Worker. Raw payloads are not uploaded or stored.

What semantic errors are checked?

Surface lifecycle, duplicate component IDs, missing root, unknown structural references, cycles, and orphan components.

How is this different from a generic JSON validator?

A generic validator can confirm JSON syntax. This tool also checks the pinned A2UI v0.9.1 envelope and Basic Catalog schemas, then inspects surface and component relationships.

Can I use a custom catalog?

Not in this release. The validator is pinned to the official v0.9.1 Basic Catalog so results remain deterministic.

Can I run this in CI?

The current tool is browser-only. Use the CI interest button after a result to help determine whether a future API or build integration should be created.