Skip to content

Mark Read

POST
/platform/v1/messages/mark-read
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.

X-API-Key
required
X-Api-Key
string
Media type application/json
PlatformMarkReadRequest

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
channel_id
required
Channel Id
integer
message_id
required
Message Id
string
>= 1 characters <= 255 characters
Example generated
{
"channel_id": 1,
"message_id": "example"
}

Successful Response

Media type application/json
PlatformMarkReadResponse

Response for POST /platform/v1/messages/mark-read.

object
message_id
required
Message Id
string
status
required
Status
string
Example generated
{
"message_id": "example",
"status": "example"
}

Channel not found or not owned by this developer account.

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Example generated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}

Rate limit or template quota exceeded — retry after the window resets.

X-RateLimit-Limit
integer

Total requests permitted in the current window.

X-RateLimit-Remaining
integer

Requests remaining in the current window.

X-RateLimit-Reset
integer

Unix epoch seconds when the window resets.

Upstream Meta API error — structured envelope with Meta’s code / title / message / fbtrace_id for debugging.

Media type application/json
object
error
required
string
fbtrace_id
required
string
nullable
message
required
string
meta_code
required
integer
nullable
meta_subcode
required
integer
nullable
meta_title
required
string
nullable
Example generated
{
"error": "example",
"fbtrace_id": "example",
"message": "example",
"meta_code": 1,
"meta_subcode": 1,
"meta_title": "example"
}