Skip to main content

Get Template

Retrieve a WhatsApp template with its current approval status. Use it to find out when Meta has approved or rejected a template you submitted.

Endpoint​

GET /whatsapp/templates/:id

Returns: 200 OK

Headers​

HeaderValueRequired
AuthorizationBearer <your-api-key>Yes

Path Parameters​

ParameterTypeDescription
idstringThe template ID

Response​

{
"id": "01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a",
"name": "order_shipped",
"language": "en",
"category": "utility",
"status": "rejected",
"rejection_reason": "INVALID_FORMAT",
"parameters": [
"first_name",
"order_id"
],
"components": [
{
"type": "HEADER",
"format": "TEXT",
"text": "Your order"
},
{
"type": "BODY",
"text": "Hi {{first_name}}, order {{order_id}} has shipped."
},
{
"type": "FOOTER",
"text": "Arsel Store"
},
{
"type": "BUTTONS",
"buttons": [
{
"type": "URL",
"text": "Track",
"url": "https://example.com/track"
}
]
}
],
"created_at": "2026-03-08T12:00:00.000Z",
"updated_at": "2026-03-08T12:04:10.000Z"
}

Template Fields​

FieldTypeDescription
idstringTemplate ID
namestringThe value to pass as template_name when sending
languagestringMeta language code, e.g. en or ar
categorystringmarketing, utility or authentication. Meta can recategorize a template after review, and the category sets the price per message.
statusstringSee Status Values
rejection_reasonstring | nullMeta's reason, when the template was rejected
parametersstring[]The keys POST /whatsapp/send needs in parameters. ["code"] for an authentication template.
componentsobject[]The template content in Meta's own component format
created_atstringISO 8601 timestamp
updated_atstringISO 8601 timestamp

Status Values​

StatusDescription
pendingSubmitted and under review by Meta
approvedReady to send
rejectedMeta refused it. See rejection_reason, then edit and resubmit.
pausedMeta paused it because of low quality. It cannot be sent while paused.
disabledMeta disabled it. It cannot be sent.
draftThe status is not known yet. It cannot be sent.
Waiting for approval

Poll this endpoint after creating or editing a template. Review usually takes a few minutes and can take up to 48 hours, so poll every minute or so rather than in a tight loop.


Examples​

curl "https://api.arsel.sa/v1/whatsapp/templates/01957e3a-4b5c-7d8e-9f0a-1b2c3d4e5f6a" \
-H "Authorization: Bearer $ARSEL_API_KEY"

Error Responses​

{
"status_code": 404,
"name": "not_found",
"message": "Template not found"
}