Paginação
Toda lista da API devolve o mesmo envelope:
{
"data": [ ... ],
"next_cursor": "eyJzb3J0IjoiMjAyNi0wOS0wOFQwMzo1...",
"has_more": true
}
data: os itens da página.next_cursor: passe em?cursor=para pegar a próxima página. Vemnullquando acabou.has_more:truese ainda existe página depois desta.
Como percorrer tudo
curl "https://api.wevi.chat/functions/v1/contacts?limit=100" \
-H "Authorization: Bearer wevi_SUA_CHAVE"
# resposta: { "data": [...], "next_cursor": "eyJzb3J0...", "has_more": true }
curl "https://api.wevi.chat/functions/v1/contacts?limit=100&cursor=eyJzb3J0..." \
-H "Authorization: Bearer wevi_SUA_CHAVE"
async function todosOsContatos(chave) {
const itens = [];
let cursor = null;
do {
const url = new URL("https://api.wevi.chat/functions/v1/contacts");
url.searchParams.set("limit", "100");
if (cursor) url.searchParams.set("cursor", cursor);
const res = await fetch(url, { headers: { Authorization: `Bearer ${chave}` } });
const pagina = await res.json();
itens.push(...pagina.data);
cursor = pagina.next_cursor;
} while (cursor);
return itens;
}
Parâmetros aceitos em qualquer lista
| Parâmetro | Padrão | Descrição |
|---|---|---|
limit |
50 | Itens por página. Máximo 200. |
cursor |
— | O next_cursor da página anterior. |
updated_since |
— | Data ISO 8601. Devolve só o que mudou depois dela. |
Por que cursor e não página
Com ?page=2, um contato criado entre a primeira e a segunda chamada empurra a lista inteira, e você pula ou repete registro. O cursor aponta para a última linha que você viu, então a próxima página continua exatamente de onde parou, mesmo com a base mudando embaixo.
O cursor é opaco: não tente montar um na mão nem guardar por muito tempo. Use sempre o que veio na resposta anterior. Um cursor inválido devolve 400 com invalid_cursor.
Sincronização incremental
Para manter uma cópia dos dados atualizada sem varrer tudo toda vez, guarde o horário da última sincronização e mande em updated_since:
curl "https://api.wevi.chat/functions/v1/contacts?updated_since=2026-09-01T00:00:00Z&limit=200" \
-H "Authorization: Bearer wevi_SUA_CHAVE"
Em /conversations, updated_since compara com a data da última mensagem, que é o que muda quando a conversa anda.
Próximo
Rate limits