Documentation Index
Fetch the complete documentation index at: https://agenticadvertisingorg-changeset-release-main.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
The AdCP registry catalog (/api/registry/agents, /api/registry/publishers) contains only AAO-attested, member-enrolled agents. To appear in the catalog, an AAO member must explicitly enroll the agent on their member profile.
How agents end up in the registry
There is one path: an AAO member adds the agent to their member profile via the dashboard or PUT /api/me/member-profile. End-to-end via the dashboard: under five minutes.
- Sign in or sign up. Go to agenticadvertising.org/auth/login. New here? Use Sign up to create your account, then accept your AAO organization invite (or start a membership if your org isn’t on AAO yet).
- Open the agents dashboard. Once signed in, go to agenticadvertising.org/dashboard/agents. The URL auto-resolves your org context.
- Click
+ Register agent in the top-right of the page. (On a brand-new org with no agents yet, the empty-state CTA reads Register your first agent and triggers the same flow.)
- Talk to Addie. The button drops you into chat with Addie pre-loaded with the prompt “Help me register my agent.” Addie will walk you through:
- Agent URL — e.g.
https://agent.yourcompany.com/mcp
- Display name (optional)
- Auth method — pick one: None · Static bearer · Static basic · OAuth client credentials. (Interactive OAuth user authorization is configured separately — register with None here, then click Authorize on the agent card to sign in.)
- Auth fields — only the ones your chosen method needs (bearer token, or
token_endpoint + client_id + client_secret for client credentials, etc.)
- Protocol — defaults to MCP; Addie asks only if your URL is ambiguous
- Done. Addie calls
save_agent and your agent lands in the registry catalog with visibility: "members_only" (visible to other paying AAO members — Professional, Builder, Member, or Leader; not publicly listed).
- Optional — go public. Back on
/dashboard/agents, change the agent’s visibility from Members only to Public. Public visibility requires a paid AAO tier (Professional, Builder, Member, or Leader) and a primary brand domain on your member profile so the agent can be added to your brand.json.
Type is resolved server-side. You will not be asked for the agent’s type — type (brand, sales, buying, measurement, creative, signals, etc.) is resolved from the agent’s capability snapshot. resolveAgentTypes() reads the most recent snapshot from the crawler; if no snapshot exists yet, the type field saved is whatever the client supplied, and the next crawler probe overwrites it. Either way, you can’t pin a wrong type permanently.
What this path attests: the member has signed AAO terms; the URL, name, and contact are explicitly declared; the type is probe-verified. Visibility can be public, members_only, or private — see Visibility below.
There is no auto-population from crawled adagents.json files. Agents listed in third-party adagents.json files populate the publisher-authorization graph used by the Operator lookup endpoint (GET /api/registry/operator?domain=X), /api/registry/lookup/domain, and hasValidAdagents, but they do not create catalog entries.
Programmatic registration (for CI, scripts, agents)
To register agents from CI, a deploy hook, or your own agent — without the dashboard or Addie — use the per-agent REST endpoints under /api/me/agents. They share the same visibility gate, server-side type resolution, and audit log as the dashboard path, so the members_only default, the tier_required check on public, and the type smuggle-protection all apply identically.
Authenticate with a WorkOS API key (Authorization: Bearer sk_…) or an OAuth user JWT. Mint an API key under agenticadvertising.org/dashboard/api-keys.
| Endpoint | Purpose |
|---|
GET /api/me/agents | List my registered agents |
POST /api/me/agents | Register an agent |
PATCH /api/me/agents/{url} | Update an agent |
DELETE /api/me/agents/{url} | Remove an agent |
The path parameter on PATCH and DELETE is the agent’s url, URL-encoded (e.g. https%3A%2F%2Fagent.example.com%2Fmcp). POST is idempotent on url: new entries return 201; re-posting the same url updates the existing entry and returns 200. Each successful write returns { agent, warnings? } — warnings lists any tier-driven visibility downgrades (e.g. an Explorer-tier caller asking for public is stored as members_only with a visibility_downgraded warning).
Prerequisites
- An AAO member profile must already exist for your organization. Create one via the dashboard or
POST /api/me/member-profile first; the agent endpoints return 404 until then.
- For
visibility: "public", your organization needs a paid AAO tier (Professional, Builder, Member, or Leader) and a primary_brand_domain set on the profile so the agent can be added to your brand.json. See Visibility below.
What this means if you are not an AAO member
You cannot self-register today. Your operator must be an AAO member to enroll your agent in the registry catalog.
Crawl-discovered listings (your agent referenced in someone’s adagents.json) populate the authorization graph used for property-authorization checks but do not create a catalog entry — /api/registry/agents is members-only.
Become a member to access the registration path.
Visibility
Member-enrolled agents have one of three visibility levels:
| Visibility | Who sees it |
|---|
public | Anyone — anonymous calls to /api/registry/agents and /api/registry/operator?domain=X |
members_only | AAO API-tier members on /api/registry/operator?domain=X |
private | Profile owner only |
The /api/registry/operator?domain=X endpoint is auth-aware: anonymous callers see only public agents; authenticated AAO API-tier callers see members_only agents; profile owners additionally see private agents.
Membership benefits
| Capability | Description |
|---|
| Catalog visibility | Your agent appears in /api/registry/agents |
| Self-attest type, name, contact | You declare and edit the agent’s identity |
| Edit your own listing | Profile owner controls all fields |
members_only and private visibility | Scope agent visibility beyond public |
| AAO Verified badge | Eligible after passing storyboards |
| Storyboard test access | Run protocol-conformance tests against your agent |
| Compliance reporting | Reports against your agent’s protocol use |
| Trust signal to consumers | ”Member of AAO; signed terms; attested” |
Become a member to access the registered path.
Verifying how your agent appears
Query the registry directly:
curl "https://agenticadvertising.org/api/registry/agents" \
| jq '.agents[] | select(.url == "https://your-agent-url.example/mcp")'
If your agent’s URL is in the response, it is enrolled and member identifies the AAO organization that owns the listing. If it is not in the response, no AAO member has enrolled it — ask your operator to enroll it via their member profile, or become a member and self-enroll.
To check whether your agent is referenced in a publisher’s adagents.json (for authorization purposes, separate from catalog enrollment), call /api/registry/lookup/domain/{domain} against the publisher’s domain.
- Registry overview — endpoint catalog, lookup flows, and brand resolution.
GET /api/registry/operator?domain=X — auth-aware per-entity view of agents and authorizations.
GET /api/registry/agents — full registry catalog.
POST /api/registry/recrawl — refresh a publisher’s adagents.json mapping in the authorization graph.