templates:read| Parameter | Type | Description |
|---|---|---|
page | integer | Page number (default: 1) |
per_page | integer | Items per page (default: 15, max: 100) |
sort | string | Sort field. Allowed: template_name, created_at, updated_at. Prefix with - for descending. Comma-separated for multiple sorts |
search | string | Search across template_name, category (partial match) |
q | string | Alias for search |
fields | string | Comma-separated list of fields to return (field selection) |
filter[field]=value or filter[field][operator]=value.| Filter Field | Type | Description |
|---|---|---|
status | string | Template approval status (e.g., APPROVED, PENDING, REJECTED) |
category | string | Template category (e.g., MARKETING, UTILITY, AUTHENTICATION) |
language | string | Template language code (e.g., en, en_US) |
| Operator | Example | Description |
|---|---|---|
| (none) | filter[status]=APPROVED | Exact match |
like | filter[category][like]=MARK | Partial match (contains) |
ne | filter[status][ne]=REJECTED | Not equal |
in | filter[status][in]=APPROVED,PENDING | Match any of the values |
not_in | filter[category][not_in]=AUTHENTICATION | Exclude values |
null | filter[category][null]=true | Is null |
| Field | Type | Description |
|---|---|---|
id | integer | Internal template record ID |
template_id | string | WhatsApp template ID |
template_name | string | Template name identifier |
name | string | Alias for template_name (backward compatibility) |
language | string | Template language code |
category | string | Template category (MARKETING, UTILITY, AUTHENTICATION) |
status | string | Approval status (APPROVED, PENDING, REJECTED) |
header_data_format | string | Header type (TEXT, IMAGE, VIDEO, DOCUMENT, NONE) |
header_data_text | string | Header text content (may contain variables like {{1}}) |
header_params_count | integer | Number of header parameters |
header_file_url | string|null | Header media file URL |
header_variable_value | string|null | Header variable sample values |
body_data | string | Template body text |
body_params_count | integer | Number of body parameters |
body_variable_value | string|null | Body variable sample values |
footer_data | string|null | Footer text |
footer_params_count | integer | Number of footer parameters |
buttons_data | string|null | JSON-encoded buttons configuration |
message_send_ttl_seconds | integer|null | OTP message TTL in seconds |
add_security_recommendation | boolean | Whether security recommendation is added (auth templates) |
code_expiration_minutes | integer|null | OTP code expiration in minutes |
otp_button_config | object|null | OTP button configuration |
components | array | Raw template components data |
created_at | string | ISO 8601 timestamp |
updated_at | string | ISO 8601 timestamp |
| Status | Error Code | Description |
|---|---|---|
| 401 | UNAUTHORIZED | Invalid or missing API token |
| 403 | INSUFFICIENT_SCOPE | Token missing templates:read scope |
| 429 | RATE_LIMIT_EXCEEDED | Too many requests |
| 500 | INTERNAL_ERROR | Failed to fetch templates |
curl --location -g --request GET '/templates?page=1&per_page=15&sort=-created_at&search=welcome&filter[status]=APPROVED&filter[category]=MARKETING&filter[language]=en&fields=id,template_name,status,category' \
--header 'Authorization: Bearer <token>'{}