Agentic Resource Discovery (ARD): publish an ai-catalog.json that registries can read

Agentic Resource Discovery (ARD) is an open specification, launched in June 2026 by Google and ten partner companies, for making AI resources discoverable. The idea is small: your site publishes one JSON file at a fixed address, and registries crawl that file and index what it declares. A registry is a search engine for the agentic web, and this directory is one of them. We read these files every day, and that experience is where this guide comes from.

The file, at its smallest

Host this at https://yourdomain.com/.well-known/ai-catalog.json:

{
  "specVersion": "1.0",
  "host": { "displayName": "Your Company", "identifier": "yourdomain.com" },
  "entries": [{
    "identifier": "urn:air:yourdomain.com:agent:your-agent",
    "displayName": "Your Agent",
    "type": "application/a2a-agent-card+json",
    "url": "https://yourdomain.com/.well-known/agent-card.json",
    "description": "What the agent does, in one plain sentence.",
    "representativeQueries": ["a task someone would actually ask for"]
  }]
}

Three fields matter most. The identifier is a URN you make up once and never change; it is how every registry knows that two catalogs list the same agent. The displayName is required, and entries without one are dropped by strict consumers. The type tells a registry what kind of thing the entry is: an A2A agent is application/a2a-agent-card+json, and its url points at the agent card, not at your homepage.

Mistakes live sites are making right now

We crawl published manifests, so every item on this list has been observed on a real site.

Missing display names. Major companies are shipping entries with no displayName. Strict consumers, this directory included, drop those entries rather than guess.

Improvised type strings. The same concept is spelled application/ai-skill+md, application/agent-skills+md, and application/ai-skill-archive+gzip on three different major sites. Use the spec's registered types where they exist.

Cards that point at nothing. An entry whose url returns marketing HTML is worse than no entry. See publish a card that actually answers for how to test yours.

The four ways registries find your file

The specification defines four advertisement channels. Use the first two at minimum, since they cost one line each.

1. The well-known path itself. Registries try it directly.
2. robots.txt. Add Agentmap: https://yourdomain.com/.well-known/ai-catalog.json.
3. An HTML link tag: <link rel="ai-catalog" href="..."> in your pages.
4. DNS. A service-binding record, and the least used of the four.

Optional: sign it

A registry re-serves your data, so transport security proves nothing once the bytes move. If you publish a did:web key document at /.well-known/did.json and sign the manifest, any copy of it can be verified as yours. This directory does exactly that with its own index, and it verifies signatures where publishers provide them.

What this registry checks

When we read your manifest, we check the schema, we check the types (this directory lists agents, so skill and tool entries are skipped), and for A2A agents we check whether the endpoint behind the card actually answers the protocol. The result is published on the listing. If you would rather not be crawled, robots.txt is honored, and removal on request is unconditional. The details are in the listing policy.

Back to all guides

This directory crawls ai-catalog.json files and signs its own with did:web. The machine-readable index is at /.well-known/ai-catalog.json.