GET /v1/{waba_id}/templates
Lists the message templates on one WhatsApp Business Account (WABA). Templates belong to the WABA, not to an individual phone number — every number on the WABA can send every template.
GET /v1/{waba_id}/templatesAuthorization: Bearer hello_live_xxxxxxxxxxxxxxxxcurl "$HELLO_API_URL/v1/<your-waba-id>/templates?status=APPROVED&limit=20" \ -H "Authorization: Bearer $HELLO_API_KEY"waba_id is shown on the Accounts page of the dashboard, next to each number’s phone number
ID.
Query parameters
Section titled “Query parameters”| Parameter | Type | Default | Description |
|---|---|---|---|
name |
string | Exact template name (case-sensitive, Meta’s own filter) | |
search |
string | Case-insensitive substring match on the name (Hello extension) | |
status |
string | APPROVED, PENDING, REJECTED, PAUSED, DISABLED, … |
|
category |
string | MARKETING, UTILITY or AUTHENTICATION |
|
language |
string | Language code, for example en_US |
|
limit |
integer | 25 |
Page size, 1 to 100 |
after |
string | Cursor: the page after this one | |
before |
string | Cursor: the page before this one | |
summary |
string | Comma-separated: total_count, status_counts |
|
sort_by |
string | created |
created or name |
sort_order |
string | desc |
asc or desc |
Response 200
Section titled “Response 200”{ "data": [ { "id": "1234567890123456", "waba_id": "9999999999987654", "name": "order_shipped", "language": "en", "status": "APPROVED", "category": "UTILITY", "components": [ { "type": "BODY", "text": "Hi {{1}}, your order {{2}} has shipped." } ], "quality_score": { "score": "GREEN" } } ], "paging": { "cursors": { "before": "QVFI...", "after": "QVFI..." } }, "summary": { "total_count": 42 }}Each item is a template object. id is Meta’s
template ID (not a Hello UUID). To send a template, use its name and language in a
template message.
Pass summary=total_count,status_counts to also get per-status counts:
"summary": { "total_count": 42, "status_counts": { "APPROVED": 38, "PENDING": 3, "REJECTED": 1 } }status_counts reflects every filter you passed except status itself, so the counts stay
comparable while status narrows data.
Errors
Section titled “Errors”| Status | code |
Cause |
|---|---|---|
400 |
VALIDATION_ERROR |
An invalid filter or paging value |
401 |
UNAUTHORIZED |
Missing, wrong or disabled API key |
404 |
NOT_FOUND |
No such WABA in your organization |
409 |
ACCOUNT_NOT_REGISTERED |
The WABA has no active, registered number |
500 |
Temporary server error. Retry. |