@adcp/client API Reference - v4.19.0
    Preparing search index...

    Interface GetAdCPCapabilitiesResponse

    Response payload for get_adcp_capabilities task. Protocol-level capability discovery across all AdCP protocols. Each domain protocol has its own capability section.

    interface GetAdCPCapabilitiesResponse {
        adcp: { major_versions: number[] };
        supported_protocols: (
            | "brand"
            | "creative"
            | "sponsored_intelligence"
            | "signals"
            | "governance"
            | "media_buy"
        )[];
        account?: {
            require_operator_auth?: boolean;
            authorization_endpoint?: string;
            supported_billing: ("operator" | "agent" | "advertiser")[];
            required_for_products?: boolean;
            account_financials?: boolean;
            sandbox?: boolean;
        };
        media_buy?: {
            supported_pricing_models?: PricingModel[];
            reporting?: {
                supports_date_range?: boolean;
                supports_daily_breakdown?: boolean;
                supports_webhooks?: boolean;
                available_dimensions?: (
                    | "creative"
                    | "audience"
                    | "device_platform"
                    | "device_type"
                    | "keyword"
                    | "geo"
                    | "placement"
                    | "catalog_item"
                )[];
            };
            features?: MediaBuyFeatures;
            execution?: {
                axe_integrations?: string[];
                creative_specs?: {
                    vast_versions?: string[];
                    mraid_versions?: string[];
                    vpaid?: boolean;
                    simid?: boolean;
                };
                targeting?: {
                    geo_countries?: boolean;
                    geo_regions?: boolean;
                    geo_metros?: {
                        nielsen_dma?: boolean;
                        uk_itl1?: boolean;
                        uk_itl2?: boolean;
                        eurostat_nuts2?: boolean;
                    };
                    geo_postal_areas?: {
                        us_zip?: boolean;
                        us_zip_plus_four?: boolean;
                        gb_outward?: boolean;
                        gb_full?: boolean;
                        ca_fsa?: boolean;
                        ca_full?: boolean;
                        de_plz?: boolean;
                        fr_code_postal?: boolean;
                        au_postcode?: boolean;
                        ch_plz?: boolean;
                        at_plz?: boolean;
                    };
                    age_restriction?: {
                        supported?: boolean;
                        verification_methods?: AgeVerificationMethod[];
                    };
                    device_platform?: boolean;
                    device_type?: boolean;
                    language?: boolean;
                    audience_include?: boolean;
                    audience_exclude?: boolean;
                    keyword_targets?: {
                        supported_match_types: ("broad" | "phrase" | "exact")[];
                    };
                    negative_keywords?: {
                        supported_match_types: ("broad" | "phrase" | "exact")[];
                    };
                    geo_proximity?: {
                        radius?: boolean;
                        travel_time?: boolean;
                        geometry?: boolean;
                        transport_modes?: TransportMode[];
                    };
                };
            };
            audience_targeting?: {
                supported_identifier_types: ("hashed_email" | "hashed_phone")[];
                supports_platform_customer_id?: boolean;
                supported_uid_types?: UIDType[];
                minimum_audience_size: number;
                matching_latency_hours?: { min?: number; max?: number };
            };
            conversion_tracking?: {
                multi_source_event_dedup?: boolean;
                supported_event_types?: EventType[];
                supported_uid_types?: UIDType[];
                supported_hashed_identifiers?: ("hashed_email" | "hashed_phone")[];
                supported_action_sources?: ActionSource[];
                attribution_windows?: {
                    event_type?: EventType;
                    post_click: Duration[];
                    post_view?: Duration[];
                }[];
            };
            portfolio?: {
                publisher_domains: string[];
                primary_channels?: MediaChannel[];
                primary_countries?: string[];
                description?: string;
                advertising_policies?: string;
            };
        };
        signals?: {
            data_provider_domains?: string[];
            features?: { catalog_signals?: boolean; [k: string]: boolean
            | undefined };
        };
        governance?: {
            property_features?: {
                feature_id: string;
                type: "binary"
                | "categorical"
                | "quantitative";
                range?: { min: number; max: number };
                categories?: string[];
                description?: string;
                methodology_url?: string;
            }[];
            creative_features?: {
                feature_id: string;
                type: "binary"
                | "categorical"
                | "quantitative";
                range?: { min: number; max: number };
                categories?: string[];
                description?: string;
                methodology_url?: string;
            }[];
        };
        sponsored_intelligence?: {
            endpoint: {
                transports: { type: "mcp"
                | "a2a"; url: string }[];
                preferred?: "mcp" | "a2a";
            };
            capabilities: SICapabilities;
            brand_url?: string;
        };
        brand?: {
            identity?: boolean;
            rights?: boolean;
            right_types?: RightType[];
            available_uses?: RightUse[];
            generation_providers?: string[];
            description?: string;
        };
        creative?: {
            supports_compliance?: boolean;
            has_creative_library?: boolean;
            supports_generation?: boolean;
            supports_transformation?: boolean;
        };
        extensions_supported?: string[];
        last_updated?: string;
        errors?: Error[];
        context?: ContextObject;
        ext?: ExtensionObject;
    }
    Index

    Properties

    adcp: { major_versions: number[] }

    Core AdCP protocol information

    Type Declaration

    • major_versions: number[]

      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.

    supported_protocols: (
        | "brand"
        | "creative"
        | "sponsored_intelligence"
        | "signals"
        | "governance"
        | "media_buy"
    )[]

    Which AdCP domain protocols this seller supports

    account?: {
        require_operator_auth?: boolean;
        authorization_endpoint?: string;
        supported_billing: ("operator" | "agent" | "advertiser")[];
        required_for_products?: boolean;
        account_financials?: boolean;
        sandbox?: boolean;
    }

    Account management capabilities. Describes how accounts are established, what billing models are supported, and whether an account is required before browsing products.

    Type Declaration

    • Optionalrequire_operator_auth?: boolean

      Whether 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?: string

      OAuth 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).

    • supported_billing: ("operator" | "agent" | "advertiser")[]

      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?: boolean

      Whether 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?: boolean

      Whether this seller supports the get_account_financials task for querying account-level financial status (spend, credit, invoices). Only applicable to operator-billed accounts.

    • Optionalsandbox?: boolean

      Whether 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.

    media_buy?: {
        supported_pricing_models?: PricingModel[];
        reporting?: {
            supports_date_range?: boolean;
            supports_daily_breakdown?: boolean;
            supports_webhooks?: boolean;
            available_dimensions?: (
                | "creative"
                | "audience"
                | "device_platform"
                | "device_type"
                | "keyword"
                | "geo"
                | "placement"
                | "catalog_item"
            )[];
        };
        features?: MediaBuyFeatures;
        execution?: {
            axe_integrations?: string[];
            creative_specs?: {
                vast_versions?: string[];
                mraid_versions?: string[];
                vpaid?: boolean;
                simid?: boolean;
            };
            targeting?: {
                geo_countries?: boolean;
                geo_regions?: boolean;
                geo_metros?: {
                    nielsen_dma?: boolean;
                    uk_itl1?: boolean;
                    uk_itl2?: boolean;
                    eurostat_nuts2?: boolean;
                };
                geo_postal_areas?: {
                    us_zip?: boolean;
                    us_zip_plus_four?: boolean;
                    gb_outward?: boolean;
                    gb_full?: boolean;
                    ca_fsa?: boolean;
                    ca_full?: boolean;
                    de_plz?: boolean;
                    fr_code_postal?: boolean;
                    au_postcode?: boolean;
                    ch_plz?: boolean;
                    at_plz?: boolean;
                };
                age_restriction?: {
                    supported?: boolean;
                    verification_methods?: AgeVerificationMethod[];
                };
                device_platform?: boolean;
                device_type?: boolean;
                language?: boolean;
                audience_include?: boolean;
                audience_exclude?: boolean;
                keyword_targets?: {
                    supported_match_types: ("broad" | "phrase" | "exact")[];
                };
                negative_keywords?: {
                    supported_match_types: ("broad" | "phrase" | "exact")[];
                };
                geo_proximity?: {
                    radius?: boolean;
                    travel_time?: boolean;
                    geometry?: boolean;
                    transport_modes?: TransportMode[];
                };
            };
        };
        audience_targeting?: {
            supported_identifier_types: ("hashed_email" | "hashed_phone")[];
            supports_platform_customer_id?: boolean;
            supported_uid_types?: UIDType[];
            minimum_audience_size: number;
            matching_latency_hours?: { min?: number; max?: number };
        };
        conversion_tracking?: {
            multi_source_event_dedup?: boolean;
            supported_event_types?: EventType[];
            supported_uid_types?: UIDType[];
            supported_hashed_identifiers?: ("hashed_email" | "hashed_phone")[];
            supported_action_sources?: ActionSource[];
            attribution_windows?: {
                event_type?: EventType;
                post_click: Duration[];
                post_view?: Duration[];
            }[];
        };
        portfolio?: {
            publisher_domains: string[];
            primary_channels?: MediaChannel[];
            primary_countries?: string[];
            description?: string;
            advertising_policies?: string;
        };
    }

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

    Type Declaration

    • 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?: {
          supports_date_range?: boolean;
          supports_daily_breakdown?: boolean;
          supports_webhooks?: boolean;
          available_dimensions?: (
              | "creative"
              | "audience"
              | "device_platform"
              | "device_type"
              | "keyword"
              | "geo"
              | "placement"
              | "catalog_item"
          )[];
      }

      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?: boolean

        Whether any products support date range filtering (date_range_support: 'date_range'). When false, all products return lifetime-only data.

      • Optionalsupports_daily_breakdown?: boolean

        Whether delivery reporting includes daily_breakdown at the media buy and/or package level.

      • Optionalsupports_webhooks?: boolean

        Whether any products support webhook-based reporting notifications.

      • Optionalavailable_dimensions?: (
            | "creative"
            | "audience"
            | "device_platform"
            | "device_type"
            | "keyword"
            | "geo"
            | "placement"
            | "catalog_item"
        )[]

        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?: MediaBuyFeatures
    • Optionalexecution?: {
          axe_integrations?: string[];
          creative_specs?: {
              vast_versions?: string[];
              mraid_versions?: string[];
              vpaid?: boolean;
              simid?: boolean;
          };
          targeting?: {
              geo_countries?: boolean;
              geo_regions?: boolean;
              geo_metros?: {
                  nielsen_dma?: boolean;
                  uk_itl1?: boolean;
                  uk_itl2?: boolean;
                  eurostat_nuts2?: boolean;
              };
              geo_postal_areas?: {
                  us_zip?: boolean;
                  us_zip_plus_four?: boolean;
                  gb_outward?: boolean;
                  gb_full?: boolean;
                  ca_fsa?: boolean;
                  ca_full?: boolean;
                  de_plz?: boolean;
                  fr_code_postal?: boolean;
                  au_postcode?: boolean;
                  ch_plz?: boolean;
                  at_plz?: boolean;
              };
              age_restriction?: {
                  supported?: boolean;
                  verification_methods?: AgeVerificationMethod[];
              };
              device_platform?: boolean;
              device_type?: boolean;
              language?: boolean;
              audience_include?: boolean;
              audience_exclude?: boolean;
              keyword_targets?: {
                  supported_match_types: ("broad" | "phrase" | "exact")[];
              };
              negative_keywords?: {
                  supported_match_types: ("broad" | "phrase" | "exact")[];
              };
              geo_proximity?: {
                  radius?: boolean;
                  travel_time?: boolean;
                  geometry?: boolean;
                  transport_modes?: TransportMode[];
              };
          };
      }

      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?: {
            vast_versions?: string[];
            mraid_versions?: string[];
            vpaid?: boolean;
            simid?: boolean;
        }

        Creative specification support

        • Optionalvast_versions?: string[]

          VAST versions supported for video creatives

        • Optionalmraid_versions?: string[]

          MRAID versions supported for rich media mobile creatives

        • Optionalvpaid?: boolean

          VPAID support for interactive video ads

        • Optionalsimid?: boolean

          SIMID support for interactive video ads

      • Optionaltargeting?: {
            geo_countries?: boolean;
            geo_regions?: boolean;
            geo_metros?: {
                nielsen_dma?: boolean;
                uk_itl1?: boolean;
                uk_itl2?: boolean;
                eurostat_nuts2?: boolean;
            };
            geo_postal_areas?: {
                us_zip?: boolean;
                us_zip_plus_four?: boolean;
                gb_outward?: boolean;
                gb_full?: boolean;
                ca_fsa?: boolean;
                ca_full?: boolean;
                de_plz?: boolean;
                fr_code_postal?: boolean;
                au_postcode?: boolean;
                ch_plz?: boolean;
                at_plz?: boolean;
            };
            age_restriction?: {
                supported?: boolean;
                verification_methods?: AgeVerificationMethod[];
            };
            device_platform?: boolean;
            device_type?: boolean;
            language?: boolean;
            audience_include?: boolean;
            audience_exclude?: boolean;
            keyword_targets?: {
                supported_match_types: ("broad" | "phrase" | "exact")[];
            };
            negative_keywords?: {
                supported_match_types: ("broad" | "phrase" | "exact")[];
            };
            geo_proximity?: {
                radius?: boolean;
                travel_time?: boolean;
                geometry?: boolean;
                transport_modes?: TransportMode[];
            };
        }

        Targeting capabilities. If declared true/supported, buyer can use these targeting parameters and seller MUST honor them.

        • Optionalgeo_countries?: boolean

          Supports country-level geo targeting using ISO 3166-1 alpha-2 codes (e.g., 'US', 'GB', 'DE')

        • Optionalgeo_regions?: boolean

          Supports region/state-level geo targeting using ISO 3166-2 subdivision codes (e.g., 'US-NY', 'GB-SCT', 'DE-BY')

        • Optionalgeo_metros?: {
              nielsen_dma?: boolean;
              uk_itl1?: boolean;
              uk_itl2?: boolean;
              eurostat_nuts2?: boolean;
          }

          Metro area targeting support. Specifies which classification systems are supported.

          • Optionalnielsen_dma?: boolean

            Supports Nielsen DMA codes (US market, e.g., '501' for NYC)

          • Optionaluk_itl1?: boolean

            Supports UK ITL Level 1 regions

          • Optionaluk_itl2?: boolean

            Supports UK ITL Level 2 regions

          • Optionaleurostat_nuts2?: boolean

            Supports Eurostat NUTS Level 2 regions (EU)

        • Optionalgeo_postal_areas?: {
              us_zip?: boolean;
              us_zip_plus_four?: boolean;
              gb_outward?: boolean;
              gb_full?: boolean;
              ca_fsa?: boolean;
              ca_full?: boolean;
              de_plz?: boolean;
              fr_code_postal?: boolean;
              au_postcode?: boolean;
              ch_plz?: boolean;
              at_plz?: boolean;
          }

          Postal area targeting support. Specifies which postal code systems are supported. System names encode country and precision.

          • Optionalus_zip?: boolean

            US 5-digit ZIP codes (e.g., '10001')

          • Optionalus_zip_plus_four?: boolean

            US 9-digit ZIP+4 codes (e.g., '10001-1234')

          • Optionalgb_outward?: boolean

            UK postcode district / outward code (e.g., 'SW1', 'EC1')

          • Optionalgb_full?: boolean

            UK full postcode (e.g., 'SW1A 1AA')

          • Optionalca_fsa?: boolean

            Canadian Forward Sortation Area (e.g., 'K1A')

          • Optionalca_full?: boolean

            Canadian full postal code (e.g., 'K1A 0B1')

          • Optionalde_plz?: boolean

            German Postleitzahl, 5 digits (e.g., '10115')

          • Optionalfr_code_postal?: boolean

            French code postal, 5 digits (e.g., '75001')

          • Optionalau_postcode?: boolean

            Australian postcode, 4 digits (e.g., '2000')

          • Optionalch_plz?: boolean

            Swiss Postleitzahl, 4 digits (e.g., '8000')

          • Optionalat_plz?: boolean

            Austrian Postleitzahl, 4 digits (e.g., '1010')

        • Optionalage_restriction?: { supported?: boolean; verification_methods?: AgeVerificationMethod[] }

          Age restriction capabilities for compliance (alcohol, gambling)

          • Optionalsupported?: boolean

            Whether seller supports age restrictions

          • Optionalverification_methods?: AgeVerificationMethod[]

            Age verification methods this seller supports

        • Optionaldevice_platform?: boolean

          Whether seller supports device platform targeting (Sec-CH-UA-Platform values)

        • Optionaldevice_type?: boolean

          Whether 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?: boolean

          Whether seller supports language targeting (ISO 639-1 codes)

        • Optionalaudience_include?: boolean

          Whether seller supports audience_include in targeting overlays (requires features.audience_targeting)

        • Optionalaudience_exclude?: boolean

          Whether 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.

          • supported_match_types: ("broad" | "phrase" | "exact")[]

            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.

          • supported_match_types: ("broad" | "phrase" | "exact")[]

            Match types this seller supports for negative keywords. Sellers must reject goals with unsupported match types.

        • Optionalgeo_proximity?: {
              radius?: boolean;
              travel_time?: boolean;
              geometry?: boolean;
              transport_modes?: TransportMode[];
          }

          Proximity targeting capabilities from arbitrary coordinates via targeting_overlay.geo_proximity.

          • Optionalradius?: boolean

            Whether seller supports simple radius targeting (distance circle from a point)

          • Optionaltravel_time?: boolean

            Whether seller supports travel time isochrone targeting (requires a routing engine)

          • Optionalgeometry?: boolean

            Whether 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?: {
          supported_identifier_types: ("hashed_email" | "hashed_phone")[];
          supports_platform_customer_id?: boolean;
          supported_uid_types?: UIDType[];
          minimum_audience_size: number;
          matching_latency_hours?: { min?: number; max?: number };
      }

      Audience targeting capabilities. Only present when features.audience_targeting is true.

      • supported_identifier_types: ("hashed_email" | "hashed_phone")[]

        PII-derived identifier types accepted for audience matching. Buyers should only send identifiers the seller supports.

      • Optionalsupports_platform_customer_id?: boolean

        Whether 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_audience_size: number

        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?: {
          multi_source_event_dedup?: boolean;
          supported_event_types?: EventType[];
          supported_uid_types?: UIDType[];
          supported_hashed_identifiers?: ("hashed_email" | "hashed_phone")[];
          supported_action_sources?: ActionSource[];
          attribution_windows?: {
              event_type?: EventType;
              post_click: Duration[];
              post_view?: Duration[];
          }[];
      }

      Seller-level conversion tracking capabilities. Only present when features.conversion_tracking is true.

      • Optionalmulti_source_event_dedup?: boolean

        Whether 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?: {
          publisher_domains: string[];
          primary_channels?: MediaChannel[];
          primary_countries?: string[];
          description?: string;
          advertising_policies?: string;
      }

      Information about the seller's media inventory portfolio

      • publisher_domains: string[]

        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?: string

        Markdown-formatted description of the inventory portfolio

      • Optionaladvertising_policies?: string

        Advertising content policies, restrictions, and guidelines

    signals?: {
        data_provider_domains?: string[];
        features?: { catalog_signals?: boolean; [k: string]: boolean | undefined };
    }

    Signals protocol capabilities. Only present if signals is in supported_protocols.

    Type Declaration

    • 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?: boolean

        Supports signals from data provider catalogs with structured signal_id references

    governance?: {
        property_features?: {
            feature_id: string;
            type: "binary" | "categorical" | "quantitative";
            range?: { min: number; max: number };
            categories?: string[];
            description?: string;
            methodology_url?: string;
        }[];
        creative_features?: {
            feature_id: string;
            type: "binary"
            | "categorical"
            | "quantitative";
            range?: { min: number; max: number };
            categories?: string[];
            description?: string;
            methodology_url?: string;
        }[];
    }

    Governance 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.

    Type Declaration

    • Optionalproperty_features?: {
          feature_id: string;
          type: "binary" | "categorical" | "quantitative";
          range?: { min: number; max: number };
          categories?: string[];
          description?: string;
          methodology_url?: string;
      }[]

      Property features this governance agent can evaluate. Each feature describes a score, rating, or certification the agent can provide for properties.

    • Optionalcreative_features?: {
          feature_id: string;
          type: "binary" | "categorical" | "quantitative";
          range?: { min: number; max: number };
          categories?: string[];
          description?: string;
          methodology_url?: string;
      }[]

      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).

    sponsored_intelligence?: {
        endpoint: {
            transports: { type: "mcp" | "a2a"; url: string }[];
            preferred?: "mcp" | "a2a";
        };
        capabilities: SICapabilities;
        brand_url?: string;
    }

    Sponsored Intelligence protocol capabilities. Only present if sponsored_intelligence is in supported_protocols. SI agents handle conversational brand experiences.

    Type Declaration

    • endpoint: {
          transports: { type: "mcp" | "a2a"; url: string }[];
          preferred?: "mcp" | "a2a";
      }

      SI agent endpoint configuration

      • transports: { type: "mcp" | "a2a"; url: string }[]

        Available protocol transports. Hosts select based on their capabilities.

      • Optionalpreferred?: "mcp" | "a2a"

        Preferred transport when host supports multiple

    • capabilities: SICapabilities
    • Optionalbrand_url?: string

      URL to brand.json with colors, fonts, logos, tone

    brand?: {
        identity?: boolean;
        rights?: boolean;
        right_types?: RightType[];
        available_uses?: RightUse[];
        generation_providers?: string[];
        description?: string;
    }

    Brand 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).

    Type Declaration

    • Optionalidentity?: boolean

      Supports get_brand_identity for retrieving brand identity data

    • Optionalrights?: boolean

      Supports 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?: string

      Description of the agent's brand protocol capabilities

    creative?: {
        supports_compliance?: boolean;
        has_creative_library?: boolean;
        supports_generation?: boolean;
        supports_transformation?: boolean;
    }

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

    Type Declaration

    • Optionalsupports_compliance?: boolean

      When 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?: boolean

      When 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?: boolean

      When 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?: boolean

      When 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.

    extensions_supported?: string[]

    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.

    last_updated?: string

    ISO 8601 timestamp of when capabilities were last updated. Buyers can use this for cache invalidation.

    errors?: Error[]

    Task-specific errors and warnings

    context?: ContextObject
    ext?: ExtensionObject