Update a promotion listing
POST
/api/v3/promotions/listings/{listingUniqueId}
const url = 'https://api.tryletterhead.com/api/v3/promotions/listings/example?api=true';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"price":275,"status":"reserved"}'};
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/listings/example?api=true' \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "price": 275, "status": "reserved" }'Partial update of a promotion listing — every field is optional and only the fields sent are
changed. Sending channels replaces the listing’s whole channel set.
v3 endpoints expect a company API key.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ” listingUniqueId
required
string
UUID of the listing to update
Query Parameters
Section titled “Query Parameters ” api
required
boolean
Required. Set to true.
Request Body required
Section titled “Request Body required ” Media type application/json
object
title
string
description
string
channels
Array<string>
zone
string
price
number
runLengthDays
integer
totalSlots
integer
availableFrom
string
availableTo
string
status
available | reserved | sold | unavailable
string
Example
{ "price": 275, "status": "reserved"}Responses
Section titled “ Responses ”200 OK
Media type application/json
object
items
object
uniqueId
string
channels
Array<object>
object
channel
string
channelTitle
string
zone
string
title
string
description
string
price
number
runLengthDays
integer
totalSlots
integer
availableSlots
integer
soldSlots
integer
availableFrom
string
availableTo
string
status
string
createdAt
string
updatedAt
string
message
string
total
integer
Example
{ "items": { "uniqueId": "c3d4e5f6a7", "channels": [ { "channel": "news-daily", "channelTitle": "News Daily" } ], "zone": "A", "title": "Front newsletter banner", "description": "Prime placement at the top of every send.", "price": 275, "runLengthDays": 7, "totalSlots": 4, "availableSlots": 3, "soldSlots": 1, "availableFrom": null, "availableTo": null, "status": "reserved", "createdAt": "2026-06-04 17:30:00", "updatedAt": "2026-06-04 18:15:42" }, "message": "Promotion listing updated successfully", "total": 1}Still can’t find what you need? Contact support.