Retrieve one standard template by UID, template id, Meta template id, or name.
Get Template
Summary
Retrieve one standard template by UID, template id, Meta template id, or name.
Prerequisites
- Authorization: Bearer w91_live_xxx
- Content-Type: application/json for JSON requests
Related documentation
Retrieves a single standard template. The identifier resolves by local UID, local template id, Meta template id, or template name, depending on what the sender has stored.
/api/v3/templates/{identifier}Retrieve one standard template.
| Parameter | Type | Required | Description |
|---|---|---|---|
identifier | string | Required | Local UID, local template id, Meta template id, or template name. |
senderId | string | Optional | WhatsApp sender that owns the template. |
curl "https://graph.whats91.com/api/v3/templates/payment_reminder?senderId=919999999999" \
-H "Authorization: Bearer w91_live_xxx"{
"success": true,
"message": "Template retrieved",
"data": {
"senderId": "919999999999",
"template": {
"uid": "tpl_abc123",
"name": "payment_reminder",
"language": "en",
"category": "UTILITY",
"status": "APPROVED",
"metaTemplateId": "1234567890",
"components": []
}
},
"metadata": {
"apiVersion": "v3",
"requestId": "request-uuid"
}
}v3 Additions
v3 adds read-only template attribution fields so integrations can tell manually created templates apart from templates Meta generated for Direct Send.
| Field | Type | Description |
|---|---|---|
| source | string | null | Template origin. AUTO_GENERATED marks a template Meta created from a Direct Send message. Manual and legacy rows return an empty or null source. |
| correctCategory | string | null | Category Meta believes the template should use, when Meta has flagged a mismatch. |
| Query parameter | Values | Description |
|---|---|---|
| source | AUTO_GENERATED, MANUAL | Filters the list by template origin. MANUAL returns rows with no stored source, which covers manually created and legacy templates. |
curl "https://graph.whats91.com/api/v3/templates?source=AUTO_GENERATED" \
-H "Authorization: Bearer w91_live_xxx"Warning
Auto-generated templates are for inspection and reporting only. Do not edit, delete, duplicate, submit, or test-send them, and do not select them through approved-template workflows.
SDK Examples
Use these examples as starting points for server-side implementations.
curl -X GET "https://graph.whats91.com/api/v3/templates/{identifier}" \
-H "Authorization: Bearer w91_live_xxx"const response = await fetch("https://graph.whats91.com/api/v3/templates/{identifier}", {
method: "GET",
headers: {
"Authorization": "Bearer w91_live_xxx"
}
});
const data = await response.json();
console.log(data);$ch = curl_init("https://graph.whats91.com/api/v3/templates/{identifier}");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer w91_live_xxx"
]
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;import requests
response = requests.request(
"GET",
"https://graph.whats91.com/api/v3/templates/{identifier}",
headers={
"Authorization": "Bearer w91_live_xxx",
}
)
print(response.json())using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer w91_live_xxx");
var request = new HttpRequestMessage(HttpMethod.Get, "https://graph.whats91.com/api/v3/templates/{identifier}");
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());Related APIs
Template
Create MARKETING templates for offers, promotions, launches, and customer engagement campaigns.
Utility
Create UTILITY templates for transactional updates, invoices, reminders, appointments, orders, and service notifications.
Authentication
Create AUTHENTICATION templates for OTP and verification code delivery using Meta copy-code buttons.
List Templates
List standard, non-carousel templates for a sender with status and category filters.