Skip to main content
POST
/
v1
/
campaigns
/
{id}
Update a campaign
curl --request POST \
  --url https://app.loops.so/api/v1/campaigns/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>"
}
'
{
  "id": "cmp8n3q1w7x2m9k4p6r0t5y8zab2cd",
  "name": "Spring announcement v2",
  "status": "Draft",
  "createdAt": "2026-03-28T15:00:00.000Z",
  "updatedAt": "2026-03-28T15:15:00.000Z",
  "emailMessageId": "cmn5zia4i0017tzli8ric8giv"
}
Campaigns can only be updated while they are in Draft status.

Request

Path parameters

id
string
required
The ID of the campaign.

Body

name
string
required
The updated campaign name.

Response

Success

id
string
required
The campaign ID.
name
string
required
The updated campaign name.
status
string
required
The campaign status.
createdAt
string
required
ISO 8601 timestamp for when the campaign was created.
updatedAt
string
required
ISO 8601 timestamp for when the campaign was last updated.
emailMessageId
nullable string
required
The associated email message ID.

Error

If the request body is invalid, a 400 Bad Request is returned. A 404 Not Found is returned if the campaign does not exist. A 409 Conflict is returned if the campaign is not in draft status. If the API key is invalid (or content API is not enabled for your team), a 401 Unauthorized is returned.
message
string
required
An error message describing what went wrong.
{
  "id": "cmp8n3q1w7x2m9k4p6r0t5y8zab2cd",
  "name": "Spring announcement v2",
  "status": "Draft",
  "createdAt": "2026-03-28T15:00:00.000Z",
  "updatedAt": "2026-03-28T15:15:00.000Z",
  "emailMessageId": "cmn5zia4i0017tzli8ric8giv"
}
Last modified on June 12, 2026