Skip to main content
PATCH
Update Template

Authorizations

Authorization
string
header
required

Your API key (ta_live_…) from Settings → API keys, sent as Authorization: Bearer <key>. Keep it on a server: it can message every customer you have. A key is full, build or read-only; a request its level does not allow is refused with 403.

Headers

Thinnest-Workspace
string

Developers only: the customer workspace this request acts in — its org_… id from POST /customers. Leave it out to act in your own workspace.

Example:

"org_3fKq9TzQ1mN8vB2xR7cLpA"

Path Parameters

name
string
required

The template's name: lowercase letters, numbers and underscores.

Pattern: ^[a-z0-9_]{1,512}$

Query Parameters

language
string

The template's language code. Needed only when the name exists in more than one language; without it such a name is a 409 that lists them.

Body

application/json

Only the fields sent change; the rest keep their current values. The result must pass the same rules as Create Template.

name
string

A new name: lowercase letters, numbers and underscores only.

Pattern: ^[a-z0-9_]{1,512}$
language
string

A new language code WhatsApp templates support, such as en, en_US or hi.

category
enum<string>

A new category.

Available options:
utility,
marketing,
authentication
body
string

The new message, with {{1}}, {{2}} … for the blanks. Ignored for an authentication template.

Maximum string length: 1024
samples
string[]

One example per body blank, in order. Leave it out to keep the current examples.

Maximum array length: 20
header
object | null

The line or media above the body. null means no header.

The new footer. null or "" removes it.

Maximum string length: 60
buttons
object[] | null

The full new list of buttons, replacing the old one. null or [] removes them all.

Maximum array length: 10
auth
object

An authentication template's settings. WhatsApp writes the message itself ("123456 is your verification code."), so these are all you choose.

Response

Saved. The template as it now is.

A WhatsApp template with its parts and review note.

name
string
required

The template's name — what Send Message and Create Campaign take.

Example:

"order_ready"

language
string
required

Its language code.

Example:

"en"

category
enum<string>
required

WhatsApp's category, which decides its price and its rules.

Available options:
utility,
marketing,
authentication
status
enum<string>
required

draft until submitted, pending while WhatsApp reviews it, then approved or rejected. WhatsApp may later pause an approved template that recipients flag. Only approved can be sent.

Available options:
draft,
pending,
approved,
rejected,
paused
agent
string
required

The agent the template belongs to (ag_…).

Example:

"ag_5c4a5f93-2b1e-4c0a-9d3f-7e8a1b2c3d4e"

body
string
required

The message, with {{1}}, {{2}} … for the blanks. For an authentication template, the sentence WhatsApp writes around the code.

variableCount
integer
required

How many body values a send must carry, in order: the highest {{n}} in the body.

Required range: x >= 0
variableLabels
object[]
required

The example given for each body blank.

buttonVariableCount
integer
required

How many button values a send must carry: one per link button whose address ends in a blank.

Required range: x >= 0
headerKind
enum<string>
required

The header. image, video or document means a send must pass a media link for it.

Available options:
none,
text,
image,
video,
document
createdAt
string<date-time>
required

When it was created.

headerText
string | null
required

A text header's words. null for any other header.

The footer line. Empty when there is none.

buttons
object[]
required

The template's buttons, in order.

reviewNote
string | null
required

Why WhatsApp refused it, when it did. null otherwise.