Skip to content

Archive or reactivate a message template

PATCH
/v1/message-templates/{template_id}
curl --request PATCH \
--url https://api.vocapable.com/v1/message-templates/example \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "status": "active" }'

The one legal template mutation: the status flip (see the request model).

template_id
required
Template Id
string
Media typeapplication/json
MessageTemplateUpdateRequest

PATCH /v1/message-templates/{id} - a status flip and NOTHING else (ADR-0037).

Body, name, and locale are immutable by construction: agent versions pin templates by id (sms_template_ids), so an editable body would let a live agent send text nobody reviewed under an id that was. extra="forbid" is what refuses the attempt with a 422 naming the field. archived retires a template from sending without deleting the row the pins reference; active restores it (and activates a draft).

object
status
required
Status
string
Allowed values: active archived

Successful Response

Media typeapplication/json
MessageTemplateSummary
object
id
required
Id
string
name
required
Name
string
locale
required
Locale
string
body
required
Body
string
status
required
Status
string
variables
required
Variables
Array<string>
created_at
required
Created At
string format: date-time
updated_at
required
Updated At
string format: date-time
Examplegenerated
{
"id": "example",
"name": "example",
"locale": "example",
"body": "example",
"status": "example",
"variables": [
"example"
],
"created_at": "2026-04-15T12:00:00Z",
"updated_at": "2026-04-15T12:00:00Z"
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Examplegenerated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}