ardregistry.net

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 to check

What it checks

Errors are things the specification forbids. Warnings are things it permits that will cost you in practice.

LevelCheck
errorThe document parses as JSON
errorentries is present and is an array
errorEvery entry has identifier, displayName and type
errorEvery entry has exactly one of url or data, never both
erroridentifier parses as urn:air:<publisher>:<ns>:<name>
errorIdentifiers are unique within the manifest
errorWhen fetched by domain: the response is 200 and the body is JSON, not an HTML shell
warningrepresentativeQueries is present, with two to five entries
warningThe publisher segment matches the domain serving the manifest
warningtype is a media type in known use
warningThe manifest is at ard.json rather than the predecessor path
warningContent-Type is application/json
warningQueries are not category labels, which match almost nothing anyone types

From the command line

same checks, same output
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).