Mark as Read
curl --request POST \
--url https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read \
--header 'Content-Type: application/json' \
--data '
{
"messageId": "<string>"
}
'import requests
url = "https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read"
payload = { "messageId": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({messageId: '<string>'})
};
fetch('https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'messageId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read"
payload := strings.NewReader("{\n \"messageId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read")
.header("Content-Type", "application/json")
.body("{\n \"messageId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"messageId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyChat — Messages
Mark as Read
Advance the current user’s read cursor to a given message
POST
/
:projectId
/
api
/
v7
/
conversations
/
:conversationId
/
read
Mark as Read
curl --request POST \
--url https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read \
--header 'Content-Type: application/json' \
--data '
{
"messageId": "<string>"
}
'import requests
url = "https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read"
payload = { "messageId": "<string>" }
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({messageId: '<string>'})
};
fetch('https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'messageId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read"
payload := strings.NewReader("{\n \"messageId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read")
.header("Content-Type", "application/json")
.body("{\n \"messageId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.replyke.com/api/v6/:projectId/api/v7/conversations/:conversationId/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"messageId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyUpdates the current user’s
lastReadAt timestamp on their conversation membership to the createdAt of the specified message. This reduces the unread count for the conversation.
The operation is monotonic — lastReadAt is never moved backward. If the provided message is older than the current lastReadAt, the call is a no-op.
Path Parameters
string
required
The ID of the conversation.
Body Parameters
string
required
The ID of the message to mark as read. The user’s
lastReadAt will be set to this message’s createdAt.Response
{ "message": "Marked as read." }
Error Responses
Forbidden — 403
Forbidden — 403
{ "error": "You are not an active member of this conversation.", "code": "chat/not-a-member" }
⌘I

