Pular para o conteúdo principal
POST
/
api
/
message
/
reaction
/
:instance
Enviar Reação
curl --request POST \
  --url https://api.example.com/api/message/reaction/:instance \
  --header 'Content-Type: <content-type>' \
  --header 'token: <token>' \
  --data '
{
  "number": "<string>",
  "messageId": "<string>",
  "reaction": "<string>",
  "fromMe": true,
  "participant": "<string>",
  "source": "<string>"
}
'

Documentation Index

Fetch the complete documentation index at: https://docs.ryzeapi.cloud/llms.txt

Use this file to discover all available pages before exploring further.

Auth: TokenAccount ou TokenInstanceRate-limit: Global (100/min) • Idempotente: não

Descrição

Adiciona ou remove uma reação (emoji) a uma mensagem existente. O campo reaction recebe o emoji ("👍", "❤️", "😂", etc.) ou a string literal "remove" para remover a reação. Em conversas 1-a-1, basta messageId + fromMe. Em grupos, quando a mensagem original não foi enviada pela instância (fromMe: false), é obrigatório informar participant com o JID do autor original, sem isso o WhatsApp não consegue localizar o alvo. Reações não suportam delay, replyTo nem mention.

Exemplos

Reagir em conversa 1-a-1

fromMe: false indica que a mensagem alvo foi recebida (não enviada) pela instância.
curl -X POST "https://ryzeapi.cloud/api/message/reaction/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":    "5511999999999",
    "messageId": "3EB08FCF27E532F1B0F5",
    "reaction":  "👍",
    "fromMe":    false
  }'

Reagir em grupo (mensagem de outro participante)

Em grupos, quando você reage a uma mensagem que não é sua (fromMe: false), o participant com o JID do autor original é obrigatório. Sem ele o servidor responde 400 missing_participant.
curl -X POST "https://ryzeapi.cloud/api/message/reaction/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":      "120363406289005073@g.us",
    "messageId":   "3EB08FCF27E532F1B0F5",
    "reaction":    "❤️",
    "fromMe":      false,
    "participant": "5511888888888@s.whatsapp.net"
  }'

Remover reação

Envie reaction: "remove" para apagar uma reação previamente colocada na mensagem.
curl -X POST "https://ryzeapi.cloud/api/message/reaction/$Instance_Name" \
  -H "token: $Token_Instance" \
  -H "Content-Type: application/json" \
  -d '{
    "number":    "5511999999999",
    "messageId": "3EB08FCF27E532F1B0F5",
    "reaction":  "remove",
    "fromMe":    true
  }'

Resposta de sucesso

O messageId retornado é o da própria reação (não o da mensagem reagida, esse fica em replyTo.messageId). O content traz o emoji aplicado, ou string vazia quando a reação foi removida.
200 OK
{
  "success": true,
  "message": "Reaction sent successfully",
  "status":  "sent",
  "data": {
    "messageId":   "3EB08FCF27E532F1C2C2",
    "direction":   "sent",
    "messageType": "reaction",
    "content":     "👍",
    "source":      "api",
    "timestamp":   "2026-04-30T14:30:00Z",
    "chat": {
      "jid":     "5511999999999@s.whatsapp.net",
      "isGroup": false
    },
    "sender": {
      "jid":      "5511777777777@s.whatsapp.net",
      "instance": "minha-instancia"
    },
    "replyTo": {
      "messageId": "3EB08FCF27E532F1B0F5"
    }
  }
}
Quando a reação é removida (reaction: "remove"), a message retornada vira "Reaction removed successfully" e o content fica vazio. A reação aparece no destinatário ancorada à mensagem original, se você reagir novamente com outro emoji, o WhatsApp substitui a reação anterior.

Parâmetros de rota

instance
string
obrigatório
Nome da instância (ex.: $Instance_Name).

Headers

token
string
obrigatório
TokenAccount ou TokenInstance.
Content-Type
string
obrigatório
application/json

Request body

number
string
obrigatório
Chat onde a mensagem alvo está: telefone (5511999999999) ou JID (@s.whatsapp.net, @lid, @g.us).
messageId
string
obrigatório
ID da mensagem que receberá a reação.
reaction
string
obrigatório
Emoji da reação (ex.: "👍", "❤️", "😂", "🔥") ou a string literal "remove" para apagar uma reação existente.
fromMe
boolean
padrão:"false"
true quando a mensagem original foi enviada pela própria instância; false quando ela foi recebida de outro contato/participante. O WhatsApp usa esse flag junto com participant para localizar o alvo.
participant
string
JID do autor da mensagem original (ex.: 5511888888888@s.whatsapp.net). Obrigatório em grupos quando fromMe: false, sem ele o servidor retorna 400 missing_participant. Em conversas 1-a-1 ou quando fromMe: true, é ignorado.
source
string
padrão:"api"
Identificador de origem para rastreabilidade (ex.: crm, bot-suporte, n8n). Salvo no registro da mensagem e propagado para webhooks.

Notas

  • Reações não suportam delay, replyTo, replyPrivate, mention nem mentionAll, apenas os campos listados acima.
  • Para alterar uma reação existente, basta enviar uma nova com outro emoji. O WhatsApp substitui automaticamente.
  • Em grupos, sem participant correto a reação cai em missing_participant mesmo que o messageId exista no banco.
  • fromMe precisa refletir o lado real da mensagem. Se invertido, o WhatsApp pode não localizar o alvo e a reação some silenciosamente no aplicativo do destinatário.

Erros

HTTPStatus internoMensagem
400Instance name is required
400Invalid request body: <detalhe>
400Number is required
400MessageID is required
400Reaction is required
400invalid_numberInvalid phone number format: <detalhe>
400invalid_message_id(motivo do messageId inválido)
400missing_participantParticipant is required for group reactions when fromMe=false
404Instance not found
500send_failedFailed to send reaction: <reason>
503disconnectedInstance is not connected to WhatsApp
Envelope de erro:
{
  "success": false,
  "error": { "message": "Reaction is required" }
}