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.
Request
Parameters
Themetadata JSON part carries (all optional — omit to preserve):
| Field | Type | Notes |
|---|---|---|
name | string | Updated manifest name (max 255) |
message | string | Updated creative brief (max 5000) |
template_id | string | Updated ADCP format ID or vendor tag |
format_id | object | { agent_url, id, width?, height?, duration_ms? } |
format_kind | string | Updated AdCP 3.1 canonical kind. Alternative to format_id |
target_format_ids | array | Additional formats this creative covers. Replaces the existing list |
url_asset | object | Add a single URL asset: { url, url_type } |
delete_asset_ids | string[] | Asset IDs to remove (max 100) |
new_assets | array | Metadata for newly uploaded files: { filename, asset_type?, label?, slot_asset_id? } |
reclassify_assets | array | Change asset types (max 100): { asset_id, asset_type } |
primary_asset_id | string | Promote this asset to CREATIVE_SOURCE; demotes the current primary. IMAGE, VIDEO, AUDIO, HTML, or VAST only |
frequencyCaps | array | When provided, replaces the existing caps list |
files=@<path> for each entry in new_assets.
Response
target_format_ids and frequencyCaps are list-replace, not merge — send the complete intended list.
Errors
400 VALIDATION_ERROR— anew_assetsentry with no matchingfilespart, adelete_asset_idsvalue not on the manifest, orprimary_asset_idpointing at an ineligible asset type.404 NOT_FOUND—campaignIdorcreativeIddoes not exist or is not visible to the authenticated customer.
Related
Creative overview
Asset types and propagation
Get creative manifest
Read the manifest before editing
Validate creative manifest
Re-validate after format changes
Delete creative manifest
Remove the manifest