Mark conversation read
curl --request POST \
--url https://osis.co/api/v1/comms/conversations/{conversation_id}/read \
--header 'Authorization: Bearer <token>'import requests
url = "https://osis.co/api/v1/comms/conversations/{conversation_id}/read"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://osis.co/api/v1/comms/conversations/{conversation_id}/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://osis.co/api/v1/comms/conversations/{conversation_id}/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://osis.co/api/v1/comms/conversations/{conversation_id}/read"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://osis.co/api/v1/comms/conversations/{conversation_id}/read")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://osis.co/api/v1/comms/conversations/{conversation_id}/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyConversations
Mark conversation read
POST /api/v1/comms/conversations/:id/read — mark an iMessage or SMS conversation read.
POST
https://osis.co
/
api
/
v1
/
comms
/
conversations
/
{conversation_id}
/
read
Mark conversation read
curl --request POST \
--url https://osis.co/api/v1/comms/conversations/{conversation_id}/read \
--header 'Authorization: Bearer <token>'import requests
url = "https://osis.co/api/v1/comms/conversations/{conversation_id}/read"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://osis.co/api/v1/comms/conversations/{conversation_id}/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://osis.co/api/v1/comms/conversations/{conversation_id}/read",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://osis.co/api/v1/comms/conversations/{conversation_id}/read"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://osis.co/api/v1/comms/conversations/{conversation_id}/read")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://osis.co/api/v1/comms/conversations/{conversation_id}/read")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_bodyMark an owned conversation as read and request a read receipt from its iMessage/SMS provider thread.
Scope:
The API returns
comms_send
curl -X POST "https://osis.co/api/v1/comms/conversations/$CONVERSATION_ID/read" -H "Authorization: Bearer $COMMS_API_KEY" -H "Content-Type: application/json" -d '{ "force": true }'
force defaults to true, which sends the explicit read action even when the line’s automatic read receipts are disabled. Set force to false only when you want the line’s presence setting to decide.
{ "ok": true, "read": true, "skipped": false, "reason": null }
404 for a conversation outside your organization and 409 provider_conversation_unavailable when the conversation is not backed by an iMessage/SMS thread.⌘I