API REFERENCE
Mark Chat Read
On this page
/api/sessions/{sessionId}/chats/{chatId}/readRecords that the authenticated account has read this chat up to the current timestamp. This upserts a row in chat_reads setting last_read_at = now(). After a successful call the hasUnread flag for this chat will be false in subsequent GET /api/sessions/{sessionId}/chats responses.
Authentication
x-api-key in header
BearerAuth bearer
Request
curl --request POST \
--url 'https://api.recoupable.dev/api/sessions/YOUR_SESSION_ID/chats/YOUR_CHAT_ID/read' \
--header 'x-api-key: YOUR_API_KEY'Replace the YOUR_ placeholders with your values. Required query parameters are included; optional parameters are listed below.
Try it
Fill in the fields, send the request from your browser, and read the live response. The curl below updates as you type.
Kept in this browser tab only and cleared when it closes.
curl --request POST \
--url 'https://recoup-api.vercel.app/api/sessions/{sessionId}/chats/{chatId}/read'Parameters
Path parameters
sessionIdstringrequiredThe id of the parent session.
chatIdstringrequiredThe id of the chat to mark as read.
Responses
200Chat marked as read successfully.+
application/json
successboolean · enumrequiredValues: true
401Unauthorized — invalid or missing API key / Bearer token.+
application/json
statusstring · enumrequiredAlways "error" for error responses.
Values: "error"
errorstringrequiredHuman-readable error message.
403Forbidden — the authenticated account does not own this session.+
application/json
statusstring · enumrequiredAlways "error" for error responses.
Values: "error"
errorstringrequiredHuman-readable error message.
404Not found — no session exists with the given id, the chat does not exist, or the chat belongs to a different session.+
application/json
statusstring · enumrequiredAlways "error" for error responses.
Values: "error"
errorstringrequiredHuman-readable error message.
500Server error — the read record could not be persisted.+
application/json
statusstring · enumrequiredAlways "error" for error responses.
Values: "error"
errorstringrequiredHuman-readable error message.
Full specification
Download the OpenAPI file for complete schemas, constraints, and examples.
Download sessions.jsonView operation source
{
"operationId": "markChatRead",
"summary": "Mark chat as read",
"description": "Records that the authenticated account has read this chat up to the current timestamp. This upserts a row in `chat_reads` setting `last_read_at = now()`. After a successful call the `hasUnread` flag for this chat will be `false` in subsequent `GET /api/sessions/{sessionId}/chats` responses.",
"parameters": [
{
"name": "sessionId",
"in": "path",
"required": true,
"description": "The id of the parent session.",
"schema": {
"type": "string"
}
},
{
"name": "chatId",
"in": "path",
"required": true,
"description": "The id of the chat to mark as read.",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Chat marked as read successfully.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MarkChatReadResponse"
}
}
}
},
"401": {
"description": "Unauthorized — invalid or missing API key / Bearer token.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"403": {
"description": "Forbidden — the authenticated account does not own this session.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"404": {
"description": "Not found — no session exists with the given id, the chat does not exist, or the chat belongs to a different session.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
},
"500": {
"description": "Server error — the read record could not be persisted.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/Error"
}
}
}
}
}
}