@adcp/sdk API Reference - v14.0.0-beta.6
    Preparing search index...

    Interface GetSignalsRequest

    Request parameters for discovering and refining signals. Use signal_spec for natural language discovery, signal_refs for exact lookups, both together to refine previous results, or discovery_mode: 'wholesale' to enumerate the agent's full priced signals feed (symmetric with get_products buying_mode: 'wholesale'). The legacy signal_ids field is deprecated.

    interface GetSignalsRequest {
        adcp_version?: string;
        adcp_major_version?: number;
        discovery_mode?: "brief" | "wholesale";
        account?: AccountReference;
        signal_spec?: string;
        signal_refs?: SignalRef[];
        signal_ids?: SignalID[];
        destinations?: Destination[];
        countries?: string[];
        filters?: SignalFilters;
        fields?: (
            | "name"
            | "data_provider"
            | "description"
            | "range"
            | "pricing_options"
            | "signal_ref"
            | "signal_id"
            | "signal_agent_segment_id"
            | "value_type"
            | "categories"
            | "demographic_predicate"
            | "signal_type"
            | "coverage_percentage"
            | "deployments"
            | "taxonomy"
            | "data_sources"
            | "methodology"
            | "segmentation_criteria"
            | "criteria_url"
            | "refresh_cadence"
            | "lookback_window"
            | "onboarder"
            | "modeling"
            | "audience_expansion"
            | "device_expansion"
            | "countries"
            | "consent_basis"
            | "restricted_attributes"
            | "policy_categories"
            | "art9_basis"
            | "data_subject_rights"
            | "last_updated"
        )[];
        max_results?: number;
        pagination?: PaginationRequest;
        push_notification_config?: PushNotificationConfig;
        if_wholesale_feed_version?: string;
        if_pricing_version?: string;
        context?: ContextObject;
        ext?: ExtensionObject;
    }
    Index

    Properties

    adcp_version?: string

    Release-precision AdCP version (VERSION.RELEASE, e.g. "3.0", "3.1", "3.1-beta"). On a request: the buyer's release pin — the seller validates against its supported_versions and returns VERSION_UNSUPPORTED on cross-major mismatch, or downshifts to the highest supported release within the same major. On a response: the release the seller actually served — clients SHOULD validate the response against that release's schema, not against their pin. Patches are not negotiated; surface them as build_version on capabilities for operational visibility. When omitted, falls back to adcp_major_version (deprecated) or server default. Buyers SHOULD emit both adcp_version and adcp_major_version through 3.x to remain compatible with sellers that only read the legacy field. NORMALIZATION: SDKs that read full-semver values from bundle metadata (e.g. ComplianceIndex.published_version = "3.1.0-beta.1") MUST normalize to release-precision ("3.1-beta.1") before emitting on the wire — meta-field values are NOT valid wire values.

    adcp_major_version?: number

    DEPRECATED in favor of adcp_version (release-precision string). Servers MUST continue to honor this field through 3.x. Removed in 4.0. Original semantics: the AdCP major version the buyer's payloads conform to. Sellers validate against their supported major_versions and return VERSION_UNSUPPORTED if unsupported. When omitted, the seller assumes its highest supported version.

    discovery_mode?: "brief" | "wholesale"

    Declares caller intent for this request. 'brief' (default): semantic discovery — signal_spec, signal_refs, or legacy signal_ids is required and the agent performs inference/RAG. 'wholesale': raw wholesale signals feed enumeration — signal_spec, signal_refs, and signal_ids MUST NOT be provided and the agent returns its full priced signals feed, paginated, scoped by filters/account/destinations/countries when present. Sellers receiving requests from pre-v3.1 clients without discovery_mode MUST default to 'brief'. Timing semantics: 'wholesale' is a wholesale signals feed read — agents SHOULD respond synchronously and MUST NOT route a 'wholesale' request through the async/Submitted arm; partial completion is signalled via the response's incomplete[] field, not via a task-handoff envelope. Agents that do not implement wholesale enumeration MAY return INVALID_REQUEST for wholesale calls; callers SHOULD probe via get_adcp_capabilities (signals.discovery_modes) first.

    signal_spec?: string

    Natural language description of the desired signals. When used alone, enables semantic discovery. When combined with signal_refs, provides context for the agent but signal_ref matches are returned first. MUST NOT be provided when discovery_mode is 'wholesale'.

    signal_refs?: SignalRef[]

    Specific signals to look up by reference. Returns exact matches for the requested SignalRef values. When combined with signal_spec, these signals anchor the starting set and signal_spec guides adjustments. MUST NOT be provided when discovery_mode is 'wholesale'.

    signal_ids?: SignalID[]

    DEPRECATED. Use signal_refs instead. Legacy exact lookup field using SignalId objects. MUST NOT be provided when discovery_mode is 'wholesale'.

    destinations?: Destination[]

    Filter signals to those activatable on specific agents/platforms. When omitted, returns all signals available on the current agent. If the authenticated caller matches one of these destinations, activation keys will be included in the response.

    countries?: string[]

    Countries where signals will be used (ISO 3166-1 alpha-2 codes). When omitted, no geographic filter is applied.

    filters?: SignalFilters
    fields?: (
        | "name"
        | "data_provider"
        | "description"
        | "range"
        | "pricing_options"
        | "signal_ref"
        | "signal_id"
        | "signal_agent_segment_id"
        | "value_type"
        | "categories"
        | "demographic_predicate"
        | "signal_type"
        | "coverage_percentage"
        | "deployments"
        | "taxonomy"
        | "data_sources"
        | "methodology"
        | "segmentation_criteria"
        | "criteria_url"
        | "refresh_cadence"
        | "lookback_window"
        | "onboarder"
        | "modeling"
        | "audience_expansion"
        | "device_expansion"
        | "countries"
        | "consent_basis"
        | "restricted_attributes"
        | "policy_categories"
        | "art9_basis"
        | "data_subject_rights"
        | "last_updated"
    )[]

    Specific signal fields to include in the response, aligned with get_products.fields. Required identity and activation fields such as signal_ref or signal_id, signal_agent_segment_id, name, description, signal_type, coverage_percentage, and deployments are always included when required by the response schema. Use for progressive disclosure of rich signal-definition metadata: request fields such as demographic_predicate, taxonomy, data_sources, methodology, segmentation_criteria, criteria_url, refresh_cadence, lookback_window, onboarder, modeling, audience_expansion, device_expansion, countries, consent_basis, restricted_attributes, policy_categories, art9_basis, data_subject_rights, and last_updated when the buyer needs them inline. Omit for the agent's default discovery projection. Agents SHOULD honor requested fields for exact lookup, refinement, small custom-signal result sets, and private/source-native signals when available. fields is a projection request, not an entitlement grant; agents MAY redact requested definition fields unless the caller is authorized for the underlying lineage, methodology, and rights-routing metadata. When demographic_predicate, consent_basis, or art9_basis is projected for another provider's signal, the value remains provider-declared signal-definition posture; sellers and federating agents MUST NOT substitute their own semantics or processing basis. For broad discovery and wholesale pages, agents MAY return compact pointers instead of inlining large resources, especially when provider-published definitions can be resolved from signal_ref, taxonomy.ref, criteria_url, disclosure_url, and validators such as resolved URL plus catalog_etag, HTTP ETag/Last-Modified, or taxonomy.etag.

    max_results?: number

    DEPRECATED: Use pagination.max_results instead. When both fields are present, agents MUST honor pagination.max_results. When only this field is present without a pagination envelope, agents SHOULD treat it as the page size subject to a maximum of 100 results. This field will be removed in AdCP 4.0.

    1

    pagination?: PaginationRequest
    push_notification_config?: PushNotificationConfig
    if_wholesale_feed_version?: string

    Opaque wholesale_feed_version token returned by a prior wholesale-mode get_signals response from this agent. Only valid when discovery_mode is wholesale. When provided, the agent compares against its current wholesale signals feed version for the caller's cache_scope and MAY return an unchanged: true response (with signals omitted) if nothing has changed. The token is scope-keyed: callers cache (cache_scope, wholesale_feed_version) pairs. Scoping dimensions: (agent, discovery_mode, filters, destinations, countries) for cache_scope: 'public'; that tuple plus account_id for cache_scope: 'account'. pagination.cursor is NOT part of the scoping tuple. See specs/wholesale-feed-webhooks.md for the full sync pattern.

    if_pricing_version?: string

    Opaque pricing_version token from a prior get_signals response. MUST only be sent together with if_wholesale_feed_version — pricing version has no structural baseline to compare against on its own. Evaluation order: (1) if_wholesale_feed_version mismatch → agent returns the full payload; (2) if_wholesale_feed_version matches but if_pricing_version mismatches → agent returns the full payload so the caller sees updated pricing_options; (3) both match → agent MAY return unchanged: true. Agents that don't track pricing separately ignore this and fall back to if_wholesale_feed_version semantics.

    context?: ContextObject