Skip to main content
PATCH
/
campaign-messages
/
{campaign_message_id}
/
content
/
{id}
curl --request PATCH \
  --url https://api.getvero.com/api/v2/campaign-messages/{campaign_message_id}/content/{id} \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "subject": "Updated",
  "content": {
    "html": "<p>Updated</p>"
  }
}
'
{
  "id": 123,
  "locale": "<string>",
  "name": "<string>",
  "is_default": true,
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "content": {
    "mjml": "<string>",
    "html": "<string>",
    "text": "<string>",
    "payload": {}
  },
  "subject": "<string>",
  "preheader_text": "<string>"
}
{
"error": "not_found"
}
{
"errors": [
{
"message": "<string>"
}
]
}

Authorizations

Authorization
string
header
required

Accepts either a raw API key or Bearer <key>.

Headers

revision
string

Optional dated API revision for the request. Must use YYYY-MM-DD format.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-03-01"

Path Parameters

campaign_message_id
integer
required

Campaign message ID.

id
integer
required

Campaign content record ID.

Body

application/json
name
string | null
subject
string | null
preheader_text
string | null
locale
string | null

Localized rows may update locale; the default content variant cannot be localized in place.

content
object

Exactly one of mjml, html, text, or payload must be present in write requests. Email messages accept mjml, html, or text. SMS accepts text. Push accepts payload.

Response

Campaign content updated.

List response item; body copy is omitted — fetch a single record for content.

id
integer
required
locale
string | null
required

null for the default content variant.

name
string | null
required
is_default
boolean
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
content
object
required

Full body: exactly one of mjml, html, text, or payload is set.

subject
string | null
preheader_text
string | null