Skip to main content
Discover a seller’s protocol support and capabilities across all AdCP protocols. This is the first call a buyer should make to understand what a seller supports. Response Time: ~2 seconds (configuration lookup) Purpose:
  • AdCP discovery - Does this agent support AdCP? Which versions?
  • Protocol support - Which domain protocols (media_buy, signals, governance, sponsored_intelligence, creative)?
  • Auth model - Does this seller trust the agent directly, or must each operator authenticate independently?
  • Detailed capabilities - Features, AXE integrations, geo targeting, portfolio
Request Schema: /schemas/v3/protocol/get-adcp-capabilities-request.json Response Schema: /schemas/v3/protocol/get-adcp-capabilities-response.json

Tool-Based Discovery

AdCP uses native MCP/A2A tool discovery. The presence of get_adcp_capabilities in an agent’s tool list indicates AdCP support.
This approach:
  • Uses standard MCP/A2A mechanisms (no custom extensions)
  • Always returns current capabilities (not stale metadata)
  • Single source of truth for all capability information
:::note The agent card extension (adcp-extension.json) has been removed in v3. Use tool-based discovery instead. :::

Request Parameters

Response Structure

adcp

Core AdCP protocol information:

supported_protocols

Array of domain protocols this seller supports:

account

Account and authentication capabilities. All sellers should declare this section — buyers read it before calling sync_accounts, list_accounts, or any authenticated task. Even simple publishers need account management to handle billing relationships and sandbox testing.

Auth models

Implicit accounts (require_operator_auth: false) — The seller trusts the agent’s identity claims. The agent authenticates once with its own bearer token, then calls sync_accounts to declare which brands and operators it represents. The seller provisions accounts based on the agent’s claims, optionally verifying operators against brand.json. All subsequent calls use the agent’s single credential and pass natural keys (brand + operator). Explicit accounts (require_operator_auth: true) — Each operator must authenticate with the seller directly. The agent obtains a credential per operator — via OAuth using authorization_endpoint, or out-of-band — opens a per-operator session, and discovers accounts via list_accounts. The buyer passes seller-assigned account_id values on all subsequent requests. For sandbox, the path follows the account model: explicit accounts (require_operator_auth: true) discover pre-existing test accounts via list_accounts; implicit accounts declare sandbox via sync_accounts with sandbox: true. See Accounts and Agents for full workflows and seller patterns for common combinations of auth model and billing support.

media_buy

Media-buy protocol capabilities. Only present if media_buy is in supported_protocols.

features

Optional media-buy features. If declared true, seller MUST honor requests using that feature.

execution

Technical execution capabilities:
creative_specs
targeting
Sellers that support a geographic targeting level SHOULD support both inclusion and exclusion at that level. For example, geo_metros.nielsen_dma: true SHOULD mean the seller supports both geo_metros and geo_metros_exclude with Nielsen DMA codes. If a seller only supports one direction (e.g., inclusion but not exclusion), it MUST return a validation error for unsupported fields rather than silently ignoring them. See Targeting Overlays for exclusion semantics. geo_proximity specifies which proximity targeting methods are supported: geo_metros specifies which metro classification systems are supported: geo_postal_areas specifies which postal code systems are supported:

conversion_tracking

Seller-level conversion tracking capabilities. Declares what the seller supports for kind: "event" optimization goals.

portfolio

Inventory portfolio information:

signals

Signals protocol capabilities. Only present if signals is in supported_protocols. Reserved for future use.

creative

Creative protocol capabilities. Only present if creative is in supported_protocols.

governance

Governance protocol capabilities. Only present if governance is in supported_protocols. Governance agents provide property data like compliance scores, brand suitability ratings, quality metrics, and sustainability metrics.

property_features

Array of property features this governance agent can evaluate: Example governance agent response:

extensions_supported

Array of extension namespaces this agent supports. Buyers can expect meaningful data in ext.{namespace} fields on responses from this agent. Extension schemas are published in the AdCP extension registry. When an agent declares support for an extension, buyers know to look for and process ext.{namespace} data in responses. Example:
This tells buyers:
  • Product responses may include ext.scope3 with Scope3 sustainability data
  • Creative policies may include ext.garm with GARM brand suitability categorizations
  • Responses may include ext.iab_tcf with IAB TCF consent data

The Capability Contract

If a capability is declared, the seller MUST honor it.
  • media_buy.execution.targeting.geo_postal_areas.us_zip: true → Buyer can send US ZIP codes, seller MUST honor them
  • media_buy.execution.targeting.geo_metros.nielsen_dma: true → Buyer can send DMA codes, seller MUST honor them
  • media_buy.features.content_standards: true → Seller MUST apply content standards when provided
  • AXE URL in media_buy.execution.axe_integrations → Seller can execute through that exchange
No silent ignoring. If a seller can’t support a capability, they should declare false or omit it.

Common Scenarios

Basic Capability Discovery

Check multi-protocol support

Filter sellers by capability

Use Capabilities to Build Targeting

Capabilities tell you what you CAN specify in create_media_buy targeting. Use required_geo_targeting to filter products to sellers that support specific geo targeting levels and systems:
Two models for product geography:
  • Digital inventory: Use countries + required_geo_targeting (capability), apply fine-grained targeting in create_media_buy
  • Local inventory: Use metros/regions (coverage) to find products with coverage in your target markets

Local Inventory Example (Radio, DOOH)

For locally-bound inventory, products ARE geographically specific. A radio station in NYC DMA only covers NYC.

Response Example

This tells buyers:
  • AdCP versions: Version 1
  • Protocols: Media buy only
  • Auth model: Agent-trusted (require_operator_auth: false) — authenticate once, declare brands via sync_accounts
  • Billing: Operator or agent billing; default is operator
  • Country targeting: Available (ISO 3166-1 alpha-2: US, GB, etc.)
  • Region targeting: Available (ISO 3166-2: US-NY, GB-SCT, etc.)
  • Metro targeting: Nielsen DMA only (US market)
  • Postal targeting: US ZIP, UK outward codes, Canadian FSA
  • Conversion tracking: Accepts purchase, lead, add_to_cart, view_content events from website/app; no multi-source dedup
  • Extensions: Scope3 sustainability data in ext.scope3

Multi-protocol agent

An agent can implement multiple protocols from a single endpoint. This is common for sellers that manage both media buying and creative generation — the buyer calls all tasks on the same URL.
This agent supports:
  • Media Buy Protocol: Product discovery, media buying, delivery reporting
  • Creative Protocol: Creative library management, AI-powered creative generation, variant-level delivery analytics via get_creative_delivery
  • Shared account: A single account established via sync_accounts applies to both protocols
When supported_protocols includes "creative", the buyer can call Creative Protocol tasks (list_creative_formats, sync_creatives, get_creative_delivery, etc.) on this agent. See Creative capabilities on sales agents.

Geo Standards Reference

Migration from list_authorized_properties (v2)

The list_authorized_properties task was removed in v3. If migrating from v2: New fields:
  • adcp.major_versions - Version compatibility
  • supported_protocols - Which domain protocols are supported
  • media_buy.features - Optional feature support
  • media_buy.execution.axe_integrations - Ad exchange support
  • media_buy.execution.creative_specs - VAST/MRAID versions
  • media_buy.execution.targeting - Geo targeting granularity

Error Handling

Best Practices

1. Cache Capabilities Capabilities rarely change. Cache results and use last_updated for staleness detection. 2. Check Protocol Support First Before accessing protocol-specific fields, verify the protocol is in supported_protocols. 3. Check Before Requesting Don’t send postal areas for a system the seller doesn’t support. Don’t request features the seller doesn’t support. 4. Fail Fast on Incompatibility If a seller doesn’t support required capabilities, skip them early rather than discovering failures later. 5. Read the Auth Model Before Proceeding Check account.require_operator_auth immediately after discovery. Agent-trusted and operator-scoped flows diverge significantly: the former uses a single credential for all brands and operators, the latter requires per-operator credentials and sessions. 6. Use Protocol Version for Routing Route requests to appropriate API versions based on adcp.major_versions.

Next Steps

After discovering capabilities:
  1. Set up accounts: Follow the auth model from account.require_operator_auth — see Accounts and Agents
  2. Filter products: Use get_products with capability-aware filters
  3. Validate properties: Fetch publisher adagents.json files for property definitions
  4. Create buys: Use create_media_buy with supported features

Learn More