Core AdCP protocol information
AdCP major versions supported by this seller. Major versions indicate breaking changes. When multiple versions are listed, the buyer declares its version during the capabilities handshake or via the adcp_version field on requests.
Which AdCP domain protocols this seller supports
OptionalaccountAccount management capabilities. Describes how accounts are established, what billing models are supported, and whether an account is required before browsing products.
Optionalrequire_operator_auth?: booleanWhether the seller requires operator-level credentials. When true (explicit accounts), operators authenticate independently with the seller and the buyer discovers accounts via list_accounts. When false (default, implicit accounts), the seller trusts the agent's identity claims — the agent authenticates once and declares brands/operators via sync_accounts.
Optionalauthorization_endpoint?: stringOAuth authorization endpoint for obtaining operator-level credentials. Present when the seller supports OAuth for operator authentication. The agent directs the operator to this URL to authenticate and obtain a bearer token. If absent and require_operator_auth is true, operators obtain credentials out-of-band (e.g., seller portal, API key).
Billing models this seller supports. operator: seller invoices the operator (agency or brand buying direct). agent: agent consolidates billing. advertiser: seller invoices the advertiser directly, even when a different operator places orders on their behalf. The buyer must pass one of these values in sync_accounts.
Optionalrequired_for_products?: booleanWhether an account reference is required for get_products. When true, the buyer must establish an account before browsing products. When false (default), the buyer can browse products without an account — useful for price comparison and discovery before committing to a seller.
Optionalaccount_financials?: booleanWhether this seller supports the get_account_financials task for querying account-level financial status (spend, credit, invoices). Only applicable to operator-billed accounts.
Optionalsandbox?: booleanWhether this seller supports sandbox accounts for testing. Buyers can provision a sandbox account via sync_accounts with sandbox: true, and all requests using that account_id will be treated as sandbox — no real platform calls or spend.
Optionalmedia_Media-buy protocol capabilities. Only present if media_buy is in supported_protocols.
Optionalsupported_pricing_models?: PricingModel[]Pricing models this seller supports across its product portfolio. Buyers can use this for pre-flight filtering before querying individual products. Individual products may support a subset of these models.
Optionalreporting?: {Seller-level reporting capabilities. Summarizes what reporting features are available across the seller's product portfolio. Individual products may vary — check product-level reporting_capabilities for specifics.
Optionalsupports_date_range?: booleanWhether any products support date range filtering (date_range_support: 'date_range'). When false, all products return lifetime-only data.
Optionalsupports_daily_breakdown?: booleanWhether delivery reporting includes daily_breakdown at the media buy and/or package level.
Optionalsupports_webhooks?: booleanWhether any products support webhook-based reporting notifications.
Optionalavailable_dimensions?: (Reporting dimensions available across the seller's portfolio. Individual products may support a subset. Dimensions geo, device_type, device_platform, audience, and placement are opt-in via reporting_dimensions on the delivery request. Dimensions creative, keyword, and catalog_item are included automatically when the seller supports them (not controlled by reporting_dimensions).
Optionalfeatures?: MediaBuyFeaturesOptionalexecution?: {Technical execution capabilities for media buying
Optionalaxe_integrations?: string[]Agentic ad exchange (AXE) integrations supported. URLs are canonical identifiers for exchanges this seller can execute through.
Optionalcreative_specs?: {Creative specification support
Optionalvast_versions?: string[]VAST versions supported for video creatives
Optionalmraid_versions?: string[]MRAID versions supported for rich media mobile creatives
Optionalvpaid?: booleanVPAID support for interactive video ads
Optionalsimid?: booleanSIMID support for interactive video ads
Optionaltargeting?: {Targeting capabilities. If declared true/supported, buyer can use these targeting parameters and seller MUST honor them.
Optionalgeo_countries?: booleanSupports country-level geo targeting using ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE')
Optionalgeo_regions?: booleanSupports region/state-level geo targeting using ISO 3166-2 subdivision codes (e.g., 'US-NY', 'GB-SCT', 'DE-BY')
Optionalgeo_metros?: {Metro area targeting support. Specifies which classification systems are supported.
Optionalnielsen_dma?: booleanSupports Nielsen DMA codes (US market, e.g., '501' for NYC)
Optionaluk_itl1?: booleanSupports UK ITL Level 1 regions
Optionaluk_itl2?: booleanSupports UK ITL Level 2 regions
Optionaleurostat_nuts2?: booleanSupports Eurostat NUTS Level 2 regions (EU)
Optionalgeo_postal_areas?: {Postal area targeting support. Specifies which postal code systems are supported. System names encode country and precision.
Optionalus_zip?: booleanUS 5-digit ZIP codes (e.g., '10001')
Optionalus_zip_plus_four?: booleanUS 9-digit ZIP+4 codes (e.g., '10001-1234')
Optionalgb_outward?: booleanUK postcode district / outward code (e.g., 'SW1', 'EC1')
Optionalgb_full?: booleanUK full postcode (e.g., 'SW1A 1AA')
Optionalca_fsa?: booleanCanadian Forward Sortation Area (e.g., 'K1A')
Optionalca_full?: booleanCanadian full postal code (e.g., 'K1A 0B1')
Optionalde_plz?: booleanGerman Postleitzahl, 5 digits (e.g., '10115')
Optionalfr_code_postal?: booleanFrench code postal, 5 digits (e.g., '75001')
Optionalau_postcode?: booleanAustralian postcode, 4 digits (e.g., '2000')
Optionalch_plz?: booleanSwiss Postleitzahl, 4 digits (e.g., '8000')
Optionalat_plz?: booleanAustrian Postleitzahl, 4 digits (e.g., '1010')
Optionalage_restriction?: { supported?: boolean; verification_methods?: AgeVerificationMethod[] }Age restriction capabilities for compliance (alcohol, gambling)
Optionalsupported?: booleanWhether seller supports age restrictions
Optionalverification_methods?: AgeVerificationMethod[]Age verification methods this seller supports
Optionaldevice_platform?: booleanWhether seller supports device platform targeting (Sec-CH-UA-Platform values)
Optionaldevice_type?: booleanWhether seller supports device type targeting (form factor: desktop, mobile, tablet, ctv, dooh, unknown). When true, seller supports both device_type (include) and device_type_exclude (exclude) in targeting overlays.
Optionallanguage?: booleanWhether seller supports language targeting (ISO 639-1 codes)
Optionalaudience_include?: booleanWhether seller supports audience_include in targeting overlays (requires features.audience_targeting)
Optionalaudience_exclude?: booleanWhether seller supports audience_exclude in targeting overlays (requires features.audience_targeting)
Optionalkeyword_targets?: { supported_match_types: ("broad" | "phrase" | "exact")[] }Keyword targeting capabilities. Presence indicates support for targeting_overlay.keyword_targets and keyword_targets_add/remove in update_media_buy.
Match types this seller supports for keyword targets. Sellers must reject goals with unsupported match types.
Optionalnegative_keywords?: { supported_match_types: ("broad" | "phrase" | "exact")[] }Negative keyword capabilities. Presence indicates support for targeting_overlay.negative_keywords and negative_keywords_add/remove in update_media_buy.
Match types this seller supports for negative keywords. Sellers must reject goals with unsupported match types.
Optionalgeo_proximity?: {Proximity targeting capabilities from arbitrary coordinates via targeting_overlay.geo_proximity.
Optionalradius?: booleanWhether seller supports simple radius targeting (distance circle from a point)
Optionaltravel_time?: booleanWhether seller supports travel time isochrone targeting (requires a routing engine)
Optionalgeometry?: booleanWhether seller supports pre-computed GeoJSON geometry (buyer provides the polygon)
Optionaltransport_modes?: TransportMode[]Transport modes supported for travel_time isochrones. Only relevant when travel_time is true.
Optionalaudience_targeting?: {Audience targeting capabilities. Only present when features.audience_targeting is true.
PII-derived identifier types accepted for audience matching. Buyers should only send identifiers the seller supports.
Optionalsupports_platform_customer_id?: booleanWhether the seller accepts the buyer's CRM/loyalty ID as a matchable identifier. Only applicable when the seller operates a closed ecosystem with a shared ID namespace (e.g., a retailer matching against their loyalty program). When true, buyers can include platform_customer_id values in AudienceMember.identifiers for matching against the seller's identity graph. Reporting on matched platform_customer_ids typically requires a clean room or the seller's own reporting surface.
Optionalsupported_uid_types?: UIDType[]Universal ID types accepted for audience matching (MAIDs, RampID, UID2, etc.). MAID support varies significantly by platform — check this field before sending uids with type: maid.
Minimum matched audience size required for targeting. Audiences below this threshold will have status: too_small. Varies by platform (100–1000 is typical).
Optionalmatching_latency_hours?: { min?: number; max?: number }Expected matching latency range in hours after upload. Use to calibrate polling cadence and set appropriate expectations before configuring push_notification_config.
Optionalconversion_tracking?: {Seller-level conversion tracking capabilities. Only present when features.conversion_tracking is true.
Optionalmulti_source_event_dedup?: booleanWhether this seller can deduplicate conversion events across multiple event sources within a single goal. When true, the seller honors the deduplication semantics in optimization_goals event_sources arrays — the same event_id from multiple sources counts once. When false or absent, buyers should use a single event source per goal; multi-source arrays will be treated as first-source-wins. Most social platforms cannot deduplicate across independently-managed pixel and CAPI sources.
Optionalsupported_event_types?: EventType[]Event types this seller can track and attribute. If omitted, all standard event types are supported.
Optionalsupported_uid_types?: UIDType[]Universal ID types accepted for user matching
Optionalsupported_hashed_identifiers?: ("hashed_email" | "hashed_phone")[]Hashed PII types accepted for user matching. Buyers must hash before sending (SHA-256, normalized).
Optionalsupported_action_sources?: ActionSource[]Action sources this seller accepts events from
Optionalattribution_windows?: { event_type?: EventType; post_click: Duration[]; post_view?: Duration[] }[]Attribution windows available from this seller. Single-element arrays indicate fixed windows; multi-element arrays indicate configurable options the buyer can choose from via attribution_window on optimization goals.
Optionalportfolio?: {Information about the seller's media inventory portfolio
Publisher domains this seller is authorized to represent. Buyers should fetch each publisher's adagents.json for property definitions.
Optionalprimary_channels?: MediaChannel[]Primary advertising channels in this portfolio
Optionalprimary_countries?: string[]Primary countries (ISO 3166-1 alpha-2) where inventory is concentrated
Optionaldescription?: stringMarkdown-formatted description of the inventory portfolio
Optionaladvertising_policies?: stringAdvertising content policies, restrictions, and guidelines
OptionalsignalsSignals protocol capabilities. Only present if signals is in supported_protocols.
Optionaldata_provider_domains?: string[]Data provider domains this signals agent is authorized to resell. Buyers should fetch each data provider's adagents.json for signal catalog definitions and to verify authorization.
Optionalfeatures?: { catalog_signals?: boolean; [k: string]: boolean | undefined }Optional signals features supported
Optionalcatalog_signals?: booleanSupports signals from data provider catalogs with structured signal_id references
OptionalgovernanceGovernance protocol capabilities. Only present if governance is in supported_protocols. Governance agents provide property and creative data like compliance scores, brand safety ratings, sustainability metrics, and creative quality assessments.
Optionalproperty_features?: {Property features this governance agent can evaluate. Each feature describes a score, rating, or certification the agent can provide for properties.
Optionalcreative_features?: {Creative features this governance agent can evaluate. Each feature describes a score, rating, or assessment the agent can provide for creatives (e.g., security scanning, creative quality, content categorization).
Optionalsponsored_Sponsored Intelligence protocol capabilities. Only present if sponsored_intelligence is in supported_protocols. SI agents handle conversational brand experiences.
SI agent endpoint configuration
Available protocol transports. Hosts select based on their capabilities.
Optionalpreferred?: "mcp" | "a2a"Preferred transport when host supports multiple
Optionalbrand_url?: stringURL to brand.json with colors, fonts, logos, tone
OptionalbrandBrand protocol capabilities. Only present if brand is in supported_protocols. Brand agents provide identity data (logos, colors, tone, assets) and optionally rights clearance for licensable content (talent, music, stock media).
Optionalidentity?: booleanSupports get_brand_identity for retrieving brand identity data
Optionalrights?: booleanSupports get_rights and acquire_rights for rights discovery and clearance
Optionalright_types?: RightType[]Types of rights available through this agent
Optionalavailable_uses?: RightUse[]Rights uses available across this agent's roster
Optionalgeneration_providers?: string[]LLM/generation providers this agent can issue credentials for
Optionaldescription?: stringDescription of the agent's brand protocol capabilities
OptionalcreativeCreative protocol capabilities. Only present if creative is in supported_protocols.
Optionalsupports_compliance?: booleanWhen true, this creative agent can process briefs with compliance requirements (required_disclosures, prohibited_claims) and will validate that disclosures can be satisfied by the target format.
Optionalhas_creative_library?: booleanWhen true, this agent hosts a creative library and supports list_creatives and creative_id references in build_creative. Creative agents with a library should also implement the accounts protocol (sync_accounts / list_accounts) so buyers can establish access.
Optionalsupports_generation?: booleanWhen true, this agent can generate creatives from natural language briefs via build_creative. The buyer provides a message with creative direction, and the agent produces a manifest with generated assets. When false, build_creative only supports transformation or library retrieval.
Optionalsupports_transformation?: booleanWhen true, this agent can transform or resize existing manifests via build_creative. The buyer provides a creative_manifest and a target_format_id, and the agent adapts the creative to the new format.
Optionalextensions_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.
Optionallast_ISO 8601 timestamp of when capabilities were last updated. Buyers can use this for cache invalidation.
OptionalerrorsTask-specific errors and warnings
OptionalcontextOptionalext
Response payload for get_adcp_capabilities task. Protocol-level capability discovery across all AdCP protocols. Each domain protocol has its own capability section.