Update an existing creative by ID. Send only the fields you want to change; omitted fields are unchanged. Creative type cannot be changed. For Hosted Banner, include both imageUrl and landingPageUrl.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Endpoint: PUT /creative/{creativeId} (your base URL may include a version path, e.g. /v1/creative/{creativeId})
Purpose: Update an existing creative. The creative is identified by creativeId in the URL path. You can send only the fields you want to change; omitted fields keep their current values. The creative type (e.g. BANNER, VIDEO) cannot be changed.
Path parameter
| Name | Type | Required | Description |
|---|---|---|---|
| creativeId | integer | Yes | The ID of the creative to update. The creative must already exist. |
Request body
Content-Type: application/json
The body uses the same JSON shape as Create Creative. Only the fields you include in the body are updated; omitted fields keep their current values.
Exception — Hosted Banner (BANNER + HOSTED): When updating a hosted image banner, you must include both imageUrl and landingPageUrl in the body. Omitting either causes it to be cleared and triggers a validation error (e.g. "Landing Page URL is a required field.").
Not used on update: creativeType, creativeSubtype, and type are not applied; the creative’s type is fixed. advertiserId and campaignId are not required and do not change the creative’s advertiser.
Required and updatable fields
Path
| Field | Required | Description |
|---|---|---|
| creativeId | Yes | In the URL path. Identifies the creative to update. |
Request body — common (all creative types)
| Field | Required | Updatable | Notes |
|---|---|---|---|
| name | No | Yes | Max 400 characters. |
| crawlableUrl | No | Yes | |
| externalCreativeid | No | Yes | |
| landingPageUrl | No | Yes | Only for creatives that support a click-through URL (e.g. hosted banner, hosted video/audio, native). |
| impressionTrackingPixel1 … 4 | No | Yes | |
| channels | No | Yes | e.g. ["MOBILE","DESKTOP"]. |
| status | No | Yes | Allowed values: APPROVED, DISABLED, INCOMPLETE, PENDING, VIOLATION, REJECTED. |
Request body — by creative type and subtype
Only the fields listed for that creative kind are applied. Omitted or null fields leave the existing value unchanged unless noted.
| creativeType | creativeSubtype | Updatable type-specific fields | Required when updating this type |
|---|---|---|---|
| BANNER | HOSTED | imageUrl, landingPageUrl | Both imageUrl and landingPageUrl must be present in the body. |
| BANNER | TAG (Custom Tag) | htmlAsset (or display.htmlAsset), size (width, height) | No. |
| BANNER | TAG (Medialets) | adTagId, size (width, height) | No. |
| NATIVE | IMAGE | native: headline, caption, sponsoredBy, imageUrl, imageIcon | No. |
| NATIVE | HOSTED | native: headline, caption, sponsoredBy, imageUrl, imageIcon, mediaUrls | No. |
| NATIVE | VASTXML / VASTURL | native: headline, caption, sponsoredBy, imageUrl, imageIcon, vastXml or vastUrl | No. |
| AUDIO | VASTXML / VASTURL / HOSTED | audio: vastXml, vastUrl, or mediaUrls | No. |
| VIDEO | VASTXML / VASTURL / HOSTED | video: vastXml, vastUrl, or mediaUrls | No. |
| DOOH | IMAGE | dooh.imageUrl | No. |
| DOOH | VIDEO | dooh.mediaUrls | No. |
Not updatable (ignored)
- creativeType, creativeSubtype, type (mediaType, id, vendorId, videoType) — Creative kind is fixed.
- advertiserId, campaignId — Not required on update; existing advertiser is unchanged.
Response
Response body includes messages (array) and, on success, entity (the updated creative object, same structure as in the Create Creative response).
| Status | Description |
|---|---|
| 200 | Success or validation failure. Check messages for ERROR entries; if any, the update may have failed and entity may be null. |
| 400 | Validation error (e.g. missing required field for that creative type). |
| 401 | Authentication required. |
| 403 | Permission denied for the creative’s advertiser. |
| 404 | Creative not found. |
Example request and response
Example 1: Update name only
Request: PUT /creative/24803058
Body:
{
"name": "Updated creative name"
}Example response (200):
{
"messages": [],
"entity": {
"id": 24803058,
"name": "Updated creative name",
"creativeType": "BANNER",
"creativeSubtype": "HOSTED",
"type": { "mediaType": "BANNER" },
"imageUrl": "https://cdn.example.com/banner.jpg",
"landingPageUrl": "https://example.com/landing",
"status": "PENDING"
}
}Example 2: Update Custom Tag (BANNER + TAG)
Request: PUT /creative/12345678
Body:
{
"name": "Updated Custom Tag",
"creativeType": "BANNER",
"creativeSubtype": "TAG",
"type": { "mediaType": "BANNER" },
"size": { "width": 300, "height": 250 },
"htmlAsset": "<script src=\"https://example.com/new-tag.js\"></script>"
}Example 3: Update Hosted Banner (BANNER + HOSTED)
Request: PUT /creative/24803058
Body: (both imageUrl and landingPageUrl must be included)
{
"name": "Test Banner Creative via Update 1234",
"creativeType": "BANNER",
"creativeSubtype": "HOSTED",
"type": { "mediaType": "BANNER" },
"imageUrl": "https://placehold.co/300x250.png",
"landingPageUrl": "https://example.com/landing"
}Example 4: Update status only
Request: PUT /creative/12345678
Body:
{
"status": "DISABLED"
}Example 5: Update Video (VIDEO + HOSTED)
Request: PUT /creative/12345678
Body:
{
"name": "Updated Hosted Video",
"creativeType": "VIDEO",
"creativeSubtype": "HOSTED",
"type": { "mediaType": "VAST" },
"video": {
"mediaUrls": ["https://cdn.example.com/new-video.mp4"]
}
}Example 6: Update Native (NATIVE + IMAGE)
Request: PUT /creative/12345678
Body:
{
"name": "Updated Native",
"creativeType": "NATIVE",
"creativeSubtype": "IMAGE",
"type": { "mediaType": "NATIVE" },
"native": {
"headline": "New headline",
"caption": "New caption",
"sponsoredBy": "Brand",
"imageUrl": "https://cdn.example.com/native-main.jpg",
"imageIcon": "https://cdn.example.com/icon.jpg"
}
}Example 7: Update DOOH Video (DOOH + VIDEO)
Request: PUT /creative/12345678
Body:
{
"name": "Updated DOOH Video",
"creativeType": "DOOH",
"creativeSubtype": "VIDEO",
"type": { "mediaType": "VAST" },
"dooh": {
"mediaUrls": ["https://cdn.example.com/new-dooh-video.mp4"]
}
} 401Unauthorized
403Forbidden
404Not Found