Standards
ARD is now an IETF Internet-Draft
On 30 October 2026 Agentic Resource Discovery was submitted to the IETF as three Internet-Drafts, under the name Agent Resource Discovery. The format did not change. How a manifest is served did: the drafts give it a media type of its own, and a client may ignore a manifest without it. We checked every domain we know publishes one. Of 179 serving /.well-known/ard.json, none used it.
What was submitted
On 30 October 2026 three Internet-Drafts were submitted to the IETF's DAWN effort (Discovery of Agents With Names), by authors at Google and Ericsson. Together they restate the ARD specification as IETF text and split it into three parts.
| Draft | What it specifies |
|---|---|
| draft-bu-dawn-ard-architecture-00 | Roles (publisher, consumer, registry, domain owner), the three deployment settings (local network, private network, Internet), seven design principles and a trust model that spans three administrative domains. |
| draft-jimenez-dawn-ard-initial-contact-00 | How a client finds a manifest from a domain name: the well-known URI (mandatory), an SVCB record at
_index._agents, DNS-SD under _ard._tcp, a Link: rel="ard" header,
and Multicast DNS on a local network. |
| draft-bu-dawn-ard-discovery-00 | The entry and manifest format with a CDDL grammar, the search, explore and list endpoints, error
responses, federation, and the IANA registrations for application/ard+json,
application/ai-registry+json and the urn:air namespace. |
These are individual drafts, version 00, valid until 3 May 2027. They are not an RFC and not yet working group documents. The registration interface, how a publisher pushes entries into a registry, is left to a later document.
One protocol, two names
The drafts call it Agent Resource Discovery. The specification site still says Agentic
Resource Discovery. They are the same thing: the same /.well-known/ard.json path, the same
urn:air:<publisher>:<namespace>:<name> identifiers, the same entry fields and
the same JSON-LD base context at agenticresourcediscovery.org/context/v1. A manifest valid
under v0.91 of the specification is still a manifest under the drafts.
Nothing you published is invalid. Two things about how it is served now matter more than they did.
What changed for publishers
- The media type. The discovery draft registers
application/ard+jsonfor a manifest, and the initial contact draft says a response to the well-known URI with any other media type has the outcome no manifest. A client written to the draft is allowed to ignore a manifest served asapplication/json. - A link from your homepage. A publisher SHOULD answer
HEAD /withLink: </.well-known/ard.json>; rel="ard". The HTML<link rel="ard">tag still works for crawlers that fetch the page. - Optional DNS. An SVCB record at
_index._agents.<domain>names a host that serves the manifest, and DNS-SD under_ard._tcpcan enumerate several manifests. On a local network, clients browse_ard._tcp.local.over Multicast DNS. - One redirect, no more. A client follows at most one HTTP redirect and one DNS alias. A chain of two ends the attempt.
What changed for registries
- The
urlof a registry's ownapplication/ai-registry+jsonentry is its base URL. Clients append/search,/exploreor/agents. Theurlof a referral in a search response is the opposite: a complete search endpoint, used as it is. - Errors SHOULD be RFC 9457 Problem Details with a code:
INVALID_ARGUMENT,UNAUTHENTICATED,PERMISSION_DENIED,NOT_FOUND,RATE_LIMIT_EXCEEDED,INTERNAL_ERROR,NOT_IMPLEMENTED. - Federation keeps its three modes (
auto,referrals,none) and adds a rule: registries MUST bound how far a query travels, three hops by default. - Search pages with
pageSize(up to 100),pageTokenandnextPageToken, and every result carries ascorefrom 0 to 100 and asource.
We measured who is ready
Our crawler knows 460 domains that have published an ARD manifest. On 2 November 2026 we requested each one again and checked it against the new text.
| Check | Domains |
|---|---|
Serve a manifest at /.well-known/ard.json today | 179 |
Serve one only at the older /.well-known/ai-catalog.json | 241 |
| Answer at neither path any more | 40 |
Of the 179, served as application/ard+json | 0 |
Of the 179, served as application/json | 170 |
Send Link: rel="ard" on the root | 34 |
Publish an SVCB record at _index._agents | 50 |
| ... whose target serves a manifest at the well-known path | 14 |
Publish a DNS-SD record under _ard._tcp | 0 |
These numbers are now re-measured every day on the ARD IETF readiness tracker, with the data as JSON and CSV.
Not one manifest in the sample, ours included, was served with the media type the draft defines. The
nine that were not plain JSON used names of their own: application/ai-catalog+json eight
times and application/ard-manifest+json once. The SVCB records mostly come from the DNS-AID
proposal and point at agent endpoints rather than at a manifest, which is why only 14 of 50 lead to one.
Seven apparent DNS-SD records were wildcard answers, not real ones, so the count is zero.
Check your own domain
curl -sI https://example.com/.well-known/ard.json | grep -i content-type # want: content-type: application/ard+json curl -sI https://example.com/ | grep -i '^link' # want: link: </.well-known/ard.json>; rel="ard" dig +short _index._agents.example.com TYPE64 # optional: 1 example.com. alpn="h2"
On nginx, the media type and the header are two lines each:
location = /.well-known/ard.json {
types { } default_type application/ard+json;
}
location = / {
add_header Link '</.well-known/ard.json>; rel="ard"; type="application/ard+json"' always;
# ... your existing root configuration
}
A client that only understands JSON still reads application/ard+json, because it ends in
+json. Changing the type breaks nothing that worked.
What we changed today
Neuronto now serves its manifest as application/ard+json, sends Link: rel="ard"
on the root, publishes an SVCB record at _index._agents.neuronto.com, gives its registry entry
a base URL, answers discovery errors as Problem Details, pages search results with
nextPageToken, and asks other registries for their local results only, so a query never
travels more than one hop. The specification's own conformance tool still reports PASS, 0 errors,
0 warnings for both the manifest and the registry. The code is open on
GitHub.
One thing we did not ship yet: DNS-SD. The SVCB record already gives a client the same entry point, and DNS-SD earns its keep mainly where a domain has several manifests to enumerate.
Use Neuronto from your agent
One call searches this index and every other public ARD registry. No key, no signup. Or install it as an MCP server and let the agent search from the interface it already speaks.
curl -s https://neuronto.com/search \
-H 'content-type: application/json' \
-d '{"query":{"text":"scrape a website"},"federation":"auto"}'
claude mcp add --transport http neuronto https://neuronto.com/mcp