Listar plantillas
Lista las plantillas del cliente, una por plantilla con sus campañas y canales asignados, con paginación y filtros.
Endpoint: GET /v1/templates
Parámetros
Query
| Parámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
state | string | No | Filtro por estado (APPROVED, PENDING, …). |
search | string | No | Búsqueda por nombre. |
category | string | No | Filtro por categoría. |
lang | string | No | Filtro por idioma. |
did | string | No | Filtro por DID. |
name | string | No | Nombre exacto. |
template_meta_id | string | No | ID del template en Meta. |
active | boolean | No | Filtro por estado activo/inactivo. |
deleted | boolean | No | Estado de eliminación. true → solo plantillas eliminadas. false o ausente → excluye eliminadas. |
campaign_name | string | No | Nombre exacto de campaña (permite traer Unassigned). |
fields | string | No | Campos a devolver por plantilla (CSV). Whitelist: id, waba_id, client_id, active, namespace, meta_template, channel_campaigns. Si se omite, se devuelven todos. |
size / limit | number | No | Tamaño de página. |
page | number | No | Número de página. |
client_id | number | Condicional | Cliente sobre el que se listan plantillas. |
channel_ids | string | No | Filtro por canales (CSV). |
quality_scores | string | No | Filtro por calidad (CSV). |
Request
curl --request GET \
--url 'https://api.chattigo.com/v1/templates?fields=id,waba_id,namespace,meta_template,channel_campaigns&size=10&page=1' \
--header 'Authorization: Bearer <token>'Response
Éxito (200)
{
"data": [
{
"id": "664a1b2c3d4e5f6000000001",
"active": true,
"client_id": 1001,
"namespace": "abc_123",
"waba_id": "123456789012345",
"meta_template": {
"id": "7890123456789012",
"name": "welcome",
"language": "es",
"status": "APPROVED",
"category": "UTILITY",
"components": [{ "type": "BODY", "text": "Hola {{1}}" }],
"quality_score": { "score": "HIGH" }
},
"channel_campaigns": [
{
"campaign_id": 123,
"campaign_name": "Camp 1",
"channels": [
{ "channel_id": 456, "did": "5731...", "type": "WHATSAPP" }
]
}
]
}
],
"total": 1,
"page": 1,
"pageSize": 20,
"paging": null
}total, page y pageSize siempre se devuelven, sin importar el filtro fields. Las plantillas sin campaña asignada se devuelven con channel_campaigns: [].
Plantillas de mensaje directo: el listado regular excluye las plantillas con
isDirectMessage: true(mensaje directo). Solo se devuelven las plantillas regulares (isDirectMessageenfalseo ausente).
Campos vacíos omitidos: dentro de
meta_template, los campos que no aplican se omiten de la respuesta:examplecuando está vacío ({}),format/text/buttonscuando vienen nulos, yprevious_category,quality_scoreyrejected_reasoncuando vienen vacíos. Ejemplo: una plantilla de solo BODY sin rechazo no incluyerejected_reasonen elmeta_template.
Errores
| Código | Caso |
|---|---|
400 | agent without campaigns (token sin BSP_CN y sin campañas) |
400 | client_id is required (token con BSP_CN sin client_id) |
400 | invalid client_id: <valor> (el valor de client_id no es numérico) |
403 | BSP_CN permission required for cross-client access (token sin BSP_CN que envía un client_id distinto al de su token) |