Register an agent on the caller’s organization member profile.
Idempotent on url: re-posting the same url updates the entry in place rather than creating a duplicate. New entries return 201; updates return 200.
True one-call storefront experience. A third-party app holding only a user’s OAuth token can POST /api/me/agents once and have the entire bootstrap chain materialize:
If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user’s email domain) and the response includes org_auto_created: true.
If the caller’s org has no member profile, the server auto-creates a private profile (display name = organization name, is_public: false) and the response includes profile_auto_created: true.
Both auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call POST /api/organizations and POST /api/me/member-profile explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow.
type is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent’s capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is unknown and the dashboard surfaces the conflict for the owner to resolve.
visibility: "public" requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request public will have the entry stored as members_only instead, and the response will include a visibility_downgraded warning describing the coercion.
Bearer token in the Authorization header. Two token types are accepted:
Organization API key (sk_...) issued via the dashboard. Org-scoped, long-lived, for server-to-server use.
User JWT obtained via the OAuth 2.1 authorization code flow with PKCE. User-scoped, short-lived. Discover the authorization server at /.well-known/oauth-authorization-server and the protected-resource metadata at /.well-known/oauth-protected-resource/api.
WorkOS organization id to act on. Defaults to the caller's primary organization. Use this from a multi-org session (or when shelling with a user JWT) to target a non-primary org. Verification goes through WorkOS membership lookup; non-members get 403.
Example:
"org_01HXZAB123"
Body
application/json
Request body for POST /api/me/agents. type is required — the owner declares it; the server never infers.
Agent type the caller declares. Required on register; smuggle-protection still cross-checks against the capability snapshot when one exists. The server never infers type — the owner declares what kind of agent this is.
Visibility tier on the registry catalog. private = profile owner only; members_only = AAO API-tier members on operator lookup; public = listed in the public catalog and reflected in the org's brand.json (requires a paid AAO tier — Professional, Builder, Member, or Leader).
Agent entry stored on a member profile. type is required on read because every write surface declares it and the operator endpoint always emits it; a stored value of unknown is the smuggle-protection outcome (snapshot contradicted the declaration without classifying it) and is the only path that surfaces an agent without a real type.
Set to true when this POST was the caller's first interaction with the registry and the server auto-created the organization (display name derived from the user's email domain for corporate emails, or <First Last>'s Workspace for free-email providers). Combined with profile_auto_created, this is the one-call storefront experience: a third-party app holding only an OAuth token gets the org, profile, and registered agent in a single request.
Set to true when this POST was the first agent registration on the caller's organization and the server auto-created a private member profile (display name = organization name, is_public: false). Absent on subsequent calls and on update-in-place. Surfaced so storefront-style integrations can show a "we set up your profile" hint without needing to detect the prior 404 → bootstrap → retry shape.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/schema.json","name":"AdCP - Ad Context Protocol","description":"AdCP (Ad Context Protocol) is the open standard for agentic advertising. It defines how AI agents buy media, generate creatives, activate audiences, and enforce governance across platforms. Current stable documentation index: https://docs.adcontextprotocol.org/llms-current.md.","colors":{"primary":"#047857","light":"#34D399","dark":"#065F46"},"logo":{"light":"https://mintcdn.com/agenticadvertisingorg/cnoy0Xiq2i_jSWzz/logo/sage.svg?fit=max\u0026auto=format\u0026n=cnoy0Xiq2i_jSWzz\u0026q=85\u0026s=f393829d8ccdabe856cf9c8362e66b96","dark":"https://mintcdn.com/agenticadvertisingorg/cnoy0Xiq2i_jSWzz/logo/sage.svg?fit=max\u0026auto=format\u0026n=cnoy0Xiq2i_jSWzz\u0026q=85\u0026s=f393829d8ccdabe856cf9c8362e66b96","href":"https://agenticadvertising.org"},"favicon":"https://mintcdn.com/agenticadvertisingorg/cnoy0Xiq2i_jSWzz/logo/sage.svg?fit=max\u0026auto=format\u0026n=cnoy0Xiq2i_jSWzz\u0026q=85\u0026s=f393829d8ccdabe856cf9c8362e66b96","api":{},"navbar":{"links":[{"href":"https://adcontextprotocol.org","label":"AdCP Home"},{"href":"https://agenticadvertising.org/members","label":"Members"},{"href":"https://agenticadvertising.org/perspectives","label":"Perspectives"},{"href":"https://agenticadvertising.org","label":"Join"}],"primary":{"type":"github","href":"https://github.com/adcontextprotocol/adcp"}},"footer":{"links":[{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://agenticadvertising.org/api/agreement?type=privacy_policy"},{"label":"Terms of Use","href":"https://agenticadvertising.org/api/agreement?type=terms_of_service"}]},{"header":"Transparency","items":[{"label":"AI Disclosure","href":"/docs/ai-disclosure"},{"label":"Governance Charter","href":"https://github.com/adcontextprotocol/adcp/blob/main/CHARTER.md"},{"label":"Working Group","href":"/docs/community/working-group"}]}]},"seo":{},"banner":{"content":"AdCP 3.3 beta is open: scheduled, human-gated, and offline media in the same buy as programmatic — [see what's new →](/3.3)","dismissible":true},"metadata":{"timestamp":false},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"agenticadvertisingorg","hasAudioNarration":false,"actualSubdomain":"agenticadvertisingorg","customDomains":["docs.adcontextprotocol.org"],"gitSource":{"type":"github","owner":"adcontextprotocol","repo":"adcp","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae24db7005dcf7dc8bd958a","collectionId":"3e226a17-653d-47bb-b0df-07ead2d76905","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae24db7005dcf7dc8bd958a"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{},"buildId":"6ae24db7005dcf7dc8bd958a","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Protocol","count":716},{"language":"default","tag":"Reference","count":639},{"language":"default","tag":"Registry API","count":405},{"language":"default","tag":"Building with AdCP","count":392},{"language":"default","tag":"Media Buy","count":199},{"language":"default","tag":"Creative","count":182},{"language":"default","tag":"Governance","count":169},{"language":"default","tag":"Concepts","count":136},{"language":"default","tag":"Build by layer","count":125},{"language":"default","tag":"Certification","count":116}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"apps/web/src/styles/app.css","content":"@import \"tailwindcss\";@import \"tw-animate-css\";@source \"../\";@source \"../../.ladle\";:root{--radius:0.25rem;--background:var(--color-white);--foreground:var(--color-neutral-950);--card:var(--color-white);--card-foreground:var(--color-neutral-950);--popover:var(--color-white);--popover-foreground:var(--color-neutral-950);--primary:var(--color-blue-600);--primary-foreground:var(--color-white);--secondary:oklch(from var(--color-slate-900) l c h / 6%);--secondary-foreground:var(--color-neutral-900);--muted:var(--color-slate-100);--muted-foreground:var(--color-slate-500);--body-foreground:var(--color-neutral-600);--accent:var(--color-slate-100);--accent-foreground:var(--color-slate-900);--destructive:var(--color-red-600);--destructive-foreground:var(--color-red-700);--destructive-on-color:var(--color-white);--success:var(--color-emerald-600);--success-foreground:var(--color-emerald-700);--warning:var(--color-yellow-400);--warning-foreground:var(--color-yellow-700);--info:var(--color-blue-600);--info-foreground:var(--color-blue-700);--border:var(--color-neutral-200);--input:var(--color-neutral-200);--ring:var(--color-neutral-400);--chart-1:var(--color-orange-500);--chart-2:var(--color-cyan-500);--chart-3:var(--color-blue-700);--chart-4:var(--color-yellow-400);--chart-5:var(--color-amber-500)}@media (prefers-color-scheme:dark){:root{--background:var(--color-slate-950);--foreground:var(--color-slate-50);--card:var(--color-slate-900);--card-foreground:var(--color-slate-50);--popover:var(--color-slate-900);--popover-foreground:var(--color-slate-50);--primary:var(--color-blue-600);--primary-foreground:var(--color-white);--secondary:oklch(1 0 0 / 12%);--secondary-foreground:var(--color-slate-50);--muted:var(--color-slate-800);--muted-foreground:var(--color-slate-400);--body-foreground:var(--color-slate-300);--accent:var(--color-slate-800);--accent-foreground:var(--color-slate-50);--destructive:var(--color-red-400);--destructive-foreground:var(--color-red-400);--destructive-on-color:var(--color-white);--success:var(--color-emerald-400);--success-foreground:var(--color-emerald-300);--warning:var(--color-yellow-400);--warning-foreground:var(--color-yellow-300);--info:var(--color-blue-400);--info-foreground:var(--color-blue-300);--border:oklch(1 0 0 / 10%);--input:oklch(1 0 0 / 15%);--ring:var(--color-slate-500)}}:root[data-theme=dark],:root[data-theme=light]{--primary:var(--color-blue-600);--primary-foreground:var(--color-white);--destructive-on-color:var(--color-white);--warning:var(--color-yellow-400)}:root[data-theme=light]{--background:var(--color-white);--foreground:var(--color-neutral-950);--card:var(--color-white);--card-foreground:var(--color-neutral-950);--popover:var(--color-white);--popover-foreground:var(--color-neutral-950);--secondary:oklch(from var(--color-slate-900) l c h / 6%);--secondary-foreground:var(--color-neutral-900);--muted:var(--color-slate-100);--muted-foreground:var(--color-slate-500);--body-foreground:var(--color-neutral-600);--accent:var(--color-slate-100);--accent-foreground:var(--color-slate-900);--destructive:var(--color-red-600);--destructive-foreground:var(--color-red-700);--success:var(--color-emerald-600);--success-foreground:var(--color-emerald-700);--warning-foreground:var(--color-yellow-700);--info:var(--color-blue-600);--info-foreground:var(--color-blue-700);--border:var(--color-neutral-200);--input:var(--color-neutral-200);--ring:var(--color-neutral-400)}:root[data-theme=dark]{--background:var(--color-slate-950);--foreground:var(--color-slate-50);--card:var(--color-slate-900);--card-foreground:var(--color-slate-50);--popover:var(--color-slate-900);--popover-foreground:var(--color-slate-50);--secondary:oklch(1 0 0 / 12%);--secondary-foreground:var(--color-slate-50);--muted:var(--color-slate-800);--muted-foreground:var(--color-slate-400);--body-foreground:var(--color-slate-300);--accent:var(--color-slate-800);--accent-foreground:var(--color-slate-50);--destructive:var(--color-red-400);--destructive-foreground:var(--color-red-400);--success:var(--color-emerald-400);--success-foreground:var(--color-emerald-300);--warning-foreground:var(--color-yellow-300);--info:var(--color-blue-400);--info-foreground:var(--color-blue-300);--border:oklch(1 0 0 / 10%);--input:oklch(1 0 0 / 15%);--ring:var(--color-slate-500)}@theme{--font-sans:'Inter Variable', 'Inter', -apple-system, BlinkMacSystemFont,\n 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;--font-mono:'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas,\n monospace;--color-blue-50:oklch(0.970 0.012 258);--color-blue-100:oklch(0.928 0.028 260);--color-blue-200:oklch(0.878 0.055 262);--color-blue-300:oklch(0.802 0.100 264);--color-blue-400:oklch(0.700 0.175 266);--color-blue-500:oklch(0.620 0.215 267);--color-blue-600:oklch(0.5358 0.2447 266.97);--color-blue-700:oklch(0.465 0.225 268);--color-blue-800:oklch(0.395 0.190 268);--color-blue-900:oklch(0.330 0.145 268);--color-blue-950:oklch(0.270 0.120 268);--color-blue-1000:oklch(0.2102 0.0975 268.06);--color-slate-1000:oklch(0.069 0.038 265);--color-gray-1000:oklch(0.070 0.026 261);--color-neutral-1000:oklch(0.080 0 0);--color-cyan-1000:oklch(0.242 0.045 230);--color-green-1000:oklch(0.206 0.052 153);--color-emerald-1000:oklch(0.205 0.030 173);--color-red-1000:oklch(0.198 0.074 26);--color-orange-1000:oklch(0.206 0.063 36);--color-amber-1000:oklch(0.219 0.048 46);--color-yellow-1000:oklch(0.226 0.053 54)}@theme inline{--color-background:var(--background);--color-foreground:var(--foreground);--color-card:var(--card);--color-card-foreground:var(--card-foreground);--color-popover:var(--popover);--color-popover-foreground:var(--popover-foreground);--color-primary:var(--primary);--color-primary-foreground:var(--primary-foreground);--color-secondary:var(--secondary);--color-secondary-foreground:var(--secondary-foreground);--color-muted:var(--muted);--color-muted-foreground:var(--muted-foreground);--color-body-foreground:var(--body-foreground);--color-accent:var(--accent);--color-accent-foreground:var(--accent-foreground);--color-destructive:var(--destructive);--color-destructive-foreground:var(--destructive-foreground);--color-destructive-on-color:var(--destructive-on-color);--color-success:var(--success);--color-success-foreground:var(--success-foreground);--color-warning:var(--warning);--color-warning-foreground:var(--warning-foreground);--color-info:var(--info);--color-info-foreground:var(--info-foreground);--color-border:var(--border);--color-input:var(--input);--color-ring:var(--ring);--color-chart-1:var(--chart-1);--color-chart-2:var(--chart-2);--color-chart-3:var(--chart-3);--color-chart-4:var(--chart-4);--color-chart-5:var(--chart-5);--radius-sm:max(0px, calc(var(--radius) - 4px));--radius-md:var(--radius);--radius-lg:calc(var(--radius) + 4px);--radius-xl:calc(var(--radius) + 8px)}@layer base{*,::after,::backdrop,::before,::file-selector-button{border-color:var(--color-border, currentColor)}body{background:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans)}[data-sonner-toast][data-styled=true] [data-description]{color:var(--body-foreground)}}"}],"page":{"pagePath":"dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent","slug":"/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent","pageMetadata":{"title":"Register an agent","description":"Register an agent on the caller's organization member profile.\n\nIdempotent on `url`: re-posting the same `url` updates the entry in place rather than creating a duplicate. New entries return `201`; updates return `200`.\n\n**True one-call storefront experience.** A third-party app holding only a user's OAuth token can `POST /api/me/agents` once and have the entire bootstrap chain materialize:\n\n- If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user's email domain) and the response includes `org_auto_created: true`.\n\n- If the caller's org has no member profile, the server auto-creates a private profile (display name = organization name, `is_public: false`) and the response includes `profile_auto_created: true`.\n\nBoth auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call `POST /api/organizations` and `POST /api/me/member-profile` explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow.\n\n`type` is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent's capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is `unknown` and the dashboard surfaces the conflict for the owner to resolve.\n\n`visibility: \"public\"` requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request `public` will have the entry stored as `members_only` instead, and the response will include a `visibility_downgraded` warning describing the coercion.","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/me/agents","href":"/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Register an agent on the caller’s organization member profile.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Idempotent on \", _jsx(_components.code, {\n children: \"url\"\n }), \": re-posting the same \", _jsx(_components.code, {\n children: \"url\"\n }), \" updates the entry in place rather than creating a duplicate. New entries return \", _jsx(_components.code, {\n children: \"201\"\n }), \"; updates return \", _jsx(_components.code, {\n children: \"200\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"True one-call storefront experience.\"\n }), \" A third-party app holding only a user’s OAuth token can \", _jsx(_components.code, {\n children: \"POST /api/me/agents\"\n }), \" once and have the entire bootstrap chain materialize:\"]\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user’s email domain) and the response includes \", _jsx(_components.code, {\n children: \"org_auto_created: true\"\n }), \".\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"\\n\", _jsxs(_components.p, {\n children: [\"If the caller’s org has no member profile, the server auto-creates a private profile (display name = organization name, \", _jsx(_components.code, {\n children: \"is_public: false\"\n }), \") and the response includes \", _jsx(_components.code, {\n children: \"profile_auto_created: true\"\n }), \".\"]\n }), \"\\n\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Both auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call \", _jsx(_components.code, {\n children: \"POST /api/organizations\"\n }), \" and \", _jsx(_components.code, {\n children: \"POST /api/me/member-profile\"\n }), \" explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"type\"\n }), \" is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent’s capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is \", _jsx(_components.code, {\n children: \"unknown\"\n }), \" and the dashboard surfaces the conflict for the owner to resolve.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"visibility: \\\"public\\\"\"\n }), \" requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request \", _jsx(_components.code, {\n children: \"public\"\n }), \" will have the entry stored as \", _jsx(_components.code, {\n children: \"members_only\"\n }), \" instead, and the response will include a \", _jsx(_components.code, {\n children: \"visibility_downgraded\"\n }), \" warning describing the coercion.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Register an agent","description":"Register an agent on the caller's organization member profile.\n\nIdempotent on `url`: re-posting the same `url` updates the entry in place rather than creating a duplicate. New entries return `201`; updates return `200`.\n\n**True one-call storefront experience.** A third-party app holding only a user's OAuth token can `POST /api/me/agents` once and have the entire bootstrap chain materialize:\n\n- If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user's email domain) and the response includes `org_auto_created: true`.\n\n- If the caller's org has no member profile, the server auto-creates a private profile (display name = organization name, `is_public: false`) and the response includes `profile_auto_created: true`.\n\nBoth auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call `POST /api/organizations` and `POST /api/me/member-profile` explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow.\n\n`type` is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent's capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is `unknown` and the dashboard surfaces the conflict for the owner to resolve.\n\n`visibility: \"public\"` requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request `public` will have the entry stored as `members_only` instead, and the response will include a `visibility_downgraded` warning describing the coercion.","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/me/agents","href":"/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/agenticadvertisingorg/1a1b50531e8add0f/dist/compliance/storyboard-runner-options.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.0.23/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.14/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.0.24/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.0/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.2/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.3/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.17/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.18/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.0.26/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.19/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.15/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.16/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.4/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.0.25/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.1/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.5/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.6/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.7/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.8/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.9/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/docs/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/3d9934cdcf6b6ce6/workers/artifact-cdn/src/index.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.10/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.20/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-beta.11/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-rc.0/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-rc.1/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.21/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-rc.2/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-rc.6/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.24/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-rc.3/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-rc.4/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.0-rc.7/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.1/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.2/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.3/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.1.27/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.0.27/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.0.28/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.3.0-beta.0/slack-invite-recovery.js","/_mintlify/custom/agenticadvertisingorg/bd3bc019124ed96c/dist/docs/3.2.6/slack-invite-recovery.js"],"openApiReferenceData":{"operation":{"operationId":"registerMemberAgent","summary":"Register an agent","description":"Register an agent on the caller's organization member profile.\n\nIdempotent on `url`: re-posting the same `url` updates the entry in place rather than creating a duplicate. New entries return `201`; updates return `200`.\n\n**True one-call storefront experience.** A third-party app holding only a user's OAuth token can `POST /api/me/agents` once and have the entire bootstrap chain materialize:\n\n- If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user's email domain) and the response includes `org_auto_created: true`.\n\n- If the caller's org has no member profile, the server auto-creates a private profile (display name = organization name, `is_public: false`) and the response includes `profile_auto_created: true`.\n\nBoth auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call `POST /api/organizations` and `POST /api/me/member-profile` explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow.\n\n`type` is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent's capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is `unknown` and the dashboard surfaces the conflict for the owner to resolve.\n\n`visibility: \"public\"` requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request `public` will have the entry stored as `members_only` instead, and the response will include a `visibility_downgraded` warning describing the coercion.","tags":["Member Agents"],"security":["cb3eecf1-2286-4974-8506-80dd048c1a31","d2bb575a-d255-4204-9428-5558b7278e69"],"parameters":["2028c02a-e365-4be9-b859-7f8e7b762f8d"],"requestBody":"f8280e7e-2298-4b34-b0c5-7af21ae07fc0","responses":{"200":"dedd99dd-cbcd-453f-9cfb-b3ce987456b8","201":"4387c171-ef58-42fc-bfa2-c0db86d437cf","400":"a7bc76e6-22c9-4590-9e43-086e23d44849","401":"a0190d77-1341-43e2-88e1-946a80e62fd8","403":"1c5886d1-3eb6-489c-8093-4f1a9592d539","404":"80c8d0d3-049f-4527-872d-85f7e201f9ae","429":"450795b1-717e-4f7a-9fff-66fd68d175e7"},"method":"post","type":"path","servers":["68bfd4a4-4929-4788-a0ad-cea60ae41cb7"],"path":"/api/me/agents","baseUrlOptions":["https://agenticadvertising.org"],"title":"Register an agent","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2028c02a-e365-4be9-b859-7f8e7b762f8d":{"schema":{"type":"string","description":"WorkOS organization id to act on. Defaults to the caller's primary organization. Use this from a multi-org session (or when shelling with a user JWT) to target a non-primary org. Verification goes through WorkOS membership lookup; non-members get `403`.","example":"org_01HXZAB123","isRequired":false,"uniqueKey":"","typeLabel":"string"},"required":false,"description":"WorkOS organization id to act on. Defaults to the caller's primary organization. Use this from a multi-org session (or when shelling with a user JWT) to target a non-primary org. Verification goes through WorkOS membership lookup; non-members get `403`.","name":"org","in":"query"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","example":"https://agent.example.com/mcp","isRequired":true,"uniqueKey":"url","typeLabel":"string\u003curi>"},"type":{"type":"string","enum":["brand","rights","measurement","governance","creative","sales","buying","signals"],"description":"Agent type the caller declares. Required on register; smuggle-protection still cross-checks against the capability snapshot when one exists. The server never infers `type` — the owner declares what kind of agent this is.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","uniqueKey":"name","typeLabel":"string"},"visibility":{"type":"string","enum":["private","members_only","public"],"description":"Visibility tier on the registry catalog. `private` = profile owner only; `members_only` = AAO API-tier members on operator lookup; `public` = listed in the public catalog and reflected in the org's `brand.json` (requires a paid AAO tier — Professional, Builder, Member, or Leader).","uniqueKey":"visibility","typeLabel":"enum\u003cstring>"},"health_check_url":{"type":"string","format":"uri","uniqueKey":"health_check_url","typeLabel":"string\u003curi>"}},"required":["url","type"],"description":"Request body for `POST /api/me/agents`. `type` is required — the owner declares it; the server never infers.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"url":"https://agent.example.com/mcp","name":"\u003cstring>","health_check_url":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"dedd99dd-cbcd-453f-9cfb-b3ce987456b8":{"description":"Agent already registered at this `url`; entry updated in place.","content":{"application/json":{"schema":{"type":"object","properties":{"agent":{"type":"object","properties":{"url":{"type":"string","format":"uri","example":"https://agent.example.com/mcp","isRequired":true,"uniqueKey":"agent.url","typeLabel":"string\u003curi>"},"visibility":{"type":"string","enum":["private","members_only","public"],"description":"Visibility tier on the registry catalog. `private` = profile owner only; `members_only` = AAO API-tier members on operator lookup; `public` = listed in the public catalog and reflected in the org's `brand.json` (requires a paid AAO tier — Professional, Builder, Member, or Leader).","isRequired":true,"uniqueKey":"agent.visibility","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["brand","rights","measurement","governance","creative","sales","buying","signals","unknown"],"description":"Agent type as stored on the registry. Server-side smuggle protection compares the caller's declaration against the capability snapshot (when one exists) and may stamp `unknown` if the snapshot contradicts the declaration without classifying it. `unknown` is reserved for that server-side outcome; clients cannot submit it.","isRequired":true,"uniqueKey":"agent.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","uniqueKey":"agent.name","typeLabel":"string"},"health_check_url":{"type":"string","format":"uri","description":"Optional fallback liveness URL used by the health probe when the protocol handshake fails.","uniqueKey":"agent.health_check_url","typeLabel":"string\u003curi>"}},"required":["url","visibility","type"],"description":"Agent entry stored on a member profile. `type` is required on read because every write surface declares it and the operator endpoint always emits it; a stored value of `unknown` is the smuggle-protection outcome (snapshot contradicted the declaration without classifying it) and is the only path that surfaces an agent without a real type.","isRequired":true,"uniqueKey":"agent","typeLabel":"object"},"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","enum":["visibility_downgraded"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"agent_url":{"type":"string","isRequired":true,"uniqueKey":"warnings.items.[INDEX].agent_url","typeLabel":"string"},"requested":{"type":"string","enum":["public"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].requested","typeLabel":"enum\u003cstring>"},"applied":{"type":"string","enum":["members_only"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].applied","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","enum":["tier_required"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].reason","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"warnings.items.[INDEX].message","typeLabel":"string"}},"required":["code","agent_url","requested","applied","reason","message"],"description":"Emitted when the tier gate downgrades a requested visibility.","uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"warnings","typeLabel":"object[]"},"org_auto_created":{"type":"boolean","description":"Set to `true` when this `POST` was the caller's first interaction with the registry and the server auto-created the organization (display name derived from the user's email domain for corporate emails, or `\u003cFirst Last>'s Workspace` for free-email providers). Combined with `profile_auto_created`, this is the one-call storefront experience: a third-party app holding only an OAuth token gets the org, profile, and registered agent in a single request.","uniqueKey":"org_auto_created","typeLabel":"boolean"},"profile_auto_created":{"type":"boolean","description":"Set to `true` when this `POST` was the first agent registration on the caller's organization and the server auto-created a private member profile (display name = organization name, `is_public: false`). Absent on subsequent calls and on update-in-place. Surfaced so storefront-style integrations can show a \"we set up your profile\" hint without needing to detect the prior 404 → bootstrap → retry shape.","uniqueKey":"profile_auto_created","typeLabel":"boolean"}},"required":["agent"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agent":{"url":"https://agent.example.com/mcp","visibility":"private","type":"brand","name":"\u003cstring>","health_check_url":"\u003cstring>"},"warnings":[{"code":"visibility_downgraded","agent_url":"\u003cstring>","requested":"public","applied":"members_only","reason":"tier_required","message":"\u003cstring>"}],"org_auto_created":true,"profile_auto_created":true}}},"exampleType":"generated"}},"exampleType":"generated"},"4387c171-ef58-42fc-bfa2-c0db86d437cf":{"description":"Agent registered. When this is the first agent on a freshly created organization, the response includes `profile_auto_created: true`.","content":{"application/json":{"schema":{"type":"object","properties":{"agent":{"type":"object","properties":{"url":{"type":"string","format":"uri","example":"https://agent.example.com/mcp","isRequired":true,"uniqueKey":"agent.url","typeLabel":"string\u003curi>"},"visibility":{"type":"string","enum":["private","members_only","public"],"description":"Visibility tier on the registry catalog. `private` = profile owner only; `members_only` = AAO API-tier members on operator lookup; `public` = listed in the public catalog and reflected in the org's `brand.json` (requires a paid AAO tier — Professional, Builder, Member, or Leader).","isRequired":true,"uniqueKey":"agent.visibility","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["brand","rights","measurement","governance","creative","sales","buying","signals","unknown"],"description":"Agent type as stored on the registry. Server-side smuggle protection compares the caller's declaration against the capability snapshot (when one exists) and may stamp `unknown` if the snapshot contradicts the declaration without classifying it. `unknown` is reserved for that server-side outcome; clients cannot submit it.","isRequired":true,"uniqueKey":"agent.type","typeLabel":"enum\u003cstring>"},"name":{"type":"string","uniqueKey":"agent.name","typeLabel":"string"},"health_check_url":{"type":"string","format":"uri","description":"Optional fallback liveness URL used by the health probe when the protocol handshake fails.","uniqueKey":"agent.health_check_url","typeLabel":"string\u003curi>"}},"required":["url","visibility","type"],"description":"Agent entry stored on a member profile. `type` is required on read because every write surface declares it and the operator endpoint always emits it; a stored value of `unknown` is the smuggle-protection outcome (snapshot contradicted the declaration without classifying it) and is the only path that surfaces an agent without a real type.","isRequired":true,"uniqueKey":"agent","typeLabel":"object"},"warnings":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","enum":["visibility_downgraded"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].code","typeLabel":"enum\u003cstring>"},"agent_url":{"type":"string","isRequired":true,"uniqueKey":"warnings.items.[INDEX].agent_url","typeLabel":"string"},"requested":{"type":"string","enum":["public"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].requested","typeLabel":"enum\u003cstring>"},"applied":{"type":"string","enum":["members_only"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].applied","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","enum":["tier_required"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].reason","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"warnings.items.[INDEX].message","typeLabel":"string"}},"required":["code","agent_url","requested","applied","reason","message"],"description":"Emitted when the tier gate downgrades a requested visibility.","uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"uniqueKey":"warnings","typeLabel":"object[]"},"org_auto_created":{"type":"boolean","description":"Set to `true` when this `POST` was the caller's first interaction with the registry and the server auto-created the organization (display name derived from the user's email domain for corporate emails, or `\u003cFirst Last>'s Workspace` for free-email providers). Combined with `profile_auto_created`, this is the one-call storefront experience: a third-party app holding only an OAuth token gets the org, profile, and registered agent in a single request.","uniqueKey":"org_auto_created","typeLabel":"boolean"},"profile_auto_created":{"type":"boolean","description":"Set to `true` when this `POST` was the first agent registration on the caller's organization and the server auto-created a private member profile (display name = organization name, `is_public: false`). Absent on subsequent calls and on update-in-place. Surfaced so storefront-style integrations can show a \"we set up your profile\" hint without needing to detect the prior 404 → bootstrap → retry shape.","uniqueKey":"profile_auto_created","typeLabel":"boolean"}},"required":["agent"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agent":{"url":"https://agent.example.com/mcp","visibility":"private","type":"brand","name":"\u003cstring>","health_check_url":"\u003cstring>"},"warnings":[{"code":"visibility_downgraded","agent_url":"\u003cstring>","requested":"public","applied":"members_only","reason":"tier_required","message":"\u003cstring>"}],"org_auto_created":true,"profile_auto_created":true}}},"exampleType":"generated"}},"exampleType":"generated"},"a7bc76e6-22c9-4590-9e43-086e23d44849":{"description":"Missing or invalid `url`, missing/invalid `type`, or the caller has memberships in other orgs but no primary org set — pass `?org=\u003cid>` to target one explicitly. (Fresh users with no memberships at all hit the org auto-bootstrap path and do not see this error.)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"a0190d77-1341-43e2-88e1-946a80e62fd8":{"description":"Authentication required","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"1c5886d1-3eb6-489c-8093-4f1a9592d539":{"description":"`?org=` was supplied but the caller is not a member of that organization.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"80c8d0d3-049f-4527-872d-85f7e201f9ae":{"description":"Auto-bootstrap could not run (e.g. the organization has no name yet). Call `POST /api/me/member-profile` to create a profile explicitly, then retry.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"450795b1-717e-4f7a-9fff-66fd68d175e7":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"cb3eecf1-2286-4974-8506-80dd048c1a31":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Bearer token in the `Authorization` header. Two token types are accepted:\n\n- **Organization API key** (`sk_...`) issued via the dashboard. Org-scoped, long-lived, for server-to-server use.\n- **User JWT** obtained via the OAuth 2.1 authorization code flow with PKCE. User-scoped, short-lived. Discover the authorization server at `/.well-known/oauth-authorization-server` and the protected-resource metadata at `/.well-known/oauth-protected-resource/api`.","scopes":[],"schemeName":"bearerAuth"}},"d2bb575a-d255-4204-9428-5558b7278e69":{"oauth2":{"type":"oauth2","description":"OAuth 2.1 authorization code flow with PKCE. Users authenticate via AuthKit and clients receive a Bearer JWT that authorizes both the MCP endpoint and this REST API. Dynamic client registration is supported at `/register`.","flows":{"authorizationCode":{"authorizationUrl":"https://agenticadvertising.org/authorize","tokenUrl":"https://agenticadvertising.org/token","refreshUrl":"https://agenticadvertising.org/token","scopes":{"openid":"User identifier","profile":"User profile information","email":"User email address"}}},"scopes":[],"schemeName":"oauth2"}}},"servers":{"68bfd4a4-4929-4788-a0ad-cea60ae41cb7":{"url":"https://agenticadvertising.org","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Bearer token in the `Authorization` header. Two token types are accepted:\n\n- **Organization API key** (`sk_...`) issued via the dashboard. Org-scoped, long-lived, for server-to-server use.\n- **User JWT** obtained via the OAuth 2.1 authorization code flow with PKCE. User-scoped, short-lived. Discover the authorization server at `/.well-known/oauth-authorization-server` and the protected-resource metadata at `/.well-known/oauth-protected-resource/api`.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer token in the `Authorization` header. Two token types are accepted:\n\n- **Organization API key** (`sk_...`) issued via the dashboard. Org-scoped, long-lived, for server-to-server use.\n- **User JWT** obtained via the OAuth 2.1 authorization code flow with PKCE. User-scoped, short-lived. Discover the authorization server at `/.well-known/oauth-authorization-server` and the protected-resource metadata at `/.well-known/oauth-protected-resource/api`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"oauth2","description":"OAuth 2.1 authorization code flow with PKCE. Users authenticate via AuthKit and clients receive a Bearer JWT that authorizes both the MCP endpoint and this REST API. Dynamic client registration is supported at `/register`.","flows":{"authorizationCode":{"authorizationUrl":"https://agenticadvertising.org/authorize","tokenUrl":"https://agenticadvertising.org/token","refreshUrl":"https://agenticadvertising.org/token","scopes":{"openid":"User identifier","profile":"User profile information","email":"User email address"}}},"scopes":[],"schemeName":"oauth2"},"schema":{"title":"OAuth2 Auth","type":"string","isRequired":true,"description":"OAuth 2.1 authorization code flow with PKCE. Users authenticate via AuthKit and clients receive a Bearer JWT that authorizes both the MCP endpoint and this REST API. Dynamic client registration is supported at `/register`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"oauth2","name":"Authorization"}],"title":"oauth2"}]},"originalFileLocation":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml"},"subdomain":"agenticadvertisingorg","siteName":"AdCP - Ad Context Protocol","title":"Register an agent - AdCP - Ad Context Protocol","navMaps":{"firstHrefInVersion":{"3.2":{"href":"/dist/docs/3.2.6/registry/api-reference/member-agents/register-an-agent","matchLevel":1},"3.3-beta":{"href":"/dist/docs/3.3.0-beta.0/registry/api-reference/member-agents/register-an-agent","matchLevel":1},"3.1":{"href":"/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent","matchLevel":0},"3.0":{"href":"/dist/docs/3.0.28/registry/index","matchLevel":2},"2.5 (archived)":{"href":"/dist/docs/2.5.3/reference/media-buy-quick-reference","matchLevel":2}},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T19:43:42.713Z","originalFileLocation":"dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Register an agent on the caller\u0026#x27;s organization member profile. Idempotent on url: re-posting the same url updates the entry in place rather than creating a duplicate. New entries return 201; updates return 200. True one-call storefront experience. A third-party app holding only a user\u0026#x27;s OAuth token can POST /api/me/agents once and have the entire bootstrap chain materialize: - If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user\u0026#x27;s email domain) and the response includes org_auto_created: true. - If the caller\u0026#x27;s org has no member profile, the server auto-creates a private profile (display name = organization name, is_public: false) and the response includes profile_auto_created: true. Both auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call POST /api/organizations and POST /api/me/member-profile explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow. type is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent\u0026#x27;s capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is unknown and the dashboard surfaces the conflict for the owner to resolve. visibility: \u0026quot;public\u0026quot; requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request public will have the entry stored as members_only instead, and the response will include a visibility_downgraded warning describing the coercion.\">\u003cmeta data-mint-head name=\"application-name\" content=\"AdCP - Ad Context Protocol\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Register an agent - AdCP - Ad Context Protocol\">\u003cmeta data-mint-head property=\"og:description\" content=\"Register an agent on the caller\u0026#x27;s organization member profile. Idempotent on url: re-posting the same url updates the entry in place rather than creating a duplicate. New entries return 201; updates return 200. True one-call storefront experience. A third-party app holding only a user\u0026#x27;s OAuth token can POST /api/me/agents once and have the entire bootstrap chain materialize: - If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user\u0026#x27;s email domain) and the response includes org_auto_created: true. - If the caller\u0026#x27;s org has no member profile, the server auto-creates a private profile (display name = organization name, is_public: false) and the response includes profile_auto_created: true. Both auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call POST /api/organizations and POST /api/me/member-profile explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow. type is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent\u0026#x27;s capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is unknown and the dashboard surfaces the conflict for the owner to resolve. visibility: \u0026quot;public\u0026quot; requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request public will have the entry stored as members_only instead, and the response will include a visibility_downgraded warning describing the coercion.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"AdCP - Ad Context Protocol\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://agenticadvertisingorg.mintlify.app/_mintlify/api/og/v2?division=Member+Agents\u0026amp;title=Register+an+agent\u0026amp;description=Register+an+agent+on+the+caller%27s+organization+member+profile.%0A%0AIdempotent+on+%60url%60%3A+re-posting+the+same+%60url%60+updates+the+entry+in+place+rather+than+creating+a\u0026amp;theme=be64ae0b59577dd8c09f9173\u0026amp;signature=92f752c0347f6a62585f3f356c2d6fd8f7bd2de1e8cc1cd818d7b0983a005e25\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Register an agent - AdCP - Ad Context Protocol\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Register an agent on the caller\u0026#x27;s organization member profile. Idempotent on url: re-posting the same url updates the entry in place rather than creating a duplicate. New entries return 201; updates return 200. True one-call storefront experience. A third-party app holding only a user\u0026#x27;s OAuth token can POST /api/me/agents once and have the entire bootstrap chain materialize: - If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user\u0026#x27;s email domain) and the response includes org_auto_created: true. - If the caller\u0026#x27;s org has no member profile, the server auto-creates a private profile (display name = organization name, is_public: false) and the response includes profile_auto_created: true. Both auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call POST /api/organizations and POST /api/me/member-profile explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow. type is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent\u0026#x27;s capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is unknown and the dashboard surfaces the conflict for the owner to resolve. visibility: \u0026quot;public\u0026quot; requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request public will have the entry stored as members_only instead, and the response will include a visibility_downgraded warning describing the coercion.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://agenticadvertisingorg.mintlify.app/_mintlify/api/og/v2?division=Member+Agents\u0026amp;title=Register+an+agent\u0026amp;description=Register+an+agent+on+the+caller%27s+organization+member+profile.%0A%0AIdempotent+on+%60url%60%3A+re-posting+the+same+%60url%60+updates+the+entry+in+place+rather+than+creating+a\u0026amp;theme=be64ae0b59577dd8c09f9173\u0026amp;signature=92f752c0347f6a62585f3f356c2d6fd8f7bd2de1e8cc1cd818d7b0983a005e25\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/agenticadvertisingorg/JomSeQ4JKmdJww4Y/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"AdCP - Ad Context Protocol\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#047857\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.adcontextprotocol.org/#organization\",\"name\":\"AdCP - Ad Context Protocol\",\"url\":\"https://docs.adcontextprotocol.org\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/agenticadvertisingorg/cnoy0Xiq2i_jSWzz/logo/sage.svg?fit=max\u0026auto=format\u0026n=cnoy0Xiq2i_jSWzz\u0026q=85\u0026s=f393829d8ccdabe856cf9c8362e66b96\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.adcontextprotocol.org#website\",\"name\":\"AdCP - Ad Context Protocol\",\"url\":\"https://docs.adcontextprotocol.org\",\"publisher\":{\"@id\":\"https://docs.adcontextprotocol.org/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent#webpage\",\"url\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent\",\"name\":\"Register an agent\",\"description\":\"Register an agent on the caller's organization member profile. Idempotent on url: re-posting the same url updates the entry in place rather than creating a duplicate. New entries return 201; updates return 200. True one-call storefront experience. A third-party app holding only a user's OAuth token can POST /api/me/agents once and have the entire bootstrap chain materialize: - If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user's email domain) and the response includes org_auto_created: true. - If the caller's org has no member profile, the server auto-creates a private profile (display name = organization name, is_public: false) and the response includes profile_auto_created: true. Both auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call POST /api/organizations and POST /api/me/member-profile explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow. type is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent's capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is unknown and the dashboard surfaces the conflict for the owner to resolve. visibility: \\\"public\\\" requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request public will have the entry stored as members_only instead, and the response will include a visibility_downgraded warning describing the coercion.\",\"dateModified\":\"2026-10-28T19:43:42.713Z\",\"isPartOf\":{\"@id\":\"https://docs.adcontextprotocol.org#website\"},\"breadcrumb\":{\"@id\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reference\",\"item\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Registry API\",\"item\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Member Agents\",\"item\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/list-my-registered-agents\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Register an agent\",\"item\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent#apireference\",\"headline\":\"Register an agent\",\"name\":\"Register an agent\",\"description\":\"Register an agent on the caller's organization member profile. Idempotent on url: re-posting the same url updates the entry in place rather than creating a duplicate. New entries return 201; updates return 200. True one-call storefront experience. A third-party app holding only a user's OAuth token can POST /api/me/agents once and have the entire bootstrap chain materialize: - If the caller has zero org memberships, the server auto-creates an organization (corporate or personal workspace based on the user's email domain) and the response includes org_auto_created: true. - If the caller's org has no member profile, the server auto-creates a private profile (display name = organization name, is_public: false) and the response includes profile_auto_created: true. Both auto-bootstraps are best-effort fallbacks. To customize org name / company_type / revenue_tier, or to control profile slug / brand identity / tagline, call POST /api/organizations and POST /api/me/member-profile explicitly before registering the agent. Tier transitions never happen via this path — go through the billing flow. type is required and declared by the caller — the server does not infer it. Server-side smuggle protection still cross-checks the declared type against the agent's capability snapshot when one exists; if the snapshot contradicts the declaration without classifying it, the stored value is unknown and the dashboard surfaces the conflict for the owner to resolve. visibility: \\\"public\\\" requires a paid AAO tier (Professional, Builder, Member, or Leader) and a verified primary domain on the organization (set via the Linked Domains UI). Non-API-tier callers (Explorer or no tier) who request public will have the entry stored as members_only instead, and the response will include a visibility_downgraded warning describing the coercion.\",\"url\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent\",\"mainEntityOfPage\":{\"@id\":\"https://docs.adcontextprotocol.org/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent#webpage\"},\"dateModified\":\"2026-10-28T19:43:42.713Z\",\"publisher\":{\"@id\":\"https://docs.adcontextprotocol.org/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.adcontextprotocol.org#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"AdCP - Ad Context Protocol\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"AdCP - Ad Context Protocol","nav":{"global":null,"versions":[{"version":"3.2","default":true,"tag":"Latest","pages":[{"title":"3.2","href":"/dist/docs/3.2.6/registry/api-reference/member-agents/register-an-agent"}]},{"version":"3.3-beta","tag":"Latest","pages":[{"title":"3.3-beta","href":"/dist/docs/3.3.0-beta.0/registry/api-reference/member-agents/register-an-agent"}]},{"version":"3.1","groups":[{"group":"Getting Started","pages":[{"title":"Introduction to AdCP","sidebarTitle":"Introduction","href":"/dist/docs/3.1.30/intro"},{"title":"Quickstart","href":"/dist/docs/3.1.30/quickstart"}]},{"group":"Building with AdCP","expanded":false,"pages":[{"title":"Building with AdCP","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/building/index"},{"title":"Schemas \u0026 SDKs","sidebarTitle":"Schemas \u0026 SDKs","href":"/dist/docs/3.1.30/building/schemas-and-sdks"},{"group":"AdCP 3.x","expanded":false,"pages":[{"title":"AdCP 3.0","href":"/dist/docs/3.1.30/reference/whats-new-in-v3"},{"title":"What's New in AdCP 3.1","href":"/dist/docs/3.1.30/reference/whats-new-in-3-1"},{"title":"v3 readiness checklist","sidebarTitle":"Readiness checklist","href":"/dist/docs/3.1.30/reference/migration/v3-readiness"},{"title":"Migrating from v2 to v3","sidebarTitle":"Migration guide","href":"/dist/docs/3.1.30/reference/migration/index"},{"title":"Migrating from 3.0 to 3.1","sidebarTitle":"3.0 to 3.1","href":"/dist/docs/3.1.30/reference/migration/3-0-to-3-1"},{"title":"Prerelease upgrade notes","sidebarTitle":"Prerelease upgrades","href":"/dist/docs/3.1.30/reference/migration/prerelease-upgrades"},{"title":"Migrating channels","href":"/dist/docs/3.1.30/reference/migration/channels"},{"title":"Migrating pricing","href":"/dist/docs/3.1.30/reference/migration/pricing"},{"title":"Migrating geo targeting","href":"/dist/docs/3.1.30/reference/migration/geo-targeting"},{"title":"Migrating creatives","href":"/dist/docs/3.1.30/reference/migration/creatives"},{"title":"Migrating to creative transformers (3.1)","href":"/dist/docs/3.1.30/reference/migration/creative-transformers"},{"title":"Migrating catalogs","href":"/dist/docs/3.1.30/reference/migration/catalogs"},{"title":"Migrating optimization goals","href":"/dist/docs/3.1.30/reference/migration/optimization-goals"},{"title":"Migrating brand identity","href":"/dist/docs/3.1.30/reference/migration/brand-identity"},{"title":"Migrating signals","href":"/dist/docs/3.1.30/reference/migration/signals"},{"title":"Migrating audiences","href":"/dist/docs/3.1.30/reference/migration/audiences"},{"title":"Migrating attribution windows","href":"/dist/docs/3.1.30/reference/migration/attribution"},{"title":"Migrating to `media_buy_status` (3.1)","href":"/dist/docs/3.1.30/reference/migration/media-buy-status"}]},{"title":"Protocol architecture","sidebarTitle":"Architecture","href":"/dist/docs/3.1.30/protocol/architecture"},{"title":"How AdCP is designed","sidebarTitle":"Design principles","href":"/dist/docs/3.1.30/protocol/design-principles"},{"title":"Capabilities explorer","sidebarTitle":"Capabilities explorer","href":"/dist/docs/3.1.30/protocol/capabilities-explorer"},{"title":"Specification Guidelines","href":"/dist/docs/3.1.30/spec-guidelines"},{"title":"Required tasks by protocol","sidebarTitle":"Required tasks","href":"/dist/docs/3.1.30/protocol/required-tasks"},{"title":"Calling an AdCP agent","sidebarTitle":"Calling an agent","href":"/dist/docs/3.1.30/protocol/calling-an-agent"},{"title":"Format References","href":"/dist/docs/3.1.30/protocol/format-references"},{"title":"Snapshot and log","href":"/dist/docs/3.1.30/protocol/snapshot-and-log"},{"group":"Concepts","expanded":false,"pages":[{"title":"Why AdCP","href":"/dist/docs/3.1.30/building/concepts/index"},{"title":"Protocol Comparison","href":"/dist/docs/3.1.30/building/concepts/protocol-comparison"},{"title":"AdCP and OpenRTB","sidebarTitle":"AdCP vs OpenRTB","href":"/dist/docs/3.1.30/building/concepts/adcp-vs-openrtb"},{"title":"How AI agents communicate ad specs across platforms","sidebarTitle":"How agents communicate","href":"/dist/docs/3.1.30/building/concepts/how-agents-communicate"},{"title":"Security Model","sidebarTitle":"Security Model","href":"/dist/docs/3.1.30/building/concepts/security-model"},{"title":"AI advertising standards landscape","sidebarTitle":"Industry landscape","href":"/dist/docs/3.1.30/building/concepts/industry-landscape"},{"title":"Managing Response Size","sidebarTitle":"Managing Response Size","href":"/dist/docs/3.1.30/building/concepts/managing-response-size"}]},{"group":"Build by layer","pages":[{"group":"L4 — Business logic","pages":[{"title":"L4 — Business logic","sidebarTitle":"L4 — Business logic","href":"/dist/docs/3.1.30/building/by-layer/L4/index"},{"title":"Choose your SDK","sidebarTitle":"Choose your SDK","href":"/dist/docs/3.1.30/building/by-layer/L4/choose-your-sdk"},{"title":"Build an Agent","sidebarTitle":"Build an Agent","href":"/dist/docs/3.1.30/building/by-layer/L4/build-an-agent"},{"title":"Build a caller","sidebarTitle":"Build a caller","href":"/dist/docs/3.1.30/building/by-layer/L4/build-a-caller"},{"title":"Migrate from a hand-rolled agent","sidebarTitle":"Migrate from hand-rolled","href":"/dist/docs/3.1.30/building/by-layer/L4/migrate-from-hand-rolled"}]},{"group":"L3 — Protocol semantics","expanded":false,"pages":[{"title":"L3 — Protocol semantics","sidebarTitle":"L3 — Protocol semantics","href":"/dist/docs/3.1.30/building/by-layer/L3/index"},{"title":"Task Lifecycle","href":"/dist/docs/3.1.30/building/by-layer/L3/task-lifecycle"},{"title":"Async Operations","href":"/dist/docs/3.1.30/building/by-layer/L3/async-operations"},{"title":"Push Notifications","href":"/dist/docs/3.1.30/building/by-layer/L3/webhooks"},{"title":"Error Handling","href":"/dist/docs/3.1.30/building/by-layer/L3/error-handling"},{"title":"Compliance test controller","href":"/dist/docs/3.1.30/building/by-layer/L3/comply-test-controller"}]},{"group":"L2 — Auth \u0026 registry","expanded":false,"pages":[{"title":"L2 — Auth \u0026 registry","sidebarTitle":"L2 — Auth \u0026 registry","href":"/dist/docs/3.1.30/building/by-layer/L2/index"},{"title":"Authentication","href":"/dist/docs/3.1.30/building/by-layer/L2/authentication"},{"title":"Account state","href":"/dist/docs/3.1.30/building/by-layer/L2/account-state"},{"title":"Accounts and agents","href":"/dist/docs/3.1.30/building/by-layer/L2/accounts-and-agents"},{"title":"Context \u0026 Sessions","href":"/dist/docs/3.1.30/building/by-layer/L2/context-sessions"}]},{"group":"L1 — Identity \u0026 signing","expanded":false,"pages":[{"title":"L1 — Identity \u0026 signing","sidebarTitle":"L1 — Identity \u0026 signing","href":"/dist/docs/3.1.30/building/by-layer/L1/index"},{"title":"Security","href":"/dist/docs/3.1.30/building/by-layer/L1/security"},{"title":"Request Signing Guide","href":"/dist/docs/3.1.30/building/by-layer/L1/request-signing"},{"title":"Webhook Verifier Tuning Guide","sidebarTitle":"Webhook Verifier Tuning","href":"/dist/docs/3.1.30/building/by-layer/L1/webhook-verifier-tuning"}]},{"group":"L0 — Wire \u0026 transport","expanded":false,"pages":[{"title":"L0 — Wire \u0026 transport","sidebarTitle":"L0 — Wire \u0026 transport","href":"/dist/docs/3.1.30/building/by-layer/L0/index"},{"title":"Schemas","sidebarTitle":"Schemas","href":"/dist/docs/3.1.30/building/by-layer/L0/schemas"},{"title":"MCP Guide","href":"/dist/docs/3.1.30/building/by-layer/L0/mcp-guide"},{"title":"A2A Guide","href":"/dist/docs/3.1.30/building/by-layer/L0/a2a-guide"},{"title":"A2A Response Format","href":"/dist/docs/3.1.30/building/by-layer/L0/a2a-response-format"},{"title":"get_adcp_capabilities","href":"/dist/docs/3.1.30/protocol/get_adcp_capabilities"},{"title":"MCP Response Extraction","href":"/dist/docs/3.1.30/building/by-layer/L0/mcp-response-extraction"},{"title":"A2A Response Extraction","href":"/dist/docs/3.1.30/building/by-layer/L0/a2a-response-extraction"}]}]},{"group":"Cross-cutting","expanded":false,"pages":[{"title":"The AdCP stack","sidebarTitle":"SDK stack reference","href":"/dist/docs/3.1.30/building/cross-cutting/sdk-stack"},{"title":"Version Adaptation","sidebarTitle":"Version Adaptation","href":"/dist/docs/3.1.30/building/cross-cutting/version-adaptation"},{"title":"Known spec ambiguities","href":"/dist/docs/3.1.30/building/cross-cutting/known-ambiguities"}]},{"group":"Verification \u0026 trust","expanded":false,"pages":[{"title":"Conformance Specification","sidebarTitle":"Conformance Specification","href":"/dist/docs/3.1.30/building/verification/conformance"},{"title":"Compliance Catalog","sidebarTitle":"Compliance Catalog","href":"/dist/docs/3.1.30/building/verification/compliance-catalog"},{"title":"Storyboards vs. scenarios — which is which","sidebarTitle":"Storyboards vs. Scenarios","href":"/dist/docs/3.1.30/building/verification/storyboards-vs-scenarios"},{"title":"How grading works","sidebarTitle":"How grading works","href":"/dist/docs/3.1.30/building/verification/how-grading-works"},{"title":"Validate your agent using storyboards","sidebarTitle":"Validate Your Agent","href":"/dist/docs/3.1.30/building/verification/validate-your-agent"},{"title":"Validate adapter agents with mock upstream fixtures","sidebarTitle":"Mock Upstream Fixtures","href":"/dist/docs/3.1.30/building/verification/validate-with-mock-fixtures"},{"title":"Pair-program with Addie (Socket Mode)","sidebarTitle":"Pair with Addie","href":"/dist/docs/3.1.30/building/verification/addie-socket-mode"},{"title":"Auth Graders","sidebarTitle":"Auth Graders","href":"/dist/docs/3.1.30/building/verification/grading"},{"title":"Get Test-Ready","sidebarTitle":"Get Test-Ready","href":"/dist/docs/3.1.30/building/verification/get-test-ready"},{"title":"AAO Verified","sidebarTitle":"AAO Verified","href":"/dist/docs/3.1.30/building/verification/aao-verified"}]},{"group":"Operating","expanded":false,"pages":[{"title":"Operating an Agent","sidebarTitle":"Operating an Agent","href":"/dist/docs/3.1.30/building/operating/operating-an-agent"},{"title":"Orchestrator Design","href":"/dist/docs/3.1.30/building/operating/orchestrator-design"},{"title":"Transport Error Mapping","href":"/dist/docs/3.1.30/building/operating/transport-errors"},{"title":"Making your inventory available to AI agents","sidebarTitle":"Seller integration","href":"/dist/docs/3.1.30/building/operating/seller-integration"},{"title":"Storyboard troubleshooting","href":"/dist/docs/3.1.30/building/operating/storyboard-troubleshooting"}]},{"group":"Accounts","expanded":false,"pages":[{"title":"Accounts Protocol","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/accounts/overview"},{"title":"sync_accounts","href":"/dist/docs/3.1.30/accounts/tasks/sync_accounts"},{"title":"list_accounts","href":"/dist/docs/3.1.30/accounts/tasks/list_accounts"},{"title":"report_usage","href":"/dist/docs/3.1.30/accounts/tasks/report_usage"},{"title":"sync_governance","href":"/dist/docs/3.1.30/accounts/tasks/sync_governance"},{"title":"get_account_financials","href":"/dist/docs/3.1.30/accounts/tasks/get_account_financials"}]}]},{"group":"Protocol","expanded":false,"pages":[{"group":"Media Buy","expanded":false,"pages":[{"title":"Media buy protocol","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/media-buy/index"},{"title":"Commerce Media","href":"/dist/docs/3.1.30/media-buy/commerce-media"},{"group":"Concepts","pages":[{"title":"Product Discovery","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/media-buy/product-discovery/index"},{"title":"Brief Expectations","href":"/dist/docs/3.1.30/media-buy/product-discovery/brief-expectations"},{"title":"Example Campaign Briefs","href":"/dist/docs/3.1.30/media-buy/product-discovery/example-briefs"},{"title":"Media Products","href":"/dist/docs/3.1.30/media-buy/product-discovery/media-products"},{"title":"Collections and installments","href":"/dist/docs/3.1.30/media-buy/product-discovery/collections-and-installments"},{"title":"Refinement","href":"/dist/docs/3.1.30/media-buy/product-discovery/refinement"},{"title":"Media Buy Lifecycle","href":"/dist/docs/3.1.30/media-buy/media-buys/index"},{"title":"Media Buy Lifecycle Flow","href":"/dist/docs/3.1.30/media-buy/media-buys/lifecycle"},{"title":"Optimization \u0026 Reporting","href":"/dist/docs/3.1.30/media-buy/media-buys/optimization-reporting"},{"title":"Policy Compliance","href":"/dist/docs/3.1.30/media-buy/media-buys/policy-compliance"},{"title":"Creative Lifecycle","href":"/dist/docs/3.1.30/media-buy/creatives/index"},{"title":"Conversion Tracking \u0026 Optimization Goals","href":"/dist/docs/3.1.30/media-buy/conversion-tracking/index"},{"title":"Pricing Models","href":"/dist/docs/3.1.30/media-buy/advanced-topics/pricing-models"},{"title":"Targeting","href":"/dist/docs/3.1.30/media-buy/advanced-topics/targeting"},{"title":"Accountability","sidebarTitle":"Accountability","href":"/dist/docs/3.1.30/media-buy/advanced-topics/accountability"},{"title":"Billing Authority","sidebarTitle":"Billing Authority","href":"/dist/docs/3.1.30/media-buy/advanced-topics/billing-authority"}]},{"group":"Building","pages":[{"title":"Capability Discovery","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/media-buy/capability-discovery/index"},{"title":"Implementing Standard Format Support","href":"/dist/docs/3.1.30/media-buy/capability-discovery/implementing-standard-formats"},{"title":"Agentic eXecution Engine (AXE)","href":"/dist/docs/3.1.30/media-buy/advanced-topics/agentic-execution-engine"},{"title":"Accounts \u0026 Security","href":"/dist/docs/3.1.30/media-buy/advanced-topics/accounts-and-security"},{"title":"Sandbox mode","href":"/dist/docs/3.1.30/media-buy/advanced-topics/sandbox"}]},{"group":"Reference","expanded":false,"pages":[{"title":"Media Buy Specification","sidebarTitle":"Specification","href":"/dist/docs/3.1.30/media-buy/specification"},{"title":"Task Reference","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/media-buy/task-reference/index"},{"title":"get_products","href":"/dist/docs/3.1.30/media-buy/task-reference/get_products"},{"title":"create_media_buy","href":"/dist/docs/3.1.30/media-buy/task-reference/create_media_buy"},{"title":"sync_catalogs","href":"/dist/docs/3.1.30/media-buy/task-reference/sync_catalogs"},{"title":"get_media_buys","href":"/dist/docs/3.1.30/media-buy/task-reference/get_media_buys"},{"title":"get_media_buy_delivery","href":"/dist/docs/3.1.30/media-buy/task-reference/get_media_buy_delivery"},{"title":"update_media_buy","href":"/dist/docs/3.1.30/media-buy/task-reference/update_media_buy"},{"title":"provide_performance_feedback","href":"/dist/docs/3.1.30/media-buy/task-reference/provide_performance_feedback"},{"title":"sync_event_sources","href":"/dist/docs/3.1.30/media-buy/task-reference/sync_event_sources"},{"title":"log_event","href":"/dist/docs/3.1.30/media-buy/task-reference/log_event"},{"title":"sync_audiences","href":"/dist/docs/3.1.30/media-buy/task-reference/sync_audiences"}]}]},{"group":"Creative","expanded":false,"pages":[{"title":"Creative protocol","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/creative/index"},{"group":"Concepts","pages":[{"title":"Key concepts","href":"/dist/docs/3.1.30/creative/key-concepts"},{"title":"AI creative for campaign teams","href":"/dist/docs/3.1.30/creative/ai-creative-overview"},{"title":"Generative Creative","href":"/dist/docs/3.1.30/creative/generative-creative"},{"title":"Creative libraries and concepts","href":"/dist/docs/3.1.30/creative/creative-libraries"},{"title":"Catalogs","href":"/dist/docs/3.1.30/creative/catalogs"},{"title":"Catalog item schemas","href":"/dist/docs/3.1.30/creative/catalog-schemas"}]},{"group":"Building Creative Agents","pages":[{"title":"Implementing Creative Agents","href":"/dist/docs/3.1.30/creative/implementing-creative-agents"},{"title":"Creative capabilities on sales agents","sidebarTitle":"Sales agent creatives","href":"/dist/docs/3.1.30/creative/sales-agent-creative-capabilities"},{"title":"Multi-agent creative orchestration","href":"/dist/docs/3.1.30/creative/multi-agent-orchestration"},{"title":"Creative Manifests","href":"/dist/docs/3.1.30/creative/creative-manifests"},{"title":"Private assets","href":"/dist/docs/3.1.30/creative/private-assets"}]},{"group":"Formats and Assets","pages":[{"title":"Creative Formats","href":"/dist/docs/3.1.30/creative/formats"},{"title":"Asset Types","href":"/dist/docs/3.1.30/creative/asset-types"},{"title":"Template Format IDs","href":"/dist/docs/3.1.30/creative/template-format-ids"},{"title":"Universal Macros","href":"/dist/docs/3.1.30/creative/universal-macros"}]},{"group":"Channel Guides","pages":[{"title":"Video Ads","href":"/dist/docs/3.1.30/creative/channels/video"},{"title":"CTV and connected TV","href":"/dist/docs/3.1.30/creative/channels/ctv"},{"title":"Broadcast TV","href":"/dist/docs/3.1.30/creative/channels/broadcast"},{"title":"Display Ads","href":"/dist/docs/3.1.30/creative/channels/display"},{"title":"Audio Ads","href":"/dist/docs/3.1.30/creative/channels/audio"},{"title":"DOOH (Digital Out-of-Home)","href":"/dist/docs/3.1.30/creative/channels/dooh"},{"title":"Carousel \u0026 Multi-Asset Formats","href":"/dist/docs/3.1.30/creative/channels/carousels"},{"title":"Social and feed-native","href":"/dist/docs/3.1.30/creative/channels/social-native"}]},{"group":"Compliance","pages":[{"title":"Accessibility","href":"/dist/docs/3.1.30/creative/accessibility"},{"title":"AI provenance and disclosure","sidebarTitle":"Provenance","href":"/dist/docs/3.1.30/creative/provenance"}]},{"group":"Reference","expanded":false,"pages":[{"title":"Creative Specification","sidebarTitle":"Specification","href":"/dist/docs/3.1.30/creative/specification"},{"title":"build_creative","href":"/dist/docs/3.1.30/creative/task-reference/build_creative"},{"title":"preview_creative","href":"/dist/docs/3.1.30/creative/task-reference/preview_creative"},{"title":"preview_creative (Advanced)","href":"/dist/docs/3.1.30/creative/task-reference/preview_creative-advanced"},{"title":"list_creative_formats","href":"/dist/docs/3.1.30/creative/task-reference/list_creative_formats"},{"title":"list_creatives","href":"/dist/docs/3.1.30/creative/task-reference/list_creatives"},{"title":"sync_creatives","href":"/dist/docs/3.1.30/creative/task-reference/sync_creatives"},{"title":"get_creative_delivery","href":"/dist/docs/3.1.30/creative/task-reference/get_creative_delivery"}]}]},{"group":"Governance","expanded":false,"pages":[{"title":"Governance protocol","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/governance/overview"},{"title":"RFC process","href":"/dist/docs/3.1.30/governance/rfc-process"},{"title":"Embedded human judgment","sidebarTitle":"Embedded human judgment","href":"/dist/docs/3.1.30/governance/embedded-human-judgment"},{"title":"Policy Registry","sidebarTitle":"Policy Registry","href":"/dist/docs/3.1.30/governance/policy-registry"},{"title":"Policy Registry: Sync and versioning","sidebarTitle":"Sync and versioning","href":"/dist/docs/3.1.30/governance/policy-registry-sync"},{"title":"Policy Attribution","sidebarTitle":"Policy Attribution","href":"/dist/docs/3.1.30/governance/policy-attribution"},{"title":"Annex III \u0026 Article 22 obligations","sidebarTitle":"Annex III \u0026 Art 22","href":"/dist/docs/3.1.30/governance/annex-iii-obligations"},{"title":"Working group charter","sidebarTitle":"Working group charter","href":"/dist/docs/3.1.30/governance/working-group-charter"},{"group":"Property Governance","pages":[{"title":"Property Governance","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/governance/property/index"},{"title":"adagents.json Tech Spec","href":"/dist/docs/3.1.30/governance/property/adagents"},{"title":"Managed Network Deployment","href":"/dist/docs/3.1.30/governance/property/managed-networks"},{"title":"Understanding Authorization","href":"/dist/docs/3.1.30/governance/property/authorized-properties"},{"title":"Property Governance Specification","sidebarTitle":"Specification","href":"/dist/docs/3.1.30/governance/property/specification"},{"group":"Tasks","pages":[{"title":"Property Governance Tasks","sidebarTitle":"Task Reference","href":"/dist/docs/3.1.30/governance/property/tasks/index"},{"title":"Property List Management","href":"/dist/docs/3.1.30/governance/property/tasks/property_lists"},{"title":"validate_property_delivery","href":"/dist/docs/3.1.30/governance/property/tasks/validate_property_delivery"}]}]},{"group":"Collection Governance","pages":[{"title":"Collection Governance","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/governance/collection/index"},{"title":"Collection List Management","href":"/dist/docs/3.1.30/governance/collection/tasks/collection_lists"}]},{"group":"Content Standards","pages":[{"title":"Content Standards","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/governance/content-standards/index"},{"title":"Content Artifacts","sidebarTitle":"Artifacts","href":"/dist/docs/3.1.30/governance/content-standards/artifacts"},{"title":"Content Standards Implementation","sidebarTitle":"Implementation Guide","href":"/dist/docs/3.1.30/governance/content-standards/implementation-guide"},{"group":"Tasks","pages":[{"title":"list_content_standards","href":"/dist/docs/3.1.30/governance/content-standards/tasks/list_content_standards"},{"title":"get_content_standards","href":"/dist/docs/3.1.30/governance/content-standards/tasks/get_content_standards"},{"title":"create_content_standards","href":"/dist/docs/3.1.30/governance/content-standards/tasks/create_content_standards"},{"title":"update_content_standards","href":"/dist/docs/3.1.30/governance/content-standards/tasks/update_content_standards"},{"title":"calibrate_content","href":"/dist/docs/3.1.30/governance/content-standards/tasks/calibrate_content"},{"title":"get_media_buy_artifacts","href":"/dist/docs/3.1.30/governance/content-standards/tasks/get_media_buy_artifacts"},{"title":"validate_content_delivery","href":"/dist/docs/3.1.30/governance/content-standards/tasks/validate_content_delivery"}]}]},{"group":"Creative Governance","pages":[{"title":"Creative Governance","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/governance/creative/index"},{"title":"get_creative_features","href":"/dist/docs/3.1.30/governance/creative/get_creative_features"},{"title":"Provenance verification","sidebarTitle":"Provenance verification","href":"/dist/docs/3.1.30/governance/creative/provenance-verification"}]},{"group":"Campaign Governance","pages":[{"title":"Campaign Governance","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/governance/campaign/index"},{"title":"Safety Model","sidebarTitle":"Safety Model","href":"/dist/docs/3.1.30/governance/campaign/safety-model"},{"title":"Specification","sidebarTitle":"Specification","href":"/dist/docs/3.1.30/governance/campaign/specification"},{"title":"Audit trail: internal vs shareable views","sidebarTitle":"Audit trail","href":"/dist/docs/3.1.30/governance/campaign/audit-trail"},{"group":"Tasks","pages":[{"title":"Task reference","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/governance/campaign/tasks/index"},{"title":"sync_plans","href":"/dist/docs/3.1.30/governance/campaign/tasks/sync_plans"},{"title":"report_plan_outcome","href":"/dist/docs/3.1.30/governance/campaign/tasks/report_plan_outcome"},{"title":"check_governance","href":"/dist/docs/3.1.30/governance/campaign/tasks/check_governance"},{"title":"get_plan_audit_logs","href":"/dist/docs/3.1.30/governance/campaign/tasks/get_plan_audit_logs"}]}]}]},{"group":"Sponsored Intelligence","expanded":false,"pages":[{"title":"Sponsored Intelligence","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/sponsored-intelligence/overview"},{"title":"Monetizing AI surfaces","sidebarTitle":"Monetizing AI","href":"/dist/docs/3.1.30/sponsored-intelligence/monetizing-ai"},{"group":"Concepts","pages":[{"title":"Product spectrum","sidebarTitle":"Product spectrum","href":"/dist/docs/3.1.30/sponsored-intelligence/product-spectrum"},{"title":"Ad networks","sidebarTitle":"Ad networks","href":"/dist/docs/3.1.30/sponsored-intelligence/networks"},{"title":"End-to-end workflow","sidebarTitle":"Workflow","href":"/dist/docs/3.1.30/sponsored-intelligence/workflow"},{"title":"Measurement","sidebarTitle":"Measurement","href":"/dist/docs/3.1.30/sponsored-intelligence/measurement"}]},{"group":"SI Chat Protocol","pages":[{"title":"SI Chat Protocol","sidebarTitle":"SI Chat Protocol","href":"/dist/docs/3.1.30/sponsored-intelligence/si-chat-protocol"},{"title":"Implementing SI Agents","href":"/dist/docs/3.1.30/sponsored-intelligence/implementing-si-agents"},{"title":"Implementing SI Hosts","href":"/dist/docs/3.1.30/sponsored-intelligence/implementing-si-hosts"}]},{"group":"Reference","expanded":false,"pages":[{"title":"Sponsored Intelligence Specification","sidebarTitle":"Specification","href":"/dist/docs/3.1.30/sponsored-intelligence/specification"},{"title":"Sponsored Intelligence Tasks","sidebarTitle":"Task Reference","href":"/dist/docs/3.1.30/sponsored-intelligence/tasks/index"},{"title":"si_get_offering","href":"/dist/docs/3.1.30/sponsored-intelligence/tasks/si_get_offering"},{"title":"si_initiate_session","href":"/dist/docs/3.1.30/sponsored-intelligence/tasks/si_initiate_session"},{"title":"si_send_message","href":"/dist/docs/3.1.30/sponsored-intelligence/tasks/si_send_message"},{"title":"si_terminate_session","href":"/dist/docs/3.1.30/sponsored-intelligence/tasks/si_terminate_session"}]}]},{"group":"Brand","expanded":false,"pages":[{"title":"Brand protocol","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/brand-protocol/index"},{"title":"Brand protocol","sidebarTitle":"Key concepts","href":"/dist/docs/3.1.30/brand-protocol/key-concepts"},{"title":"Rights licensing walkthrough","sidebarTitle":"Rights licensing","href":"/dist/docs/3.1.30/brand-protocol/walkthrough-rights-licensing"},{"title":"For advertisers","href":"/dist/docs/3.1.30/brand-protocol/for-advertisers"},{"title":"For talent and rights holders","href":"/dist/docs/3.1.30/brand-protocol/for-rights-holders"},{"title":"Seller setup","sidebarTitle":"For sellers","href":"/dist/docs/3.1.30/brand-protocol/seller-setup"},{"title":"brand.json Specification","href":"/dist/docs/3.1.30/brand-protocol/brand-json"},{"title":"Building a brand agent","href":"/dist/docs/3.1.30/brand-protocol/building-a-brand-agent"},{"title":"UI guidance for rejected claims","href":"/dist/docs/3.1.30/brand-protocol/ui-guidance"},{"group":"Tasks","pages":[{"title":"get_brand_identity","href":"/dist/docs/3.1.30/brand-protocol/tasks/get_brand_identity"},{"title":"verify_brand_claim","href":"/dist/docs/3.1.30/brand-protocol/tasks/verify_brand_claim"},{"title":"verify_brand_claims","href":"/dist/docs/3.1.30/brand-protocol/tasks/verify_brand_claims"},{"title":"get_rights","href":"/dist/docs/3.1.30/brand-protocol/tasks/get_rights"},{"title":"acquire_rights","href":"/dist/docs/3.1.30/brand-protocol/tasks/acquire_rights"},{"title":"update_rights","href":"/dist/docs/3.1.30/brand-protocol/tasks/update_rights"}]}]},{"group":"Signals","expanded":false,"pages":[{"title":"Signals protocol","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/signals/overview"},{"title":"Key concepts","href":"/dist/docs/3.1.30/signals/key-concepts"},{"title":"Signals ecosystem","href":"/dist/docs/3.1.30/signals/ecosystem"},{"title":"Data Provider Guide","sidebarTitle":"Data Providers","href":"/dist/docs/3.1.30/signals/data-providers"},{"group":"Reference","expanded":false,"pages":[{"title":"Signals Specification","sidebarTitle":"Specification","href":"/dist/docs/3.1.30/signals/specification"},{"title":"get_signals","href":"/dist/docs/3.1.30/signals/tasks/get_signals"},{"title":"activate_signal","href":"/dist/docs/3.1.30/signals/tasks/activate_signal"}]}]},{"group":"Trusted Match","expanded":false,"pages":[{"title":"Trusted Match Protocol","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/trusted-match/index"},{"title":"How demand reaches AI assistants","sidebarTitle":"AI mediation","href":"/dist/docs/3.1.30/trusted-match/ai-mediation"},{"title":"TMP for Buyer Agents","sidebarTitle":"Buyer Guide","href":"/dist/docs/3.1.30/trusted-match/buyer-guide"},{"title":"The Execution Gap","href":"/dist/docs/3.1.30/trusted-match/execution-gap"},{"title":"Context Match and Identity Match","href":"/dist/docs/3.1.30/trusted-match/context-and-identity"},{"title":"TMP Specification","href":"/dist/docs/3.1.30/trusted-match/specification"},{"title":"The TMP Router","href":"/dist/docs/3.1.30/trusted-match/router-architecture"},{"title":"Privacy Architecture","href":"/dist/docs/3.1.30/trusted-match/privacy-architecture"},{"title":"Data Protection Roles","href":"/dist/docs/3.1.30/trusted-match/data-protection-roles"},{"title":"Migrating from AXE to TMP","sidebarTitle":"AXE Migration","href":"/dist/docs/3.1.30/trusted-match/migration-from-axe"},{"group":"Surface Guides","pages":[{"title":"TMP for Web Publishers","href":"/dist/docs/3.1.30/trusted-match/surfaces/web"},{"title":"TMP for CTV","href":"/dist/docs/3.1.30/trusted-match/surfaces/ctv"},{"title":"TMP for Mobile Apps","href":"/dist/docs/3.1.30/trusted-match/surfaces/mobile"},{"title":"TMP for Retail Media","href":"/dist/docs/3.1.30/trusted-match/surfaces/retail-media"},{"title":"TMP for AI Assistants","href":"/dist/docs/3.1.30/trusted-match/surfaces/ai-assistants"}]}]}]},{"group":"FAQ","pages":[{"title":"Frequently asked questions","sidebarTitle":"FAQ","href":"/dist/docs/3.1.30/faq"}]},{"group":"Trust \u0026 Security","expanded":false,"pages":[{"title":"Trust \u0026 Security","sidebarTitle":"Trust \u0026 Security","href":"/dist/docs/3.1.30/trust"},{"title":"Seller verification","sidebarTitle":"Seller verification","href":"/dist/docs/3.1.30/verification/overview"},{"title":"AI Disclosure","href":"/dist/docs/3.1.30/ai-disclosure"},{"title":"Privacy Considerations","sidebarTitle":"Privacy Considerations","href":"/dist/docs/3.1.30/reference/privacy-considerations"},{"title":"Known Limitations","sidebarTitle":"Known Limitations","href":"/dist/docs/3.1.30/reference/known-limitations"}]},{"group":"Reference","expanded":false,"pages":[{"group":"Registry API","pages":[{"title":"Registry API","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/registry/index"},{"title":"Registering an agent","sidebarTitle":"Registering an agent","href":"/dist/docs/3.1.30/registry/registering-an-agent"},{"title":"Maintaining your agent","sidebarTitle":"Maintaining your agent","href":"/dist/docs/3.1.30/registry/maintaining-your-agent"},{"group":"Search","pages":[{"title":"API discovery","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api","href":"/dist/docs/3.1.30/registry/api-reference/search/api-discovery"},{"title":"Search","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/search","href":"/dist/docs/3.1.30/registry/api-reference/search/search"},{"title":"Manifest reference lookup","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/manifest-refs/lookup","href":"/dist/docs/3.1.30/registry/api-reference/search/manifest-reference-lookup"}]},{"group":"Brand Resolution","pages":[{"title":"Resolve brand","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/brands/resolve","href":"/dist/docs/3.1.30/registry/api-reference/brand-resolution/resolve-brand"},{"title":"Bulk resolve brands","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/brands/resolve/bulk","href":"/dist/docs/3.1.30/registry/api-reference/brand-resolution/bulk-resolve-brands"},{"title":"Get brand.json","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/brands/brand-json","href":"/dist/docs/3.1.30/registry/api-reference/brand-resolution/get-brandjson"},{"title":"Save brand","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/brands/save","href":"/dist/docs/3.1.30/registry/api-reference/brand-resolution/save-brand"},{"title":"List brands","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/brands/registry","href":"/dist/docs/3.1.30/registry/api-reference/brand-resolution/list-brands"},{"title":"Brand activity history","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/brands/history","href":"/dist/docs/3.1.30/registry/api-reference/brand-resolution/brand-activity-history"},{"title":"Enrich brand","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/brands/enrich","href":"/dist/docs/3.1.30/registry/api-reference/brand-resolution/enrich-brand"},{"title":"Find brands by name","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/brands/find","href":"/dist/docs/3.1.30/registry/api-reference/brand-resolution/find-brands-by-name"},{"title":"Set up a hosted brand.json","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/brands/setup-my-brand","href":"/dist/docs/3.1.30/registry/api-reference/brand-resolution/set-up-a-hosted-brandjson"}]},{"group":"Property Resolution","pages":[{"title":"Property activity history","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/properties/history","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/property-activity-history"},{"title":"Resolve property","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/properties/resolve","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/resolve-property"},{"title":"Bulk resolve properties","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/properties/resolve/bulk","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/bulk-resolve-properties"},{"title":"List properties","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/properties/registry","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/list-properties"},{"title":"Validate adagents.json","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/properties/validate","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/validate-adagentsjson"},{"title":"Save property","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/properties/save","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/save-property"},{"title":"Claim a domain for bind-on-verify","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/properties/hosted/{domain}/claim","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/claim-a-domain-for-bind-on-verify"},{"title":"Verify AAO-hosted publisher origin","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/properties/hosted/{domain}/verify-origin","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/verify-aao-hosted-publisher-origin"},{"title":"Check property list","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/properties/check","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/check-property-list"},{"title":"Get property check report","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/properties/check/{reportId}","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/get-property-check-report"},{"title":"Bulk property identifier check","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/properties/check/bulk","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/bulk-property-identifier-check"},{"title":"Get bulk check report","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/properties/check/bulk/{reportId}","href":"/dist/docs/3.1.30/registry/api-reference/property-resolution/get-bulk-check-report"}]},{"group":"Agent Discovery","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents","href":"/dist/docs/3.1.30/registry/api-reference/agent-discovery/list-agents"},{"title":"List publishers","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/publishers","href":"/dist/docs/3.1.30/registry/api-reference/agent-discovery/list-publishers"},{"title":"Registry statistics","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/stats","href":"/dist/docs/3.1.30/registry/api-reference/agent-discovery/registry-statistics"},{"title":"Search agent inventory profiles","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/search","href":"/dist/docs/3.1.30/registry/api-reference/agent-discovery/search-agent-inventory-profiles"},{"title":"Request domain re-crawl","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/crawl-request","href":"/dist/docs/3.1.30/registry/api-reference/agent-discovery/request-domain-re-crawl"},{"title":"Request manager fan-out re-validation","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/manager-revalidation-request","href":"/dist/docs/3.1.30/registry/api-reference/agent-discovery/request-manager-fan-out-re-validation"}]},{"group":"Authorization Lookups","pages":[{"title":"Domain lookup (deprecated)","deprecated":true,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/lookup/domain/{domain}","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/domain-lookup-deprecated"},{"title":"Property identifier lookup","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/lookup/property","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/property-identifier-lookup"},{"title":"Agent domain lookup","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/lookup/agent/{agentUrl}/domains","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/agent-domain-lookup"},{"title":"AAO directory inverse-lookup","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/v1/agents/{encodedUrl}/publishers","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/aao-directory-inverse-lookup"},{"title":"AAO directory inverse-lookup","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /v1/agents/{encodedUrl}/publishers","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/aao-directory-inverse-lookup-1"},{"title":"Operator lookup","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/operator","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/operator-lookup"},{"title":"Publisher lookup","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/publisher","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/publisher-lookup"},{"title":"Revalidate publisher adagents.json","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/publisher/{domain}/adagents/revalidate","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/revalidate-publisher-adagentsjson"},{"title":"Per-agent authorization rollup","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/publisher/authorization","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/per-agent-authorization-rollup"},{"title":"Validate product authorization","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/validate/product-authorization","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/validate-product-authorization"},{"title":"Expand product identifiers","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/expand/product-identifiers","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/expand-product-identifiers"},{"title":"Property authorization check","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/validate/property-authorization","href":"/dist/docs/3.1.30/registry/api-reference/authorization-lookups/property-authorization-check"}]},{"group":"Validation Tools","pages":[{"title":"Validate adagents.json","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/adagents/validate","href":"/dist/docs/3.1.30/registry/api-reference/validation-tools/validate-adagentsjson"},{"title":"Generate adagents.json","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/adagents/create","href":"/dist/docs/3.1.30/registry/api-reference/validation-tools/generate-adagentsjson"}]},{"group":"Community Mirrors","pages":[{"title":"List community mirrors","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/mirrors","href":"/dist/docs/3.1.30/registry/api-reference/community-mirrors/list-community-mirrors"},{"title":"Get community mirror","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/mirrors/{platform}","href":"/dist/docs/3.1.30/registry/api-reference/community-mirrors/get-community-mirror"},{"title":"Publish community mirror","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml put /api/registry/mirrors/{platform}","href":"/dist/docs/3.1.30/registry/api-reference/community-mirrors/publish-community-mirror"},{"title":"Delete community mirror","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml delete /api/registry/mirrors/{platform}","href":"/dist/docs/3.1.30/registry/api-reference/community-mirrors/delete-community-mirror"}]},{"group":"Agent Probing","pages":[{"title":"Discover agent","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/public/discover-agent","href":"/dist/docs/3.1.30/registry/api-reference/agent-probing/discover-agent"},{"title":"Get agent formats","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/public/agent-formats","href":"/dist/docs/3.1.30/registry/api-reference/agent-probing/get-agent-formats"},{"title":"Get agent products","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/public/agent-products","href":"/dist/docs/3.1.30/registry/api-reference/agent-probing/get-agent-products"},{"title":"Validate publisher","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/public/validate-publisher","href":"/dist/docs/3.1.30/registry/api-reference/agent-probing/validate-publisher"}]},{"group":"Policy Registry","pages":[{"title":"List policies","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/policies/registry","href":"/dist/docs/3.1.30/registry/api-reference/policy-registry/list-policies"},{"title":"Resolve policy","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/policies/resolve","href":"/dist/docs/3.1.30/registry/api-reference/policy-registry/resolve-policy"},{"title":"Bulk resolve policies","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/policies/resolve/bulk","href":"/dist/docs/3.1.30/registry/api-reference/policy-registry/bulk-resolve-policies"},{"title":"Policy revision history","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/policies/history","href":"/dist/docs/3.1.30/registry/api-reference/policy-registry/policy-revision-history"},{"title":"Save policy","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/policies/save","href":"/dist/docs/3.1.30/registry/api-reference/policy-registry/save-policy"}]},{"group":"Change Feed","pages":[{"title":"Registry change feed","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/feed","href":"/dist/docs/3.1.30/registry/api-reference/change-feed/registry-change-feed"},{"title":"Registry change feed stream","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/feed/stream","href":"/dist/docs/3.1.30/registry/api-reference/change-feed/registry-change-feed-stream"},{"title":"Per-agent authorization pull","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/authorizations","href":"/dist/docs/3.1.30/registry/api-reference/change-feed/per-agent-authorization-pull"},{"title":"Bootstrap snapshot for inline verifiers","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/authorizations/snapshot","href":"/dist/docs/3.1.30/registry/api-reference/change-feed/bootstrap-snapshot-for-inline-verifiers"}]},{"group":"Brand Discovery","pages":[{"title":"Request brand.json re-crawl","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/brand-crawl-request","href":"/dist/docs/3.1.30/registry/api-reference/brand-discovery/request-brandjson-re-crawl"}]},{"group":"Agent Compliance","pages":[{"title":"Get agent compliance detail","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/compliance","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-agent-compliance-detail"},{"title":"AAO public key set","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/.well-known/jwks.json","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/aao-public-key-set"},{"title":"Get agent AAO Verified status","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/verification","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-agent-aao-verified-status"},{"title":"Get agent verification badge SVG","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/badge/{role}.svg","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-agent-verification-badge-svg"},{"title":"Get embeddable badge code","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/badge/{role}/embed","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-embeddable-badge-code"},{"title":"Get version-pinned agent verification badge SVG","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/badge/{role}/{version}.svg","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-version-pinned-agent-verification-badge-svg"},{"title":"Get version-pinned embeddable badge code","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/badge/{role}/{version}/embed","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-version-pinned-embeddable-badge-code"},{"title":"Get agent storyboard status","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/storyboard-status","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-agent-storyboard-status"},{"title":"Bulk storyboard status","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/agents/storyboard-status","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/bulk-storyboard-status"},{"title":"Get agent compliance history","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/compliance/history","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-agent-compliance-history"},{"title":"Update agent lifecycle stage","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml put /api/registry/agents/{encodedUrl}/lifecycle","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/update-agent-lifecycle-stage"},{"title":"Update compliance opt-out","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml put /api/registry/agents/{encodedUrl}/compliance/opt-out","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/update-compliance-opt-out"},{"title":"Get monitoring settings","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/monitoring/settings","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-monitoring-settings"},{"title":"Pause or resume monitoring","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml put /api/registry/agents/{encodedUrl}/monitoring/pause","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/pause-or-resume-monitoring"},{"title":"Update monitoring interval","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml put /api/registry/agents/{encodedUrl}/monitoring/interval","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/update-monitoring-interval"},{"title":"Requeue agent for compliance heartbeat","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/agents/{encodedUrl}/monitoring/requeue","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/requeue-agent-for-compliance-heartbeat"},{"title":"Get per-step diagnostics for a compliance run","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/compliance/diagnostics","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-per-step-diagnostics-for-a-compliance-run"},{"title":"Get outbound request log","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/monitoring/requests","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-outbound-request-log"},{"title":"Refresh agent snapshot","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/agents/{encodedUrl}/refresh","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/refresh-agent-snapshot"},{"title":"Get agent auth status","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/auth-status","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-agent-auth-status"},{"title":"Connect agent credentials","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml put /api/registry/agents/{encodedUrl}/connect","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/connect-agent-credentials"},{"title":"Save OAuth 2.0 client-credentials for an agent","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml put /api/registry/agents/{encodedUrl}/oauth-client-credentials","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/save-oauth-20-client-credentials-for-an-agent"},{"title":"Dry-run the saved OAuth 2.0 client-credentials config","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/agents/{encodedUrl}/oauth-client-credentials/test","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/dry-run-the-saved-oauth-20-client-credentials-config"},{"title":"Get applicable storyboards for agent","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/registry/agents/{encodedUrl}/applicable-storyboards","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-applicable-storyboards-for-agent"},{"title":"List storyboards","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/storyboards","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/list-storyboards"},{"title":"Get storyboard detail","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/storyboards/{id}","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-storyboard-detail"},{"title":"Run a single storyboard step","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/agents/{encodedUrl}/storyboard/{storyboardId}/step/{stepId}","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/run-a-single-storyboard-step"},{"title":"Get first step preview","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/storyboards/{storyboardId}/first-step","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/get-first-step-preview"},{"title":"Run full storyboard evaluation","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/agents/{encodedUrl}/storyboard/{storyboardId}/run","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/run-full-storyboard-evaluation"},{"title":"Compare storyboard against reference agent","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/registry/agents/{encodedUrl}/storyboard/{storyboardId}/compare","href":"/dist/docs/3.1.30/registry/api-reference/agent-compliance/compare-storyboard-against-reference-agent"}]},{"group":"Member Agents","pages":[{"title":"List my registered agents","description":"List the agents registered on the caller's organization member profile. Returns the same `agents[]` array stored on the profile, in the order members registered them.","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml get /api/me/agents","href":"/dist/docs/3.1.30/registry/api-reference/member-agents/list-my-registered-agents"},{"title":"Register an agent","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/me/agents","href":"/dist/docs/3.1.30/registry/api-reference/member-agents/register-an-agent"},{"title":"Remove an agent","description":"Remove one registered agent identified by its `url`.\n\nA currently-`public` agent is reflected in the published `brand.json` manifest. To prevent the registry catalog and `brand.json` from silently disagreeing, this endpoint returns `409 unpublish_first` when the agent is `public` — `PATCH /api/me/agents/{url}` with `visibility: \"private\"` first (or call `DELETE /api/me/member-profile/agents/{index}/publish` to reconcile the manifest), then re-issue the DELETE.","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml delete /api/me/agents/{url}","href":"/dist/docs/3.1.30/registry/api-reference/member-agents/remove-an-agent"},{"title":"Update an agent","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml patch /api/me/agents/{url}","href":"/dist/docs/3.1.30/registry/api-reference/member-agents/update-an-agent"}]},{"group":"Onboarding","pages":[{"title":"Create or adopt my organization","deprecated":null,"version":null,"openapi":"https://raw.githubusercontent.com/adcontextprotocol/adcp/v3.1.30/static/openapi/registry.yaml post /api/organizations","href":"/dist/docs/3.1.30/registry/api-reference/onboarding/create-or-adopt-my-organization"}]}]},{"title":"GMSF Reference","href":"/dist/docs/3.1.30/reference/gmsf-reference"},{"title":"Media Channel Taxonomy","href":"/dist/docs/3.1.30/reference/media-channel-taxonomy"},{"title":"Measurement Taxonomy","sidebarTitle":"Measurement Taxonomy","href":"/dist/docs/3.1.30/measurement/taxonomy"},{"title":"Roadmap","href":"/dist/docs/3.1.30/reference/roadmap"},{"title":"Versions \u0026 Compatibility","sidebarTitle":"Versions","href":"/dist/docs/3.1.30/reference/versions"},{"title":"Versioning \u0026 Governance","href":"/dist/docs/3.1.30/reference/versioning"},{"title":"Specification lifecycle","sidebarTitle":"Specification lifecycle","href":"/dist/docs/3.1.30/reference/specification-lifecycle"},{"title":"URL Canonicalization","href":"/dist/docs/3.1.30/reference/url-canonicalization"},{"title":"Verifying protocol tarballs","href":"/dist/docs/3.1.30/reference/verifying-protocol-tarballs"},{"title":"Reference Test Vectors","sidebarTitle":"Reference test vectors","href":"/dist/docs/3.1.30/reference/test-vectors/index"},{"title":"Experimental Status","sidebarTitle":"Experimental status","href":"/dist/docs/3.1.30/reference/experimental-status"},{"title":"Schema Extensions","sidebarTitle":"Schema Extensions","href":"/dist/docs/3.1.30/reference/schema-extensions"},{"title":"v2 Sunset","sidebarTitle":"v2 sunset","href":"/dist/docs/3.1.30/reference/v2-sunset"},{"title":"Release Notes","href":"/dist/docs/3.1.30/reference/release-notes"},{"title":"Changelog","href":"/dist/docs/3.1.30/reference/changelog"},{"title":"Implementor FAQ","href":"/dist/docs/3.1.30/reference/implementor-faq"},{"title":"Glossary","href":"/dist/docs/3.1.30/reference/glossary"},{"title":"Working Group","href":"/dist/docs/3.1.30/community/working-group"},{"title":"Joining the Community Slack","href":"/dist/docs/3.1.30/community/joining-slack"}]},{"group":"Certification","expanded":false,"pages":[{"title":"AdCP certification program","sidebarTitle":"Overview","href":"/dist/docs/3.1.30/learning/overview"},{"title":"Instructional design framework","sidebarTitle":"How we teach","href":"/dist/docs/3.1.30/learning/instructional-design"},{"title":"Failure-mode competency scope","sidebarTitle":"Failure modes","href":"/dist/docs/3.1.30/learning/failure-mode-scope"},{"group":"Basics (free)","pages":[{"title":"A1: Why AdCP","sidebarTitle":"A1: Why AdCP","href":"/dist/docs/3.1.30/learning/foundations/a1-agentic-advertising"},{"title":"A2: Your first media buy","sidebarTitle":"A2: Your first media buy","href":"/dist/docs/3.1.30/learning/foundations/a2-protocol-architecture"},{"title":"A2B: Testing your first agent call","sidebarTitle":"A2B: Testing your first agent call","href":"/dist/docs/3.1.30/learning/foundations/a2b-testing-your-first-agent"},{"title":"A3: The AdCP landscape","sidebarTitle":"A3: The AdCP landscape","href":"/dist/docs/3.1.30/learning/foundations/a3-ecosystem-governance"}]},{"group":"Role tracks","pages":[{"title":"Publisher / seller track","sidebarTitle":"Publisher track","href":"/dist/docs/3.1.30/learning/tracks/publisher"},{"title":"Buyer / brand track","sidebarTitle":"Buyer track","href":"/dist/docs/3.1.30/learning/tracks/buyer"},{"title":"Platform / intermediary track","sidebarTitle":"Platform track","href":"/dist/docs/3.1.30/learning/tracks/platform"}]},{"group":"Specialist modules","pages":[{"title":"S1: Media buy mastery","sidebarTitle":"S1: Media buy","href":"/dist/docs/3.1.30/learning/specialist/media-buy"},{"title":"S2: Creative mastery","sidebarTitle":"S2: Creative","href":"/dist/docs/3.1.30/learning/specialist/creative"},{"title":"S3: Signals and audiences","sidebarTitle":"S3: Signals","href":"/dist/docs/3.1.30/learning/specialist/signals"},{"title":"S4: Governance","sidebarTitle":"S4: Governance","href":"/dist/docs/3.1.30/learning/specialist/governance"},{"title":"S5: Sponsored Intelligence","sidebarTitle":"S5: Sponsored Intelligence","href":"/dist/docs/3.1.30/learning/specialist/sponsored-intelligence"},{"title":"S6: Security","sidebarTitle":"S6: Security","href":"/dist/docs/3.1.30/learning/specialist/security"}]},{"group":"Policies","expanded":false,"pages":[{"title":"Nondiscrimination policy","sidebarTitle":"Nondiscrimination","href":"/dist/docs/3.1.30/learning/policies/nondiscrimination"},{"title":"Learner records and privacy","sidebarTitle":"Learner records","href":"/dist/docs/3.1.30/learning/policies/learner-records"},{"title":"Recertification and protocol-change updates","sidebarTitle":"Recertification","href":"/dist/docs/3.1.30/learning/policies/recertification"},{"title":"Complaints and grievances","sidebarTitle":"Complaints","href":"/dist/docs/3.1.30/learning/policies/complaints"},{"title":"Conflict of interest","sidebarTitle":"Conflict of interest","href":"/dist/docs/3.1.30/learning/policies/conflict-of-interest"},{"title":"Intellectual property","sidebarTitle":"Intellectual property","href":"/dist/docs/3.1.30/learning/policies/intellectual-property"},{"title":"Personnel qualifications","sidebarTitle":"Personnel qualifications","href":"/dist/docs/3.1.30/learning/policies/personnel-qualifications"},{"title":"Refund and cancellation","sidebarTitle":"Refund","href":"/dist/docs/3.1.30/learning/policies/refund"}]}]}]},{"version":"3.0","pages":[{"title":"3.0","href":"/dist/docs/3.0.28/registry"}]},{"version":"2.5 (archived)","pages":[{"title":"2.5 (archived)","href":"/dist/docs/2.5.3/reference/media-buy-quick-reference"}]}]},"title":"Register an agent - AdCP - Ad Context Protocol","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-B-Glu166.js","dist-zbf22OZA.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-Cs6nMGht.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","AssistantPageLink-C_fs-y5n.js"]}