What it does
Lists an application’s WhatsApp templates: cursor pagination + status/category/language filters + name/content search + expand. Data is read fresh directly from Meta (no caching); theapp_id is verified to belong to the organization.
Endpoint
Headers
Secret key in
Bearer sk_... format. See Secret Key authentication.Path parameters
Application ID. Must belong to the organization (otherwise
404).Query parameters
All query parameters are optional.Maximum records per page. Range
1–100.Next-page cursor (the
nextCursor from a previous response). Do not pass it on the first request.Previous-page cursor (the
previousCursor from a response). Cannot be used together with after.Status filter. See Template Status.
Category filter. See Template Category.
Language filter: a BCP-47 code (e.g.
en, tr).Meta
name_or_content search (matches the template name or body text).components → also returns the components (not returned by default). Repeatable.Response
Type:CursorPagingResult[TemplateResponseModel]. The envelope is { "data": [ ... ], "pagingMetadata": { ... }, "isSuccess": true }.
true when the request completed successfully.The list of templates (
TemplateResponseModel).Null fields (
id, createdAt, messageSendTtlSeconds, correctCategory, previousCategory) are dropped from the response. On the first request, do not pass after/before — take the cursors from the response.Examples
Demo 1 — all (default)
Demo 1 — all (default)
Demo 2 — status filter
Demo 2 — status filter
Demo 3 — category + language
Demo 3 — category + language
Demo 4 — search
Demo 4 — search
Demo 5 — with components (expand=components)
Demo 5 — with components (expand=components)
Demo 6 — pagination (cursor)
Demo 6 — pagination (cursor)
First page:Next page (
nextCursor → after):Empty result:
"data": [] with "pagingMetadata": { "hasNext": false, "hasPrevious": false, "pageSize": 0 }.Errors
Error details with
code, group, and description; isSuccess is false.Auth / tenant
Request validation (422)
Meta-side (list_templates_async — no subcode routing)
Example error response (429 rate limit):