/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 orPUT /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 agentin 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)
- Agent type — declare what your agent does:
brand,rights,measurement,governance,creative,sales,buying, orsignals. Addie asks the owner rather than guessing from the name or URL. - 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.)
- Secure credential entry — enter tokens and client secrets on the dashboard after Addie saves the registration; keep them out of chat.
- Protocol — defaults to MCP; Addie asks only if your URL is ambiguous
- Agent URL — e.g.
- Save the registration. Addie calls
save_agent. On success, your agent lands in the registry catalog withvisibility: "members_only"(visible to other paying AgenticAdvertising.org members — Professional, Builder, Member, or Leader; not publicly listed). If credentials will be entered on the dashboard, Addie usesconfigure_auth_in_dashboard: truewithout credential fields and returns a link to the selected organization’s agents dashboard. Existing credentials are preserved. - Configure authentication, if required. On your agent’s card, click Connect agent (or Update auth). For machine-to-machine OAuth, choose OAuth client credentials (machine-to-machine), enter the token endpoint, client ID, and client secret, then click Save credentials. Bearer/basic credentials use the same form. Do not click Register agent again — that opens Addie’s registration chat. Saving a registration alone does not verify authentication or compliance.
- 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 yourbrand.json.
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.
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-profilefirst; the agent endpoints return404until then. - For
visibility: "public", your organization needs a paid AAO tier (Professional, Builder, Member, or Leader) and aprimary_brand_domainset on the profile so the agent can be added to yourbrand.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’sadagents.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:
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. Its agent_visibility_summary reports public and members-only registration counts to every caller, so an empty visibility-filtered agents array does not imply that the organization has no discoverable registrations. Private registrations are excluded so their existence remains visible only to the profile owner.
Membership benefits
Become a member to access the registered path.
Verifying how your agent appears
Query the registry directly:member identifies the organization that owns the listing. If it is absent, the lookup does not establish whether a registration exists outside your visibility scope. Sign in and check your organization’s agents dashboard before registering it again.
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.
Related
- 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/crawl-request- refresh a publisher’sadagents.jsonmapping in the authorization graph.