> For the complete documentation index, see [llms.txt](https://docs.cekat.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.cekat.ai/api-documentation/chat/broadcast/list-templates.md).

# List templates

Lists your business's WhatsApp templates across all inboxes, newest first.

```json
{"openapi":"3.0.3","info":{"title":"Cekat Open API","version":"1.0.0"},"tags":[{"name":"Broadcast","description":"Use these endpoints to manage WhatsApp message templates, upload recipient lists, and run broadcast campaigns.\n\n## Typical flow\n1. **Create a template** with `POST /templates`. Meta reviews it; its `status` starts as `PENDING`.\n2. **Check approval** with `GET /api/templates`. Only templates with `status: APPROVED` can be sent. If you created or edited templates directly in Meta, call `POST /templates/sync` first to copy them into Cekat.\n3. **Send to one contact** with `POST /templates/send`, or continue below to send to many.\n4. **Upload a recipient list** with `POST /api/recipients`. Contacts are imported in the background; poll `GET /api/recipients` until the list's `total_contacts` matches the number returned by the upload.\n5. **Create a campaign** with `POST /api/campaigns`, using the template's `wa_template_id` as `template_id`. Leave out `schedule_at` to send right away.\n6. **Track results** with `GET /api/campaigns` for totals and `GET /api/v2/campaigns/{id}/messages` for each recipient's delivery status and replies.\n\nEvery step needs the `inbox_id` of a connected WhatsApp inbox. Get it from `GET /api/inboxes` (the `id` of an inbox whose `type` is `whatsapp`).\n"}],"servers":[{"url":"https://api.cekat.ai","description":"Production"}],"security":[{"CekatApiKey":[]},{"BearerAuth":[]}],"components":{"securitySchemes":{"CekatApiKey":{"type":"apiKey","in":"header","name":"api_key","description":"Your business's Cekat API key, from **Settings → Developers & API** in the Cekat dashboard (https://chat.cekat.ai/developers?section=apikeys). Available on the Business and Enterprise plans."},"BearerAuth":{"type":"http","scheme":"bearer","description":"The same Cekat API key, sent as `Authorization: Bearer YOUR_API_KEY`. Accepted only by endpoints under `/api/...`."}},"parameters":{"StartDate":{"name":"start_date","in":"query","required":false,"description":"Only include items created on or after this date (`YYYY-MM-DD`). Cannot be combined with `start_datetime`.","schema":{"type":"string","format":"date"}},"EndDate":{"name":"end_date","in":"query","required":false,"description":"Only include items created on or before the end of this date (`YYYY-MM-DD`). Cannot be combined with `end_datetime`.","schema":{"type":"string","format":"date"}},"StartDatetime":{"name":"start_datetime","in":"query","required":false,"description":"Only include items created at or after this time (`YYYY-MM-DDTHH:mm:ss`, optional offset such as `+07:00` or `Z`). Cannot be combined with `start_date`.","schema":{"type":"string"}},"EndDatetime":{"name":"end_datetime","in":"query","required":false,"description":"Only include items created at or before this time (`YYYY-MM-DDTHH:mm:ss`, optional offset). Cannot be combined with `end_date`.","schema":{"type":"string"}},"Version":{"name":"version","in":"query","required":false,"description":"Response format version in `YYYY-MM-DD` format. Use `2026-05-22` or later to get `created_at` as an ISO 8601 UTC timestamp.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"UserTimezone":{"name":"X-User-Timezone","in":"header","required":false,"description":"IANA time zone used to read date filters that have no offset. Defaults to `Asia/Jakarta`.","schema":{"type":"string"}}},"schemas":{"Template":{"type":"object","description":"A WhatsApp message template. Additional fields may be present.","additionalProperties":true,"properties":{"id":{"type":"string","format":"uuid","description":"Cekat's internal template ID."},"created_at":{"type":"string","description":"Creation time. See **Versioning** for the format."},"wa_template_id":{"type":"string","description":"Meta's template ID. Use this value to send, delete, or run a campaign with the template."},"name":{"type":"string"},"category":{"type":"string","enum":["AUTHENTICATION","MARKETING","UTILITY"]},"language":{"type":"string"},"status":{"type":"string","description":"Meta review status, for example `APPROVED`, `PENDING`, or `REJECTED`. Only `APPROVED` templates can be sent."},"body":{"type":"string"},"body_placeholder":{"type":"array","nullable":true,"description":"Sample values for the body variables, as submitted to Meta.","items":{"type":"string"}},"header_type":{"type":"string","nullable":true,"enum":["TEXT","DOCUMENT","IMAGE","VIDEO",null]},"header":{"type":"string","nullable":true,"description":"Header text, for templates with a text header."},"file_url":{"type":"string","nullable":true,"description":"URL of the header media, for templates with a media header."},"footer":{"type":"string","nullable":true},"buttons":{"type":"array","nullable":true,"items":{"type":"object","additionalProperties":true}},"inbox_id":{"type":"string","format":"uuid"},"business_id":{"type":"string","format":"uuid"},"inbox":{"$ref":"#/components/schemas/TemplateInbox"}}},"TemplateInbox":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"business_id":{"type":"string","format":"uuid"}}},"ApiError":{"type":"object","description":"Error body returned by the `/api/...` endpoints.","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"statusCode":{"type":"integer"},"error":{"type":"object","properties":{"message":{"type":"string"}}},"correlationId":{"type":"string","description":"Request ID. Include it when contacting Cekat support."}}},"RateLimitError":{"type":"object","properties":{"message":{"type":"string"}}}},"responses":{"ApiBadRequest":{"description":"The request is invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"ApiUnauthorized":{"description":"The API key is missing or invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"TooManyRequests":{"description":"Rate limit exceeded. Wait and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RateLimitError"}}}}}},"paths":{"/api/templates":{"get":{"tags":["Broadcast"],"operationId":"ListTemplates","summary":"List templates","description":"Lists your business's WhatsApp templates across all inboxes, newest first.","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}},{"name":"limit","in":"query","required":false,"description":"Templates per page.","schema":{"type":"integer","minimum":1,"default":1000}},{"$ref":"#/components/parameters/StartDate"},{"$ref":"#/components/parameters/EndDate"},{"$ref":"#/components/parameters/StartDatetime"},{"$ref":"#/components/parameters/EndDatetime"},{"$ref":"#/components/parameters/Version"},{"$ref":"#/components/parameters/UserTimezone"}],"responses":{"200":{"description":"A page of templates.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Template"}},"metadata":{"type":"object","properties":{"pagination":{"type":"object","properties":{"current_page":{"type":"integer"},"total_page":{"type":"integer"},"total_data":{"type":"integer","description":"Total number of templates."}}}}}}}}}},"400":{"$ref":"#/components/responses/ApiBadRequest"},"401":{"$ref":"#/components/responses/ApiUnauthorized"},"429":{"$ref":"#/components/responses/TooManyRequests"}}}}}}
```
