Skip to main content
PUT /api/v2/buyer/campaigns/{campaignId}/creatives/{creativeId} Updates manifest fields (name, brief, format) and manages assets — add new uploads, delete existing assets, reclassify types, or set the primary asset. Sent as multipart/form-data: a metadata JSON part plus files parts for any new_assets. Updates re-sync to media buys the creative is already on.
V3 save_creative.sourceAssets is create-only. To replace media that was assembled from a browser-direct upload, create a new Creative with the intended format slots, confirm its readback, and then archive the old Creative.

Request

Parameters

The metadata JSON part carries (all optional — omit to preserve): Form parts: files=@<path> for each entry in new_assets.

Response

Returns the full updated manifest. target_format_ids and frequencyCaps are list-replace, not merge — send the complete intended list. In this V2 REST response, file_size_status is a VIDEO-only evidence marker. verified means that the VIDEO file_size is authoritative; a VIDEO file_size of 0 without the marker is a compatibility sentinel for unavailable evidence. IMAGE and AUDIO file-size behavior and provenance are unchanged, so do not infer their evidence status from the marker’s absence. MCP and internal manifest results do not use this REST compatibility mapping, so unavailable evidence may appear as file_size: null with file_size_status absent.

Errors

  • 400 VALIDATION_ERROR — a new_assets entry with no matching files part, a delete_asset_ids value not on the manifest, or primary_asset_id pointing at an ineligible asset type.
  • 404 NOT_FOUNDcampaignId or creativeId does not exist or is not visible to the authenticated account.
See Errors for the full error contract.

Creative overview

Asset types and propagation

Get creative manifest

Read the manifest before editing

Delete creative manifest

Remove the manifest