Templates
Pre-approved WhatsApp copy.
Create
POST/v1/templates
Template language is a string WhatsApp language code such as pt_BR or en_US. Do not send Meta's nested {"code":"pt_BR"} object shape.
Request body
| Field | Type | Notes |
|---|---|---|
namerequired | string | len 1..512; pattern: ^[a-z0-9_]+$ |
languagerequired | string | WhatsApp template language code as a string, for example "pt_BR" or "en_US". len 1..∞ |
categoryrequired | "marketing" | "utility" | "authentication" | |
componentsrequired | object[] |
Response
| Field | Type | Notes |
|---|---|---|
idrequired | string | |
objectrequired | "template" | |
namerequired | string | |
languagerequired | string | |
categoryrequired | "marketing" | "utility" | "authentication" | |
statusrequired | "draft" | "submitted" | "approved" | "rejected" | "paused" | "disabled" | "orphaned" | |
environmentrequired | "sandbox" | "production" | |
componentsrequired | object[] | |
provider_template_idrequired | string | null | |
rejection_reasonrequired | string | null | |
provider_qualityrequired | "green" | "yellow" | "red" | "unknown" | |
authoring_signalsrequired | object[] | |
submitted_atrequired | string<ISO-8601> | null | |
approved_atrequired | string<ISO-8601> | null | |
created_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
updated_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
Generate draft
POST/v1/templates/generate
Request body
| Field | Type | Notes |
|---|---|---|
name | string | len 1..512; pattern: ^[a-z0-9_]+$ |
descriptionrequired | string | len 10..500 |
languagerequired | string | WhatsApp template language code as a string, for example "pt_BR" or "en_US". len 1..∞ |
categoryrequired | "marketing" | "utility" | "authentication" | |
template_typerequired | "text" | "media" |
Response
| Field | Type | Notes |
|---|---|---|
objectrequired | "template_generation" | |
namerequired | string | |
languagerequired | string | |
categoryrequired | "marketing" | "utility" | "authentication" | |
componentsrequired | object[] | |
authoring_signalsrequired | object[] |
List
GET/v1/templates
Query
| Field | Type | Notes |
|---|---|---|
limitrequired | integer | Maximum number of items to return. Defaults to 20; maximum 100. range 1..100 |
starting_after | string | Opaque cursor from the previous response next_cursor. |
Response
| Field | Type | Notes |
|---|---|---|
objectrequired | "list" | |
datarequired | object[] | |
has_morerequired | boolean | |
next_cursorrequired | string | null |
Retrieve
GET/v1/templates/{'{id}'}
Response
| Field | Type | Notes |
|---|---|---|
idrequired | string | |
objectrequired | "template" | |
namerequired | string | |
languagerequired | string | |
categoryrequired | "marketing" | "utility" | "authentication" | |
statusrequired | "draft" | "submitted" | "approved" | "rejected" | "paused" | "disabled" | "orphaned" | |
environmentrequired | "sandbox" | "production" | |
componentsrequired | object[] | |
provider_template_idrequired | string | null | |
rejection_reasonrequired | string | null | |
provider_qualityrequired | "green" | "yellow" | "red" | "unknown" | |
authoring_signalsrequired | object[] | |
submitted_atrequired | string<ISO-8601> | null | |
approved_atrequired | string<ISO-8601> | null | |
created_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
updated_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
Update
PATCH/v1/templates/{'{id}'}
Request body
| Field | Type | Notes |
|---|---|---|
name | string | len 1..512; pattern: ^[a-z0-9_]+$ |
language | string | WhatsApp template language code as a string, for example "pt_BR" or "en_US". len 1..∞ |
category | "marketing" | "utility" | "authentication" | |
components | object[] |
Response
| Field | Type | Notes |
|---|---|---|
idrequired | string | |
objectrequired | "template" | |
namerequired | string | |
languagerequired | string | |
categoryrequired | "marketing" | "utility" | "authentication" | |
statusrequired | "draft" | "submitted" | "approved" | "rejected" | "paused" | "disabled" | "orphaned" | |
environmentrequired | "sandbox" | "production" | |
componentsrequired | object[] | |
provider_template_idrequired | string | null | |
rejection_reasonrequired | string | null | |
provider_qualityrequired | "green" | "yellow" | "red" | "unknown" | |
authoring_signalsrequired | object[] | |
submitted_atrequired | string<ISO-8601> | null | |
approved_atrequired | string<ISO-8601> | null | |
created_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
updated_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
Duplicate
POST/v1/templates/{'{id}'}/duplicate
Request body
| Field | Type | Notes |
|---|---|---|
name | string | len 1..512; pattern: ^[a-z0-9_]+$ |
language | string | WhatsApp template language code as a string, for example "pt_BR" or "en_US". len 1..∞ |
category | "marketing" | "utility" | "authentication" |
Response
| Field | Type | Notes |
|---|---|---|
idrequired | string | |
objectrequired | "template" | |
namerequired | string | |
languagerequired | string | |
categoryrequired | "marketing" | "utility" | "authentication" | |
statusrequired | "draft" | "submitted" | "approved" | "rejected" | "paused" | "disabled" | "orphaned" | |
environmentrequired | "sandbox" | "production" | |
componentsrequired | object[] | |
provider_template_idrequired | string | null | |
rejection_reasonrequired | string | null | |
provider_qualityrequired | "green" | "yellow" | "red" | "unknown" | |
authoring_signalsrequired | object[] | |
submitted_atrequired | string<ISO-8601> | null | |
approved_atrequired | string<ISO-8601> | null | |
created_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
updated_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
Submit for Meta approval
POST/v1/templates/{'{id}'}/submit
Response
| Field | Type | Notes |
|---|---|---|
idrequired | string | |
objectrequired | "template" | |
namerequired | string | |
languagerequired | string | |
categoryrequired | "marketing" | "utility" | "authentication" | |
statusrequired | "draft" | "submitted" | "approved" | "rejected" | "paused" | "disabled" | "orphaned" | |
environmentrequired | "sandbox" | "production" | |
componentsrequired | object[] | |
provider_template_idrequired | string | null | |
rejection_reasonrequired | string | null | |
provider_qualityrequired | "green" | "yellow" | "red" | "unknown" | |
authoring_signalsrequired | object[] | |
submitted_atrequired | string<ISO-8601> | null | |
approved_atrequired | string<ISO-8601> | null | |
created_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
updated_atrequired | string<ISO-8601> | pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$ |
Analytics
GET/v1/templates/{'{id}'}/analytics
Response
| Field | Type | Notes |
|---|---|---|
objectrequired | "template_analytics" | |
template_idrequired | string | |
approvalsrequired | object | |
sendsrequired | object |
Estimate cost
POST/v1/templates/{'{id}'}/estimate-cost
Request body
| Field | Type | Notes |
|---|---|---|
recipients | integer | range -∞..9007199254740991 |
Response
| Field | Type | Notes |
|---|---|---|
objectrequired | "template_cost_estimate" | |
template_idrequired | string | |
categoryrequired | "marketing" | "utility" | "authentication" | |
meter_idrequired | string | |
recipientsrequired | integer | range -∞..9007199254740991 |
unit_amount_brlrequired | string | |
total_brlrequired | string | |
currencyrequired | "brl" | |
rate_card_idrequired | string |