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

    Interface ListCreativesResponse

    Response from creative library query with filtered results, metadata, and optional enriched data

    interface ListCreativesResponse {
        context_id?: string;
        context?: ContextObject;
        task_id?: string;
        status: TaskStatus;
        message?: string;
        timestamp?: string;
        replayed?: boolean;
        adcp_error?: Error;
        push_notification_config?: PushNotificationConfig;
        governance_context?: string;
        payload?: {};
        adcp_version?: string;
        adcp_major_version?: number;
        query_summary: {
            total_matching: number;
            returned: number;
            filters_applied?: string[];
            sort_applied?: { field?: string; direction?: SortDirection };
        };
        pagination: PaginationResponse;
        creatives: {
            creative_id: string;
            account?: Account;
            name: string;
            format_id: FormatReferenceStructuredObject;
            status: CreativeStatus;
            created_date: string;
            updated_date: string;
            assets?: { [k: string]: AssetVariant
            | AssetVariant[] };
            tags?: string[];
            concept_id?: string;
            concept_name?: string;
            variables?: CreativeVariable[];
            assignments?: {
                assignment_count: number;
                assigned_packages?: { package_id: string; assigned_date: string }[];
            };
            snapshot?: {
                as_of: string;
                staleness_seconds: number;
                impressions: number;
                last_served?: string;
            };
            snapshot_unavailable_reason?: SnapshotUnavailableReason;
            items?: CreativeItem[];
            pricing_options?: VendorPricingOption[];
            purge?: { kind: "soft"; at: string; reason_code: CreativeEventReasonCode };
            webhook_activity?: WebhookActivityRecord[];
        }[];
        format_summary?: { [k: string]: number
        | undefined };
        status_summary?: {
            processing?: number;
            approved?: number;
            pending_review?: number;
            rejected?: number;
            archived?: number;
        };
        errors?: Error[];
        sandbox?: boolean;
        ext?: ExtensionObject;
    }
    Index

    Properties

    context_id?: string

    Session/conversation identifier for tracking related operations across multiple task invocations. Managed by the protocol layer to maintain conversational context. Distinct from context (per-request opaque echo, see below).

    context?: ContextObject
    task_id?: string

    Unique identifier for tracking asynchronous operations. Present when a task requires extended processing time. Used to query task status and retrieve results when complete.

    status: TaskStatus
    message?: string

    Human-readable summary of the task result. Provides natural language explanation of what happened, suitable for display to end users or for AI agent comprehension. Generated by the protocol layer based on the task response.

    timestamp?: string

    ISO 8601 timestamp when the response was generated. Useful for debugging, logging, cache validation, and tracking async operation progress.

    replayed?: boolean

    Set to true when this response was returned from the idempotency cache rather than from a fresh execution. Set to false (or omitted) when the request was executed fresh. Buyers use this to distinguish cached replays from new executions — matters for billing reconciliation, audit logs, state-machine routing (cached state-tracking fields are historical snapshots, not current state — re-read via the resource's read endpoint), and any downstream system that assumes exactly-once event semantics. From 3.1 onward, replayed MAY appear on responses to any request that resolved via the idempotency cache, including read tools — universal idempotency_key (see security.mdx §Idempotency) means the cache holds read responses too.

    adcp_error?: Error
    push_notification_config?: PushNotificationConfig
    governance_context?: string

    Governance context token issued by the account's governance agent during check_governance. Buyers attach it to governed purchase requests (media buys, rights acquisitions, signal activations, creative services); sellers persist it and include it on all subsequent governance calls for that action's lifecycle. An account binds to one governance agent (see sync_governance); governance is phased across purchase / modification / delivery, not partitioned across specialist agents, so the envelope carries a single token for the full lifecycle.

    Value format: governance agents MUST emit a compact JWS per the AdCP JWS profile (see Security — Signed Governance Context). Sellers MAY verify; sellers that do not verify MUST persist and forward the token unchanged. In 3.1 all sellers MUST verify. Non-JWS values from pre-3.0 governance agents are deprecated.

    This is the primary correlation key for audit and reporting across the governance lifecycle.

    payload?: {}

    Conceptual grouping for the task-specific response data defined by individual task response schemas (e.g., get-products-response.json, create-media-buy-response.json). payload is a documentary construct — it is NOT a required wire field, and its on-the-wire shape depends on transport (see Transport serialization below). Task response schemas declare body fields without wrapping them in a payload object; the wire representation places those body fields per transport convention. On MCP the body fields appear as siblings of envelope fields at the root of the tool response; on A2A they appear inside task.artifacts[0].parts[].DataPart; on REST they appear at the root of the JSON body.

    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.

    query_summary: {
        total_matching: number;
        returned: number;
        filters_applied?: string[];
        sort_applied?: { field?: string; direction?: SortDirection };
    }

    Summary of the query that was executed

    Type Declaration

    • total_matching: number

      Total number of creatives matching filters (across all pages)

      0

    • returned: number

      Number of creatives returned in this response

      0

    • Optionalfilters_applied?: string[]

      List of filters that were applied to the query

    • Optionalsort_applied?: { field?: string; direction?: SortDirection }

      Sort order that was applied

    pagination: PaginationResponse
    creatives: {
        creative_id: string;
        account?: Account;
        name: string;
        format_id: FormatReferenceStructuredObject;
        status: CreativeStatus;
        created_date: string;
        updated_date: string;
        assets?: { [k: string]: AssetVariant | AssetVariant[] };
        tags?: string[];
        concept_id?: string;
        concept_name?: string;
        variables?: CreativeVariable[];
        assignments?: {
            assignment_count: number;
            assigned_packages?: { package_id: string; assigned_date: string }[];
        };
        snapshot?: {
            as_of: string;
            staleness_seconds: number;
            impressions: number;
            last_served?: string;
        };
        snapshot_unavailable_reason?: SnapshotUnavailableReason;
        items?: CreativeItem[];
        pricing_options?: VendorPricingOption[];
        purge?: { kind: "soft"; at: string; reason_code: CreativeEventReasonCode };
        webhook_activity?: WebhookActivityRecord[];
    }[]

    Array of creative assets matching the query

    Type Declaration

    • creative_id: string

      Unique identifier for the creative

    • Optionalaccount?: Account
    • name: string

      Human-readable creative name

    • format_id: FormatReferenceStructuredObject
    • status: CreativeStatus
    • created_date: string

      When the creative was created

      date-time

    • updated_date: string

      When the creative was last modified

      date-time

    • Optionalassets?: { [k: string]: AssetVariant | AssetVariant[] }

      Assets for this creative, keyed by asset_id. Each slot value is either a single asset object or an array of asset objects (for slots with min/max > 1). Each asset value carries an asset_type discriminator that selects the matching asset schema.

    • Optionaltags?: string[]

      User-defined tags for organization and searchability

    • Optionalconcept_id?: string

      Creative concept this creative belongs to. Concepts group related creatives across sizes and formats.

    • Optionalconcept_name?: string

      Human-readable concept name

    • Optionalvariables?: CreativeVariable[]

      Dynamic content variables (DCO slots) for this creative. Included when include_variables=true.

    • Optionalassignments?: {
          assignment_count: number;
          assigned_packages?: { package_id: string; assigned_date: string }[];
      }

      Current package assignments (included when include_assignments=true)

      • assignment_count: number

        Total number of active package assignments

        0

      • Optionalassigned_packages?: { package_id: string; assigned_date: string }[]

        List of packages this creative is assigned to

    • Optionalsnapshot?: {
          as_of: string;
          staleness_seconds: number;
          impressions: number;
          last_served?: string;
      }

      Lightweight delivery snapshot (included when include_snapshot=true). For detailed performance analytics, use get_creative_delivery.

      • as_of: string

        When this snapshot was captured by the platform

        date-time

      • staleness_seconds: number

        Maximum age of this data in seconds. For example, 3600 means the data may be up to 1 hour old.

        0

      • impressions: number

        Lifetime impressions across all assignments. Not scoped to any date range.

        0

      • Optionallast_served?: string

        Last time this creative served an impression. Absent when the creative has never served.

        date-time

    • Optionalsnapshot_unavailable_reason?: SnapshotUnavailableReason
    • Optionalitems?: CreativeItem[]

      Items for multi-asset formats like carousels and native ads (included when include_items=true)

    • Optionalpricing_options?: VendorPricingOption[]

      Pricing options for using this creative (serving, delivery). Used by ad servers and library agents. Transformation agents expose format-level pricing on list_creative_formats instead. Present when include_pricing=true and account provided. The buyer passes the applied pricing_option_id in report_usage.

    • Optionalpurge?: { kind: "soft"; at: string; reason_code: CreativeEventReasonCode }

      Tombstone block — present only when this record is a soft-purged creative surfaced via include_purged: true. The record's status field reflects the last status before purge (frozen — buyers MUST treat the creative as gone; assignments, snapshot, and serving operations no longer apply). Tombstones surface for the seller's webhook activity retention window (30 days from purge.at). Hard purges (purge_kind: hard on the webhook) do not surface on this read — the creative.purged webhook is the only signal.

      • kind: "soft"

        Always soft on tombstones — hard purges do not surface on this read.

      • at: string

        ISO 8601 timestamp when the creative was destroyed. Matches the purged_at field on the corresponding creative.purged webhook fire.

        date-time

      • reason_code: CreativeEventReasonCode
    • Optionalwebhook_activity?: WebhookActivityRecord[]

      Recent webhook fires scoped to this creative — creative.status_changed and creative.purged deliveries. Present only when the request set include_webhook_activity: true. Each item is a webhook-activity-record; the notification_type field discriminates between status changes and purges. The ext.creative_id slot MAY be populated on records nested inside larger reads where the parent does not already key the array; on list_creatives the parent creative_id is unambiguous and ext.creative_id MAY be omitted. Retention: 30 days from completed_at (MUST). See snapshot-and-log.mdx § Webhook activity log pattern for the full normative contract.

    format_summary?: { [k: string]: number | undefined }

    Breakdown of creatives by format. Keys are agent-defined format identifiers, optionally including dimensions (e.g., 'display_static_300x250', 'video_30s_vast'). Key construction is platform-specific — there is no required format.

    Type Declaration

    • [k: string]: number | undefined

      Number of creatives with this format

      0

      This interface was referenced by undefined's JSON-Schema definition via the patternProperty "^[a-zA-Z0-9_-]+$".

    status_summary?: {
        processing?: number;
        approved?: number;
        pending_review?: number;
        rejected?: number;
        archived?: number;
    }

    Breakdown of creatives by status

    Type Declaration

    • Optionalprocessing?: number

      Number of creatives being processed

      0

    • Optionalapproved?: number

      Number of approved creatives

      0

    • Optionalpending_review?: number

      Number of creatives pending review

      0

    • Optionalrejected?: number

      Number of rejected creatives

      0

    • Optionalarchived?: number

      Number of archived creatives

      0

    errors?: Error[]

    Task-specific errors (e.g., invalid filters, account not found)

    sandbox?: boolean

    When true, this response contains simulated data from sandbox mode.

    ext?: ExtensionObject