Pular para o conteúdo

Consultar respostas de um evento

Depois de enviar um evento de calendário, os convidados respondem no WhatsApp: vai, não vai ou talvez, com ou sem convidados extras. Esta página mostra como ler essas respostas. Cada convidado tem uma resposta por evento, e a última substitui a anterior.

Para ser avisado na hora em que alguém responde, use o evento de webhook message.calendar_responded (veja Eventos de calendário). As respostas dadas antes de esse recurso existir não estão disponíveis.

Consultar respostas

Endpoint: GET /v1/messages/{message_id}/responses para o número principal. Para números extras, use GET /v1/numbers/{ref}/messages/{message_id}/responses, em que {ref} é o alias atual do número ou o id do número (num_…, o number_id da mensagem).

Escopo obrigatório: messages:read

Parâmetros de caminho:

ParâmetroTipoDescrição
refstring(apenas na rota de número extra) Alias do número ao qual o evento pertence (main ou o alias de um número extra) ou o id dele (num_…).
message_idstringIdentificador público do evento de calendário (msg_{hex32}), o mesmo que o envio devolveu.
turbo-notify.sh
curl -X GET \
https://api.turbonotify.com/v1/messages/msg_01993c5a1b24d3e9f01a2b3c4d5e6f70/responses \
-H "Authorization: Bearer SUA_CHAVE"

Exemplos de resposta

Com respostas

As respostas vêm da mais recente para a mais antiga.

Status HTTP: 200
{
  "message_id": "msg_01993c5a1b24d3e9f01a2b3c4d5e6f70",
  "counts": {
    "going": 2,
    "not_going": 1,
    "maybe": 1,
    "extra_guests": 3
  },
  "responses": [
    {
      "from": {
        "number": "5511999990004",
        "name": "Marina Costa"
      },
      "response": "going",
      "at": "2026-11-03T15:30:00Z"
    },
    {
      "from": {
        "number": "5511999990003",
        "name": "Carlos Lima"
      },
      "response": "maybe",
      "extra_guests": 1,
      "at": "2026-11-03T12:10:00Z"
    },
    {
      "from": {
        "number": "5511999990002",
        "contact_id": "ct_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4",
        "name": "Ana Souza"
      },
      "response": "going",
      "extra_guests": 2,
      "at": "2026-11-03T12:00:00Z"
    },
    {
      "from": {
        "number": "5511999990005"
      },
      "response": "not_going",
      "at": "2026-11-03T11:45:00Z"
    }
  ]
}

Sem respostas

Status HTTP: 200
{
  "message_id": "msg_01993c5a1b24d3e9f01a2b3c4d5e6f70",
  "counts": {
    "going": 0,
    "not_going": 0,
    "maybe": 0,
    "extra_guests": 0
  },
  "responses": []
}

Estrutura da resposta

CampoTipoDescrição
message_idstringIdentificador público do evento.
countsobjectTotais das últimas respostas. Sempre traz as quatro chaves.
counts.goingintegerConvidados cuja última resposta é going.
counts.not_goingintegerConvidados cuja última resposta é not_going.
counts.maybeintegerConvidados cuja última resposta é maybe.
counts.extra_guestsintegerTotal de convidados extras levados por quem respondeu going ou maybe.
responsesarrayA última resposta de cada convidado, da mais recente para a mais antiga.
responses[].fromobjectO convidado.
responses[].from.numberstringTelefone do convidado (sem +).
responses[].from.namestringNome do convidado no WhatsApp. Omitido quando não disponível.
responses[].from.contact_idstringIdentificador público do contato (ct_{hex32}). Omitido quando não disponível.
responses[].responsestringgoing, not_going ou maybe.
responses[].extra_guestsintegerConvidados extras que a pessoa leva. Aparece só quando é maior que zero.
responses[].atstringData e hora ISO 8601 em que a resposta foi dada.

Os dados seguem o prazo das reações: as respostas ficam 12 meses junto com a mensagem. O conteúdo do evento (nome, descrição, local) segue o prazo de conteúdo do seu plano. Veja Retenção.

Erros possíveis

StatusCódigo de erroDescrição
400invalid_message_idO message_id não tem o formato msg_{hex32}.
400message_not_calendarA mensagem não é um evento de calendário.
401not_authenticatedA chave de API está inválida ou ausente.
403insufficient_scopeA chave de API não possui o escopo messages:read.
404not_foundA mensagem não foi encontrada, pertence a outra organização ou pertence a um número diferente do da URL (na rota atalho sem {ref}, o número principal): todos esses casos devolvem a mesma resposta, sem distinção.
404number_not_found(apenas na rota com {ref}) O alias ou o id informado na URL não corresponde a nenhum número cadastrado.
400invalid_number_id(apenas na rota com {ref}) O valor na URL começa com num_, mas não é um id de número válido.
500internal_errorErro interno inesperado no servidor.