Skip to content
Beta — the Waasl API is in private beta. Endpoints marked Coming soon are designed but not live yet. Request early access

Templates

WhatsApp message templates — create, submit for Meta review and track their status.

GET/v1/whatsapp/templatesAvailable

Query parameters

Field Type Description
status “draft” | “pending” | “approved” | “rejected” | “paused” | “disabled”
language string
Terminal window
curl "https://api.waasl.io/v1/whatsapp/templates?language=ar" \
-H "Authorization: Bearer $WAASL_API_KEY"
Response 200 — Templates
{
"data": [
{
"name": "string",
"language": "ar",
"category": "marketing",
"components": [
{
"type": null,
"format": null,
"text": null,
"examples": null,
"buttons": null
}
],
"id": "tpl_Qm81",
"status": "draft",
"rejection_reason": "string",
"quality": "GREEN",
"updated_at": "2026-10-01T08:15:00Z"
}
]
}
POST/v1/whatsapp/templatesAvailable

Creates the template and submits it to Meta for review. The result arrives as a template.status_updated webhook — usually within minutes.

Request body

Field Type Description
name required string
language required string
category required “marketing” | “utility” | “authentication”
components required object[]
components[].type “header” | “body” | “footer” | “buttons”
components[].format “text” | “image” | “video” | “document”
components[].text string
components[].examples string[]
components[].buttons object[]
Terminal window
curl -X POST "https://api.waasl.io/v1/whatsapp/templates" \
-H "Authorization: Bearer $WAASL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "order_ready",
"language": "ar",
"category": "utility",
"components": [
{
"type": "body",
"text": "مرحبا {{1}}، طلبك رقم {{2}} جاهز للتوصيل 🚚",
"examples": [
"سارة",
"4821"
]
},
{
"type": "buttons",
"buttons": [
{
"type": "quick_reply",
"text": "شكراً"
}
]
}
]
}'
Response 201 — Submitted template (status: pending)
{
"name": "string",
"language": "ar",
"category": "marketing",
"components": [
{
"type": "header",
"format": "text",
"text": "string",
"examples": [
"string"
],
"buttons": [
{
"type": null,
"text": null,
"url": null,
"phone_number": null
}
]
}
],
"id": "tpl_Qm81",
"status": "draft",
"rejection_reason": "string",
"quality": "GREEN",
"updated_at": "2026-10-01T08:15:00Z"
}

Errors: 422 The request body is invalid

GET/v1/whatsapp/templates/{template_id}Beta

Path parameters

Field Type Description
template_id required string
Terminal window
curl "https://api.waasl.io/v1/whatsapp/templates/tpl_Qm81" \
-H "Authorization: Bearer $WAASL_API_KEY"
Response 200 — The template, including its review history
{
"name": "string",
"language": "ar",
"category": "marketing",
"components": [
{
"type": "header",
"format": "text",
"text": "string",
"examples": [
"string"
],
"buttons": [
{
"type": null,
"text": null,
"url": null,
"phone_number": null
}
]
}
],
"id": "tpl_Qm81",
"status": "draft",
"rejection_reason": "string",
"quality": "GREEN",
"updated_at": "2026-10-01T08:15:00Z"
}
DELETE/v1/whatsapp/templates/{template_id}Available

Deletes it in Waasl and at Meta. A deleted name can’t be reused for 30 days (Meta rule).

Path parameters

Field Type Description
template_id required string
Terminal window
curl -X DELETE "https://api.waasl.io/v1/whatsapp/templates/tpl_Qm81" \
-H "Authorization: Bearer $WAASL_API_KEY"

Returns 204 — Deleted.