Skip to content
Letterhead Letterhead Letterhead Help Center
Admin Tools

Update a curation

POST
/api/v3/curations/{uniqueId}
curl --request POST \
--url 'https://api.tryletterhead.com/api/v3/curations/example?api=true' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "title": "How coffee prices are shaping this year'\''s harvest (updated)", "tags": [ "coffee", "agriculture", "markets" ] }'

Update the content and metadata of an existing curation. Every field is optional — omit a field to leave it unchanged. Returns a 404 if no curation with this uniqueId belongs to the company.

customFields accepts an object keyed by a custom field’s key (see List curation custom fields); any key that isn’t a defined custom field is dropped. Passing channels replaces the set of channels this curation is shared to — pass the channels’ internal numeric identifiers, not their slugs.

uniqueId
required
string

The curation’s unique identifier, from List curations or Curate or update content.

api
required
boolean

Required. Set to true to authenticate with your company API key rather than a signed-in session.

Media type application/json
object
title
string
<= 191 characters
excerpt
string
content
string
url
string
author
string
siteName
string
image
string
imageAlt
string
imageCaption
string
<= 255 characters
publicationDate

Y-m-d H:i:s format, no more than one year in the future.

string
tags
Array<string>
customFields

Values keyed by a custom field’s key.

object
channels

Internal numeric channel identifiers to share this curation to.

Array<integer>
Example
{
"title": "How coffee prices are shaping this year's harvest (updated)",
"tags": [
"coffee",
"agriculture",
"markets"
]
}

Curation updated

Media type application/json
object
items

The shape a curation is returned in after Toggle a curation’s curated status, Update a curation, or Update a curation’s tags — a lighter shape than the one List curations returns, without internal identifiers.

object
uniqueId
string
title
string
excerpt
string
content
string
author
string
siteName
string
originalUrl
string
image
string
imageAlt
string
imageCaption
string
publicationDate
string
dateOfAggregatePublication
string
curated
boolean
archived
boolean
archiveDate
string
nullable
useBy
string
nullable
feedUniqueId
string
nullable
type

Content type — 0 articles, 1 events, 2 AI-generated, 3 WordPress, 4 RSS, 5 browser extension, 6 Zapier, 7 JSON data feed.

integer
createdAt
string
updatedAt
string
deletedAt
string
nullable
tags
Array<string>
customFields

Present only when the curation has at least one custom field value set, keyed by the custom field’s key (see List curation custom fields).

object
message
string
total
integer
Example
{
"items": {
"uniqueId": "cur_8x2mle4kq9",
"title": "How coffee prices are shaping this year's harvest (updated)",
"tags": [
"coffee",
"agriculture",
"markets"
],
"updatedAt": "2026-09-01T08:05:00+00:00"
},
"message": "Your curation was successfully updated.",
"total": 1
}

No curation with this uniqueId belongs to the company

Still can’t find what you need? Contact support.