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

    Interface SyncAudiencesRequest

    Request parameters for managing CRM-based audiences on an account with upsert semantics. Existing audiences matched by audience_id are updated, new ones are created. Members are specified as delta operations: add appends new members, remove drops existing ones. Recommend no more than 100,000 members per call; for larger lists, chunk and call incrementally using add/remove deltas. When delete_missing is true, buyer-managed audiences on the account not in this request are removed — do not combine with omitted audiences or all buyer-managed audiences will be deleted. When audiences is omitted, the call is discovery-only: it returns all audiences on the account without modification.

    interface SyncAudiencesRequest {
        adcp_version?: string;
        adcp_major_version?: number;
        idempotency_key: string;
        account: AccountReference;
        audiences?: {
            audience_id: string;
            name?: string;
            description?: string;
            audience_type?: "crm" | "suppression" | "lookalike_seed";
            tags?: string[];
            add?: AudienceMember[];
            remove?: AudienceMember[];
            delete?: boolean;
            consent_basis?: ConsentBasis;
        }[];
        delete_missing?: boolean;
        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.

    idempotency_key: string

    Client-generated unique key for at-most-once execution. audience_id gives resource-level dedup per audience, but the sync envelope emits audit events and may trigger downstream refreshes — this key prevents those side effects from firing twice on retry. Also serves as a request ID on discovery-only calls (when audiences is omitted). MUST be unique per (seller, request) pair. Use a fresh UUID v4 for each request.

    16

    255

    ^[A-Za-z0-9_.:-]{16,255}$

    audiences?: {
        audience_id: string;
        name?: string;
        description?: string;
        audience_type?: "crm" | "suppression" | "lookalike_seed";
        tags?: string[];
        add?: AudienceMember[];
        remove?: AudienceMember[];
        delete?: boolean;
        consent_basis?: ConsentBasis;
    }[]

    Audiences to sync (create or update). When omitted, the call is discovery-only and returns all existing audiences on the account without modification.

    Type Declaration

    • audience_id: string

      Buyer's identifier for this audience. Used to reference the audience in targeting overlays.

    • Optionalname?: string

      Human-readable name for this audience

    • Optionaldescription?: string

      Human-readable description of this audience's composition or purpose (e.g., 'High-value customers who purchased in the last 90 days').

    • Optionalaudience_type?: "crm" | "suppression" | "lookalike_seed"

      Intended use for this audience. 'crm': target these users. 'suppression': exclude these users from delivery. 'lookalike_seed': use as a seed for the seller's lookalike modeling. Sellers may handle audiences differently based on type (e.g., suppression lists bypass minimum size requirements on some platforms).

    • Optionaltags?: string[]

      Buyer-defined tags for organizing and filtering audiences (e.g., 'holiday_2026', 'high_ltv'). Tags are stored by the seller and returned in discovery-only calls.

    • Optionaladd?: AudienceMember[]

      Members to add to this audience. Hashed before sending — normalize emails to lowercase+trim, phones to E.164.

    • Optionalremove?: AudienceMember[]

      Members to remove from this audience. If the same identifier appears in both add and remove in a single request, remove takes precedence.

    • Optionaldelete?: boolean

      When true, delete this audience from the account entirely. All other fields on this audience object are ignored. Use this to delete a specific audience without affecting others.

    • Optionalconsent_basis?: ConsentBasis
    delete_missing?: boolean

    When true, buyer-managed audiences on the account not included in this sync will be removed. Does not affect seller-managed audiences. Do not combine with an omitted audiences array or all buyer-managed audiences will be deleted.

    context?: ContextObject
    ext?: ExtensionObject