@adcp/sdk API Reference - v10.0.1
    Preparing search index...

    Type Alias GetSignalsRequest

    GetSignalsRequest: { [k: string]: unknown } & {
        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?: (
            | "signal_ref"
            | "signal_id"
            | "signal_agent_segment_id"
            | "name"
            | "description"
            | "value_type"
            | "categories"
            | "range"
            | "signal_type"
            | "data_provider"
            | "coverage_percentage"
            | "deployments"
            | "pricing_options"
            | "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;
    }

    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.

    Type Declaration

    • [k: string]: unknown
    • Optionaladcp_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.

    • Optionaladcp_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.

    • Optionaldiscovery_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.

    • Optionalaccount?: AccountReference
    • Optionalsignal_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'.

    • Optionalsignal_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'.

    • Optionalsignal_ids?: SignalID[]

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

    • Optionaldestinations?: 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.

    • Optionalcountries?: string[]

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

    • Optionalfilters?: SignalFilters
    • Optionalfields?: (
          | "signal_ref"
          | "signal_id"
          | "signal_agent_segment_id"
          | "name"
          | "description"
          | "value_type"
          | "categories"
          | "range"
          | "signal_type"
          | "data_provider"
          | "coverage_percentage"
          | "deployments"
          | "pricing_options"
          | "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 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 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 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.

    • Optionalmax_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

    • Optionalpagination?: PaginationRequest
    • Optionalpush_notification_config?: PushNotificationConfig
    • Optionalif_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.

    • Optionalif_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.

    • Optionalcontext?: ContextObject
    • Optionalext?: ExtensionObject