A valid request URL is required to generate request examples{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Clear my badge
Marks everything unread as read, for this contact and nobody else — and within the team it was called inside, resolved exactly as the feed resolves it.
That scope is the point rather than a detail: somebody clearing the badge on a screen showing one team must not mark another team’s messages read, because nothing will ever draw them as unread again. Messages addressed to the person themselves are cleared with it — they were on the screen that was just read.
Idempotent by the statement rather than by a check made first: the update claims only what is unread, so a second call matches nothing and the timestamps the first one wrote do not move.
It answers 204 and deliberately not a count. “How many did I just clear” is a fact about the race with whatever arrived while the request was in flight, and a client that rendered it would be rendering that race.
A valid request URL is required to generate request examples{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Autorizações
A contact session token, uk_ct_…. Belongs to one of the developer's own users, and reads only that user's data.
Cabeçalhos
The customer this call is acting inside — the same arrangement as X-Organization-Id, one plane down. Switching customers is navigation, not a mutation: nothing is stored, you send a different header, and the membership JOIN behind it decides what you may do there. An id you are not a member of matches no row and answers 404. Absent, the contact's oldest membership answers.
Resposta
Cleared, or already clear.