Marks a Modmail thread read for the caller up to seenAt. Read state is per reader: the member's own, and each moderator's own. The mark only moves forward and never past now. Sending a message marks the thread read for its sender.
Input
application/jsoncommunity
stringat-uri
Required
An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).
member
stringdid
Optional
Whose thread. Absent means the caller's own; another account's needs manage-mail.
seenAt
stringdatetime
Required
An RFC 3339 formatted timestamp.
Output
application/jsonErrors
AuthenticationRequired
CommunityNotFound
InsufficientRole
InvalidRequest
ThreadNotFound
Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"description": "Marks a Modmail thread read for the caller up to seenAt. Read state is per reader: the member's own, and each moderator's own. The mark only moves forward and never past now. Sending a message marks the thread read for its sender.",
"errors": [
{
"name": "AuthenticationRequired"
},
{
"name": "CommunityNotFound"
},
{
"name": "InsufficientRole"
},
{
"name": "InvalidRequest"
},
{
"name": "ThreadNotFound"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"community": {
"format": "at-uri",
"type": "string"
},
"member": {
"description": "Whose thread. Absent means the caller's own; another account's needs manage-mail.",
"format": "did",
"type": "string"
},
"seenAt": {
"format": "datetime",
"type": "string"
}
},
"required": [
"community",
"seenAt"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {},
"type": "object"
}
},
"type": "procedure"
}