Skip to content
Whats91

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

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.

GET/api/v3/templates/{identifier}

Retrieve one standard template.

ParameterTypeRequiredDescription
identifierstringRequiredLocal UID, local template id, Meta template id, or template name.
senderIdstringOptionalWhatsApp sender that owns the template.
cURL
curl "https://graph.whats91.com/api/v3/templates/payment_reminder?senderId=919999999999" \
  -H "Authorization: Bearer w91_live_xxx"
200 OK
{
  "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.

FieldTypeDescription
sourcestring | nullTemplate origin. AUTO_GENERATED marks a template Meta created from a Direct Send message. Manual and legacy rows return an empty or null source.
correctCategorystring | nullCategory Meta believes the template should use, when Meta has flagged a mismatch.
Query parameterValuesDescription
sourceAUTO_GENERATED, MANUALFilters the list by template origin. MANUAL returns rows with no stored source, which covers manually created and legacy templates.
Filter auto-generated 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
curl -X GET "https://graph.whats91.com/api/v3/templates/{identifier}" \
  -H "Authorization: Bearer w91_live_xxx"
Node.js
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);
PHP
$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;
Python
import requests

response = requests.request(
    "GET",
    "https://graph.whats91.com/api/v3/templates/{identifier}",
    headers={
        "Authorization": "Bearer w91_live_xxx",
    }
)

print(response.json())
C#
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