Mark Read
const url = 'https://example.com/platform/v1/messages/mark-read';const options = { method: 'POST', headers: {'X-API-Key': 'example', 'Content-Type': 'application/json'}, body: '{"channel_id":1,"message_id":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/platform/v1/messages/mark-read \ --header 'Content-Type: application/json' \ --header 'X-API-Key: example' \ --data '{ "channel_id": 1, "message_id": "example" }'Mark an inbound message as read (read receipt).
WA channels: the body message_id is the inbound wamid.
IG channels: the body message_id is the sender IGSID (Meta’s
sender_action:"mark_seen" keys off the conversation participant).
NOT a billable message — no msgs_out increment.
Parameters
Section titled “ Parameters ”Header Parameters
Section titled “Header Parameters ”Request Body required
Section titled “Request Body required ”Body for POST /platform/v1/messages/mark-read (WF2).
For WhatsApp channels message_id is the inbound wamid.
For Instagram channels message_id is the sender IGSID (Meta’s
sender_action:"mark_seen" keys off the conversation participant, not a
message id). The router documents the IG semantic in the response.
object
Example generated
{ "channel_id": 1, "message_id": "example"}Responses
Section titled “ Responses ”Successful Response
Response for POST /platform/v1/messages/mark-read.
object
Example generated
{ "message_id": "example", "status": "example"}Channel not found or not owned by this developer account.
Validation Error
object
object
object
Example generated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}Rate limit or template quota exceeded — retry after the window resets.
Headers
Section titled “Headers ”Total requests permitted in the current window.
Requests remaining in the current window.
Unix epoch seconds when the window resets.
Upstream Meta API error — structured envelope with Meta’s code / title / message / fbtrace_id for debugging.
object
Example generated
{ "error": "example", "fbtrace_id": "example", "message": "example", "meta_code": 1, "meta_subcode": 1, "meta_title": "example"}