Layers
Partner APIAPI referenceAds

POST /v1/projects/:projectId/ads/:platform/ads/:adId/creative

Push a new creative to an existing ad.

View as Markdown
POST/v1/projects/:projectId/ads/{platform}/ads/:adId/creative
Phase 1stable
Auth
Bearer
Scope
ads:write:creative

Adds a creative to an ad's rotation. Layers resolves the source adsContentId to the platform-side asset (uploaded via the platform's media library or referenced by url).

Body

Body
  • adsContentId
    stringrequired
    The Layers-scored creative to push. From [`GET …/ads-content`](/docs/api/reference/metrics/ads-content).
  • caption
    stringoptional
    Override the default caption (Layers selects from the source content_container otherwise).

Authority: gated by the creative axis.

Companion endpoints

EndpointMethodPurpose
POST …/ads/:adId/creativePOSTPush a new creative (this page).
PUT …/ads/:adId/creativePUTReplace the active creative.
DELETE …/ads/:adId/creativeDELETEPrune underperforming creative.
POST …/creatives/:adsContentId/unlockPOSTUnlock a flagged creative for retry.

Errors

CodeWhen
AUTHORITY_DENIEDcreative axis is off.
CREATIVE_FLAGGEDadsContentId was previously flagged by Layers' safety pass — see POST …/creatives/:id/unlock.

See also

On this page