Optionalcontext_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).
OptionalcontextOptionaltask_Unique identifier for tracking asynchronous operations. Present when a task requires extended processing time. Used to query task status and retrieve results when complete.
OptionalmessageHuman-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.
OptionaltimestampISO 8601 timestamp when the response was generated. Useful for debugging, logging, cache validation, and tracking async operation progress.
OptionalreplayedSet 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.
Optionaladcp_Optionalpush_Optionalgovernance_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.
OptionalpayloadConceptual 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.
Optionaladcp_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_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.
Summary of the query that was executed
Total number of creatives matching filters (across all pages)
Number of creatives returned in this response
Optionalfilters_applied?: string[]List of filters that were applied to the query
Optionalsort_applied?: { field?: string; direction?: SortDirection }Sort order that was applied
Array of creative assets matching the query
Unique identifier for the creative
Optionalaccount?: AccountHuman-readable creative name
When the creative was created
When the creative was last modified
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?: stringCreative concept this creative belongs to. Concepts group related creatives across sizes and formats.
Optionalconcept_name?: stringHuman-readable concept name
Optionalvariables?: CreativeVariable[]Dynamic content variables (DCO slots) for this creative. Included when include_variables=true.
Optionalassignments?: {Current package assignments (included when include_assignments=true)
Total number of active package assignments
Optionalassigned_packages?: { package_id: string; assigned_date: string }[]List of packages this creative is assigned to
Optionalsnapshot?: {Lightweight delivery snapshot (included when include_snapshot=true). For detailed performance analytics, use get_creative_delivery.
When this snapshot was captured by the platform
Maximum age of this data in seconds. For example, 3600 means the data may be up to 1 hour old.
Lifetime impressions across all assignments. Not scoped to any date range.
Optionallast_served?: stringLast time this creative served an impression. Absent when the creative has never served.
Optionalsnapshot_unavailable_reason?: SnapshotUnavailableReasonOptionalitems?: 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.
Always soft on tombstones — hard purges do not surface on this read.
ISO 8601 timestamp when the creative was destroyed. Matches the purged_at field on the corresponding creative.purged webhook fire.
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.
Optionalformat_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.
Optionalstatus_Breakdown of creatives by status
Optionalprocessing?: numberNumber of creatives being processed
Optionalapproved?: numberNumber of approved creatives
Optionalpending_review?: numberNumber of creatives pending review
Optionalrejected?: numberNumber of rejected creatives
Optionalarchived?: numberNumber of archived creatives
OptionalerrorsTask-specific errors (e.g., invalid filters, account not found)
OptionalsandboxWhen true, this response contains simulated data from sandbox mode.
Optionalext
Response from creative library query with filtered results, metadata, and optional enriched data