Update a promotion
POST
/api/v3/promotions/{promotionCollateralUid}
const url = 'https://api.tryletterhead.com/api/v3/promotions/example';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"api":true,"campaignTitle":"Summer Sale 2026 (Updated)","channels":["an-example-channel"],"headline":"60% off summer collection β extended!","contentText":"Extended for one more week.","imageUrl":"https://cdn.example.com/summer-sale-v2.png","imageAlternativeText":"Updated summer sale banner","promotionLink":"https://example.com/summer-sale-extended","promoter":"Example Brand","dates":["2026-07-01","2026-07-08","2026-07-15","2026-07-22"],"isActive":true,"isEvergreen":false,"zone":"A","type":2}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.tryletterhead.com/api/v3/promotions/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "api": true, "campaignTitle": "Summer Sale 2026 (Updated)", "channels": [ "an-example-channel" ], "headline": "60% off summer collection β extended!", "contentText": "Extended for one more week.", "imageUrl": "https://cdn.example.com/summer-sale-v2.png", "imageAlternativeText": "Updated summer sale banner", "promotionLink": "https://example.com/summer-sale-extended", "promoter": "Example Brand", "dates": [ "2026-07-01", "2026-07-08", "2026-07-15", "2026-07-22" ], "isActive": true, "isEvergreen": false, "zone": "A", "type": 2 }'Update an existing promotion. The v3 API uses POST (not PUT/PATCH) for updates by convention.
The request body uses the same fields and validation as Create a promotion β send the full desired state of the promotion.
v3 endpoints expect a company API key.
Body fields
Same shape as Create a promotion β see that endpoint for the full field table.
Authorizations
Section titled βAuthorizations βParameters
Section titled β Parameters βPath Parameters
Section titled βPath Parameters β promotionCollateralUid
required
string
UUID of the promotion to delete
Request Body required
Section titled βRequest Body required β Media type application/json
object
api
Required. Set to true to authenticate with an API key.
boolean
campaignTitle
string
channels
Array<string>
headline
string
contentText
string
imageUrl
string
imageAlternativeText
string
promotionLink
string
promoter
string
dates
Array<string>
isActive
boolean
isEvergreen
boolean
zone
string
type
integer
Example
{ "api": true, "campaignTitle": "Summer Sale 2026 (Updated)", "channels": [ "an-example-channel" ], "headline": "60% off summer collection β extended!", "contentText": "Extended for one more week.", "imageUrl": "https://cdn.example.com/summer-sale-v2.png", "imageAlternativeText": "Updated summer sale banner", "promotionLink": "https://example.com/summer-sale-extended", "promoter": "Example Brand", "dates": [ "2026-07-01", "2026-07-08", "2026-07-15", "2026-07-22" ], "isActive": true, "isEvergreen": false, "zone": "A", "type": 2}Responses
Section titled β Responses β200 OK
Media type application/json
object
items
object
promotionCollateralUid
string
campaignTitle
string
channels
Array<string>
allChannels
boolean
headline
string
contentText
string
imageUrl
string
imageAlternativeText
string
imageWidth
integer
imageHeight
integer
promotionLink
string
promoter
string
promotionServiceProviderId
integer
dates
Array<string>
isActive
boolean
isInactive
boolean
isEvergreen
boolean
embedClicks
integer
zone
string
type
integer
createdAt
string
updatedAt
string
message
string
total
integer
Example
{ "items": { "promotionCollateralUid": "b2c3d4e5f6", "campaignTitle": "Summer Sale 2026 (Updated)", "channels": [ "news-daily" ], "allChannels": false, "headline": "60% off summer collection β extended!", "contentText": "Extended for one more week.", "imageUrl": "https://cdn.example.com/summer-sale-v2.png", "imageAlternativeText": "Updated summer sale banner", "imageWidth": 600, "imageHeight": 400, "promotionLink": "https://example.com/summer-sale-extended", "promoter": "Example Brand", "promotionServiceProviderId": 0, "dates": [ "2026-07-01", "2026-07-08", "2026-07-15", "2026-07-22" ], "isActive": true, "isInactive": false, "isEvergreen": false, "embedClicks": 0, "zone": "A", "type": 2, "createdAt": "2026-06-04 17:30:00", "updatedAt": "2026-06-04 18:15:42" }, "message": "Promotion updated successfully", "total": 1}Still can’t find what you need? Contact support.