Skip to main content
PUT
Edit a template

Authorizations

Authorization
string
header
required

Your API key, e.g. sk_live_... or sk_test_....

Headers

Idempotency-Key
string

Optional. Makes this write safe to retry: the same key replays the first response instead of acting twice.

Maximum string length: 255

Path Parameters

template
string
required

Template uuid or name.

Body

application/json

The same body as creating a template. name and language are the template's own and cannot change. category can change only while the template is a draft or rejected. submit defaults to true.

name
string
Maximum string length: 512
Pattern: ^[a-z0-9_]+$
language
string
Maximum string length: 16
category
enum<string>
Available options:
AUTHENTICATION,
UTILITY,
MARKETING
body_text
string

Use {{1}}-style placeholders.

Maximum string length: 1024
body_examples
string[]
Maximum array length: 50
Maximum string length: 255
Maximum string length: 60
header
object
buttons
object[]
Maximum array length: 10
submit
boolean

Submit to Meta immediately.

parameter_format
enum<string>

NAMED uses {{first_name}}-style variables.

Available options:
POSITIONAL,
NAMED
library_template_name
string

Clone a ready-made template from GET /v1/templates/library instead of writing body_text.

Maximum string length: 512
Pattern: ^[a-z0-9_]+$
limited_time_offer
object
authentication
object

Media carousels take 2 to 10 cards; product carousels exactly 2 when created. Every card has the same button types.

Maximum array length: 10
message_send_ttl_seconds
integer

How long WhatsApp keeps trying to deliver. Authentication 30–900, utility 30–43200, marketing 43200–2592000. -1 means 30 days (authentication and utility only).

Required range: -1 <= x <= 2592000
call_permission_request
boolean

Marketing or utility: ask the customer for permission to call them. Body only, no buttons.

Marketing: turn off Meta's click tracking for URL buttons.

creative_features
object

Marketing: Meta's automatic creative improvements, such as image_animation or add_text_overlay.

max_price
object

Marketing only, after the max price agreement is accepted. Clear it by sending null for both fields.

Response

Saved, and submitted unless submit was false.

uuid
string
name
string
language
string
category
enum<string>
Available options:
AUTHENTICATION,
UTILITY,
MARKETING
status
enum<string>
Available options:
draft,
submitting,
pending,
approved,
rejected,
paused,
disabled,
archived,
deleted
body_text
string
body_examples
string[]
header
object
buttons
object[]
rejection_reason
string | null
quality_score
string | null
provider_template_id
string | null
submitted_at
string<date-time> | null
approved_at
string<date-time> | null
created_at
string<date-time> | null
limited_time_offer
object | null
call_permission_request
boolean
message_send_ttl_seconds
integer | null
marketing_options
object | null

Creative features and max price as last submitted.

source
string | null

Set when Meta generated the template (for example from Direct Send). Such templates cannot be edited or deleted here.

sub_category
string | null
pending_category
string | null

The category Meta will move this template to.

template_group
string | null

uuid of the template group.

send_features
object[]

Extra inputs a send needs, such as cards, coupon_code or voice_call.

rejection_reason_text
string | null