Paginação e filtros
As listagens paginadas (GET /contacts, /conversations, /campaigns, as linhas do tempo, as notas, os destinatários e as execuções) devolvem sempre o mesmo envelope:
{
"data": [ … ],
"meta": { "page": 1, "pageSize": 20, "total": 318, "totalPages": 16 }
}| Parâmetro | Valor |
|---|---|
page |
A partir de 1. Padrão 1 |
pageSize |
De 1 a 100. Padrão 20 |
As listagens principais adicionam tabs (quantos elementos há em cada aba do painel) e summary (os números do cabeçalho), para não ser preciso pedir cada aba separadamente. GET /automations não é paginado: devolve data e summary.
Percorrer tudo
async function* contatos(apiKey) {
for (let page = 1; ; page++) {
const res = await fetch(`https://micuenta.whatsmarketing.es/api/v1/contacts?page=${page}&pageSize=100`, {
headers: { Authorization: `Bearer ${apiKey}` },
});
const { data, meta } = await res.json();
yield* data;
if (page >= meta.totalPages) break;
}
}As listagens são ordenadas por atividade recente; se você criar ou modificar registros enquanto percorre, algum elemento pode se mover entre páginas. Para sincronizações contínuas, use os webhooks em vez de percorrer.
Filtros
Cada listagem tem seus filtros (estão na referência). Os mais usados:
q: busca livre por nome, telefone, e-mail ou empresa.taboufilter: as mesmas abas que você vê no painel (leads,customers,unassigned,finished…).days: só o que teve atividade nos últimos 7, 30 ou 90 dias.tag,lifecycleStageId,ownerId,channelType,status: um valor por parâmetro.
Os filtros se combinam com «e». Um parâmetro desconhecido responde 400.