Principal APIs Como consultar contatos, tickets e mensagens em tempo real via API

Como consultar contatos, tickets e mensagens em tempo real via API

Última atualização em Jul 04, 2026

Quando usar

  • Você quer ler dados atuais do Cloud Chat sem alterar nada (consultar contato, ver tickets de um cliente, ler mensagens de uma conversa)

  • Você está integrando o Cloud Chat a outro sistema (CRM, portal interno) que precisa exibir dados ao vivo

  • Você quer evitar duplicação de contatos antes de criar um ticket


Pré-requisitos

Se você ainda não sabe qual tipo de API usar, comece pelo Guia Mestre — Como acessar e operar dados do Cloud Chat via API.

Esta página cobre apenas leitura em tempo real.


Sobre este artigo

As APIs de Consulta em Tempo Real permitem ler dados atuais do Cloud Chat, diretamente da base de produção, sem alterar nada. São ideais para integrações, automações e telas internas que precisam responder perguntas como:

  • "Esse contato já existe?"

  • "Quais tickets esse cliente tem?"

  • "Qual é o status atual desse ticket?"

  • "Quais mensagens foram trocadas nessa conversa?"

Sobre o namespace /api/client/

Os endpoints desta página usam /api/client/accounts/... em vez do /api/v1/accounts/... usado em outras APIs. Ambos usam o mesmo api_access_token para autenticação.

O namespace /api/client/ oferece endpoints simplificados de leitura — são mais diretos para consultas pontuais. Para operações de escrita (criar, atualizar, deletar), use o namespace /api/v1/.


Para que essas APIs servem

Use quando você precisa:

  • Ler dados agora

  • Integrar dados do Cloud Chat a outro sistema

  • Exibir informações em uma aplicação

  • Tomar decisões baseadas no estado atual do atendimento

Para que não servem

Não use essas APIs para:


Autenticação

Todos os endpoints exigem:

  • {CLOUDCHAT_DOMAIN} — domínio da sua conta (ex: cloudchat.cloudhumans.com)

  • {ACCOUNT_ID} — ID da conta

  • api_access_token — para os endpoints /api/client/ (seções 1, 2 e 3), o token deve ser de administrador — tokens de supervisor ou agente recebem 403 Forbidden. A busca por texto livre (seção 1b, namespace /api/v1/) aceita token de qualquer perfil de agente


1. Buscar contato por e-mail ou telefone

Quando usar

  • Antes de criar um ticket (descobrir se o contato já existe)

  • Para associar dados externos a um contato

  • Para evitar duplicação

Endpoint

GET https://{CLOUDCHAT_DOMAIN}/api/client/accounts/{ACCOUNT_ID}/contacts?email=EMAIL&phone_number=PHONE

Regras

  • Pelo menos um dos parâmetros (email ou phone_number) é obrigatório

  • Se ambos forem enviados, a API tenta o match mais preciso possível

O que retorna

  • ID do contato, nome, e-mail, telefone

  • Campos personalizados

  • Datas de criação e última atividade


1b. Buscar contatos por texto livre (Search)

Quando usar

Para buscar um contato por qualquer campo textual (nome, e-mail, telefone, identificador, empresa) sem saber exatamente qual contém a informação.

Diferente do endpoint anterior, este faz busca ILIKE (case-insensitive, parcial) em múltiplos campos simultaneamente.

Endpoint

GET /api/v1/accounts/{account_id}/contacts/search?q={termo}

Parâmetros

Parâmetro Tipo Obrigatório Descrição
q string Sim Termo de busca. Mínimo de 2 caracteres quando contém apenas letras (busca somente name); mínimo de 3 caracteres quando contém qualquer dígito (busca em todos). Abaixo desses limites, retorna HTTP 422
page integer Não Página de resultados (padrão: 1, 15 resultados por página)

Campos pesquisados

  • name — nome do contato (sempre pesquisado)

  • email — e-mail (a partir de 3 caracteres com dígito)

  • identifier — identificador externo (a partir de 3 caracteres com dígito)

  • phone_number — telefone, com e sem prefixo + (a partir de 3 caracteres com dígito)

  • company_name — nome da empresa (a partir de 3 caracteres com dígito)

Resposta

  • payload[] — array de contatos encontrados

  • meta — contém apenas a página atual

meta.count e meta.total_pages foram removidos para reduzir custo de banco em consultas repetidas. Para obter o total absoluto, use o endpoint dedicado GET /api/v1/accounts/{account_id}/contacts/search/count?q={termo} (cacheado por 30s).

Exemplo

GET /api/v1/accounts/1/contacts/search?q=maria&page=1

Retorna todos os contatos cujo nome, e-mail, telefone, identifier ou empresa contenham maria.

Limite de uso (rate limit)

40 requisições por minuto por token de acesso. Excedendo o limite, a API responde HTTP 429 (Too Many Requests). O mesmo limite vale para /contacts/search/count.

Diferença entre os dois endpoints de busca

Busca por e-mail/telefone Busca por texto livre
Namespace /api/client/ /api/v1/
Campos Apenas e-mail ou telefone name, email, identifier, phone, company
Tipo de match Exato Parcial (ILIKE)
Paginação Não Sim (15 por página)
Total de resultados Endpoint separado (/search/count)

2. Listar tickets de um contato

Quando usar

Já tem o CONTACT_ID e quer listar os tickets desse cliente:

  • Mostrar histórico de atendimentos

  • Ver tickets abertos ou resolvidos

  • Integrar com CRM ou portal interno

Endpoint

GET https://{CLOUDCHAT_DOMAIN}/api/client/accounts/{ACCOUNT_ID}/contacts/{CONTACT_ID}/conversations?page=1&limit=10

Parâmetros

  • page — obrigatório

  • limit — opcional (padrão: 10)

O que retorna

  • IDs dos tickets

  • Status (open, resolved, etc.)

  • Prioridade

  • Inbox

  • Datas de criação

  • Se foi iniciado por campanha


3. Listar mensagens de um ticket

Quando usar

Para recuperar o histórico de mensagens de um ticket:

  • Auditoria em tempo real

  • Exibir conversa em outra interface

  • Debug de integrações

Endpoint

GET https://{CLOUDCHAT_DOMAIN}/api/client/accounts/{ACCOUNT_ID}/conversations/{CONVERSATION_ID}/messages?page=1&limit=10

O que retorna

  • Conteúdo da mensagem

  • Tipo (incoming / outgoing)

  • Pública ou privada

  • Data de criação

  • Status da mensagem

  • Links dos anexos (se existirem)


Como essas APIs se conectam (fluxo típico)

  1. Buscar contato por e-mail ou telefone

  2. Obter o CONTACT_ID

  3. Listar os tickets desse contato

  4. Escolher um ticket

  5. Listar as mensagens do ticket

Tudo isso sem alterar nenhum dado.


Nível de risco

Risco médio — não alteram dados, mas consultam a base de produção em tempo real.

Boas práticas:

  • Evite loops agressivos

  • Use cache quando possível

  • Não use para exportação em massa


Erros comuns

  • Usar essas APIs para relatórios históricos

  • Esquecer o parâmetro page

  • Confundir CONTACT_ID com CONVERSATION_ID

  • Tentar criar ou atualizar dados com GET


Observações