Skip to main content

POST /sms/conversations/{line}/{number}/read

Mark messages read or unread

Scopemessages:write
Role permissionPhone numbers — line must be one of theirs
CostFree

Read state is per user. This edits only your membership of each message's reader list, so it cannot clear a colleague's unread badges.

To clear a whole line at once, use POST /sms/lines/{line}/read — there is deliberately no "mark the entire thread" here, because two spellings of the same bulk action invite a client to loop the wrong one.

Path parameters

NameTypeRequiredExampleDescription
linestringyes12125550188One of your account's numbers — the line the thread is on. Digits.
numberstringyes13475550123The other party's number. Digits.

Request body

FieldTypeRequiredDescription
messageIdsinteger[]yesThe messages to mark. At most 50 per request.
readbooleannotrue marks read, false marks unread. Defaults to true.

Mark two messages read:

{
"messageIds": [
90218841,
90218842
]
}

Put one back to unread:

{
"messageIds": [
90218841
],
"read": false
}

Responses

204

Applied.

Errors

StatusMeaning
400invalid_request — a missing or malformed field, an unknown enum value, or an unknown field in the body. Nothing was charged.
401unauthenticated — no credential, or one that is invalid, revoked or expired. The WWW-Authenticate header names the scope the endpoint wanted.
403Two different failures share this status, and the type tells them apart:
500internal_error — something failed on our side. For a send, nothing was charged, guaranteed, which is what makes a retry safe.

See Errors for the full catalog and what to do about each.

Example

curl -X POST 'https://api.account.telebroad.com/api/public/v1/sms/conversations/12125550188/13475550123/read' \
-H "Authorization: Bearer $TB_KEY" \
-H 'Content-Type: application/json' \
-d '{"messageIds":[90218841,90218842]}'

Try it in the playground →