Skip to main content

Get a specific WABA message

Agent Skill

Automate this endpoint with an AI agent using the 2chat-whatsapp-waba skill:

npx skills add 2ChatCo/agent-skills -s 2chat-whatsapp-waba

This endpoint returns a single message you sent or received on a WhatsApp Business API number, identified by its UUID within the conversation it belongs to.

Endpoint

GET https://api.p.2chat.io/open/waba/message/{session_key}/{message_uuid}

Authentication

Include your API key in the X-User-API-Key header. Learn more about authentication.

Parameters

ParameterInRequiredDescription
session_keypathYesThe conversation the message belongs to (e.g. WA-WAN95841312-b54d-46e3-b0bc-6414f4a5296b-5215512345432)
message_uuidpathYesThe UUID of the message (e.g. MSGaf1fa3a1-0d8d-4aa5-b117-f9425b651485)

Both values come back on every message returned by Get Messages, on every outbound webhook, and in the reply to Send Message — store them if you plan to look a message up later.

Invocation

curl --location --request GET 'https://api.p.2chat.io/open/waba/message/WA-WAN95841312-b54d-46e3-b0bc-6414f4a5296b-5215512345432/MSGaf1fa3a1-0d8d-4aa5-b117-f9425b651485' \
--header 'X-User-API-Key: your_api_key_here'

Response

Success (HTTP 200 OK)

{
"success": true,
"message": {
"id": "MSGaf1fa3a1-0d8d-4aa5-b117-f9425b651485",
"uuid": "MSGaf1fa3a1-0d8d-4aa5-b117-f9425b651485",
"session_key": "WA-WAN95841312-b54d-46e3-b0bc-6414f4a5296b-5215512345432",
"message": {
"text": "hi, do you have this in stock?"
},
"created_at": "2026-09-20T14:03:11",
"remote_phone_number": "+5215512345432",
"sent_by": "user",
"is_from_flow_run": false,
"is_from_api": false,
"is_from_chatter": true,
"is_from_agent": false,
"wa_msg_id": "wamid.HBgMNTIxNTUxMjM0NTQzMhUCABIYFjNBOEFFMEJFREE5N0UyRjk5NTU3AA==",
"wa_msg_ack": 3,
"processed": true,
"error": false,
"sent": true,
"received": true,
"read": true
}
}
FieldDescription
idThe unique identifier of the message
uuidSame as id
session_keyThe conversation the message belongs to
message.textThe text content of the message, when present
message.media.urlThe 2Chat-hosted media file URL, when the message carries media
message.media.typeThe type of media
message.media.mime_typeThe MIME type of the media
created_atWhen the message was sent, UTC
remote_phone_numberThe contact's phone number
sent_byWho sent it: user (the contact), agent, or api
is_from_flow_runtrue if the message was sent by a flow reply
is_from_apitrue if the message was sent through 2Chat's API
is_from_chattertrue if the contact sent it
is_from_agenttrue if you or one of your agents sent it
wa_msg_idThe id WhatsApp assigned to the message on their network
wa_msg_ack0: created, 1: sent, 2: delivered, 3: read
processedtrue once WhatsApp has acknowledged the message
errortrue if WhatsApp reported the message as not sent
senttrue if the message was sent
receivedtrue if the recipient received it
readtrue if the recipient read it, and has read receipts enabled

The delivery fields (processed, error, sent, received, read) are only present once WhatsApp has reported a status for the message.

Error

{
"error": true,
"error_message": "Chat session not found"
}
HTTPWhen
404The conversation is not yours, is not a WABA conversation, or holds no message with that UUID
422message_uuid is not a well-formed MSG… identifier