Pular para o conteúdo
GET/conversas/{id}/mensagens

Mensagens de uma conversa

mensagens:lerpaginada

Da mais nova para a mais antiga. Notas internas da equipe não aparecem.

GET /conversas/{id}/mensagens

curl "https://chat.forsi.com.br/api/v1/conversas/495a7cae-128c-4b66-adbc-807b3959c129/mensagens?limite=50" \
  -H "Authorization: Bearer $FORSI_CHAVE"
Resposta 200
{
  "dados": [
    {
      "id": "4e8cb5d0-2d89-4fc2-93bb-c8e5e17d4629",
      "conversa_id": "495a7cae-128c-4b66-adbc-807b3959c129",
      "direcao": "entrada",
      "tipo": "texto",
      "texto": "Oi, queria remarcar minha consulta",
      "estado": "pendente",
      "erro": "Connection timed out",
      "autor_tipo": "contato",
      "responde_a_id": "ad52f13b-411d-4526-9d07-91f222c74891",
      "id_whatsapp": "wamid.HBgNNTUzMTk4ODg4Nzc3NxUCABEYEjQ",
      "enviada_em": "2026-10-04T13:05:12.481Z",
      "criado_em": "2026-10-04T13:05:12.481Z",
      "editada_em": "2026-10-04T13:05:12.481Z",
      "apagada_em": "2026-10-04T13:05:12.481Z",
      "pela_api": {"chave_id":"71c5c606-a9d7-4270-8891-45d783aa9b71"},
      "modelo": "texto",
      "midia": [
        {
          "id": "94ac725d-5a70-40b2-8fa6-cdd23a32ac85",
          "mime": "image/jpeg",
          "nome_arquivo": "foto.jpg",
          "tamanho": 48213,
          "duracao_s": 1.5
        }
      ]
    }
  ],
  "proximo": "1791205512481_3791c08d-72dd-4002-89ff-1e14a11c07e5"
}

Parâmetros no caminho#

  • iduuidobrigatório

    No caminho da URL.

Parâmetros de consulta#

  • limiteintegeropcional

    Itens por página (1 a 100, padrão 50).

  • cursorstringopcional

    Valor de proximo da página anterior.

    • até 80 caracteres

Resposta#

200 com {"dados": ...}: uma lista de Mensagem, paginada por cursor (como paginar).

  • iduuidopcional
    —
  • conversa_iduuidopcional
    —
  • direcao"entrada" | "saida"opcional
    —
  • tipostringopcional
    • ex.: texto
  • textostringopcional
    —
  • estado"pendente" | "enviando" | "enviada" | "entregue" | "lida" | "tocada" | "falhou" | "recebida" | "nao_confirmado"opcional

    nao_confirmado: a conexão caiu durante o envio e o WhatsApp não confirmou; a mensagem pode ter chegado. Não é reenviada sozinha.

  • errostringopcional
    —
  • autor_tipo"contato" | "usuario" | "agente" | "sistema" | "celular"opcional
    —
  • responde_a_iduuidopcional
    —
  • id_whatsappstringopcional
    —
  • enviada_emdata e hora ISO 8601opcional
    —
  • criado_emdata e hora ISO 8601opcional
    —
  • editada_emdata e hora ISO 8601opcional
    —
  • apagada_emdata e hora ISO 8601opcional
    —
  • pela_apiobjectopcional
    —
  • pela_api.chave_iduuidopcional
    —
  • modelostringopcional

    Nome do modelo, quando tipo = modelo.

  • midialista de objectopcional
    —
  • midia[].iduuidopcional
    —
  • midia[].mimestringopcional
    —
  • midia[].nome_arquivostringopcional
    —
  • midia[].tamanhointegeropcional
    —
  • midia[].duracao_snumberopcional
    —

Erros#

Todo erro vem como {"erro": {"codigo", "mensagem"}}. Trate pelo codigo: ele não muda.

Status de erro desta operação
StatusQuando
401Chave ausente ou inválida (resposta igual para qualquer motivo).
403Plano sem API, escopo insuficiente ou https/origem recusados.
404Não existe nesta organização.
422Dados inválidos ou regra de negócio (ex.: janela_fechada; conta_restrita = a Meta restringiu a conta por spam: erro traz os campos de RestricaoMeta, como ate, escopo, motivo e retry_after_s).
429Limite de requisições. Veja Retry-After.
Códigos de erro que esta área pode devolver2
  • conversa_inexistenteConversa não encontrada.
  • cursor_invalidoCursor inválido. Use o valor de "proximo" da página anterior.

Os erros que valem para qualquer rota (chave, limite, JSON) estão em Erros.