Tool
Check an ARD manifest
Give it a domain and it fetches your manifest, or paste JSON directly. It tells you what is wrong, where, and what to do about it. Nothing is stored.
What it checks
Errors are things the specification forbids. Warnings are things it permits that will cost you in practice.
| Level | Check |
|---|---|
| error | The document parses as JSON |
| error | entries is present and is an array |
| error | Every entry has identifier, displayName and type |
| error | Every entry has exactly one of url or data, never both |
| error | identifier parses as urn:air:<publisher>:<ns>:<name> |
| error | Identifiers are unique within the manifest |
| error | When fetched by domain: the response is 200 and the body is JSON, not an HTML shell |
| warning | representativeQueries is present, with two to five entries |
| warning | The publisher segment matches the domain serving the manifest |
| warning | type is a media type in known use |
| warning | The manifest is at ard.json rather than the predecessor path |
| warning | Content-Type is application/json |
| warning | Queries are not category labels, which match almost nothing anyone types |
From the command line
curl -s -X POST https://ardregistry.net/api/validate \
-H "Content-Type: application/json" \
-d '{"domain": "example.com"}'
# or send a manifest directly
curl -s -X POST https://ardregistry.net/api/validate \
-H "Content-Type: application/json" \
-d '{"manifest": '"$(cat .well-known/ard.json)"'}'
Questions
Do you store what I paste?
No. The manifest is checked in memory and the response is generated from it. Nothing is written to disk and nothing is logged beyond the fact that a request happened. If you give a domain, the fetch is made from our server, so that domain sees our request rather than yours.
Is this the official conformance tool?
No. The specification's repository has its own conformance tester and that is the authority. This runs the same checks in a browser so you do not have to clone anything.
Why is a missing representativeQueries only a warning?
Because the specification makes it a SHOULD, not a MUST, so an entry without it is valid. It is a warning here rather than an error for the same reason, but it is the warning worth acting on: an entry without it cannot be found by search.
Last reviewed 2026-09-04. Checked against ARD v0.91 (Proposal, 2026-08-26).