curl --request POST \
--url https://api.reply.io/v3/inbox/threads/mark-as-unread \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"threadIds": [
58217,
58198
]
}
'import requests
url = "https://api.reply.io/v3/inbox/threads/mark-as-unread"
payload = { "threadIds": [58217, 58198] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({threadIds: [58217, 58198]})
};
fetch('https://api.reply.io/v3/inbox/threads/mark-as-unread', 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.reply.io/v3/inbox/threads/mark-as-unread",
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([
'threadIds' => [
58217,
58198
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.reply.io/v3/inbox/threads/mark-as-unread"
payload := strings.NewReader("{\n \"threadIds\": [\n 58217,\n 58198\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.reply.io/v3/inbox/threads/mark-as-unread")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"threadIds\": [\n 58217,\n 58198\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/inbox/threads/mark-as-unread")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"threadIds\": [\n 58217,\n 58198\n ]\n}"
response = http.request(request)
puts response.read_body{}Mark threads as unread
inbox:operate scope (or a broader one that includes it).
Use this endpoint when you need to flag one or more conversations as needing attention again by restoring their unread state. Threads are processed one by one; the response returns only the thread ids that were not updated, each with its error details, so an empty object means everything succeeded. A per-item error is notFound when the thread does not exist, or forbidden when you are not allowed to access it.
curl --request POST \
--url https://api.reply.io/v3/inbox/threads/mark-as-unread \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"threadIds": [
58217,
58198
]
}
'import requests
url = "https://api.reply.io/v3/inbox/threads/mark-as-unread"
payload = { "threadIds": [58217, 58198] }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({threadIds: [58217, 58198]})
};
fetch('https://api.reply.io/v3/inbox/threads/mark-as-unread', 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.reply.io/v3/inbox/threads/mark-as-unread",
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([
'threadIds' => [
58217,
58198
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.reply.io/v3/inbox/threads/mark-as-unread"
payload := strings.NewReader("{\n \"threadIds\": [\n 58217,\n 58198\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.reply.io/v3/inbox/threads/mark-as-unread")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"threadIds\": [\n 58217,\n 58198\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.reply.io/v3/inbox/threads/mark-as-unread")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"threadIds\": [\n 58217,\n 58198\n ]\n}"
response = http.request(request)
puts response.read_body{}Authorizations
Authenticate every request with a Bearer token. Pass your Reply API key in the
Authorization header:
Authorization: Bearer <your-api-key>
Get your API key from the Reply dashboard: Settings → API Key.
Body
Identifier list for non-atomic bulk thread operations.
1x >= 1Response
Per-item results. Threads not present in the dictionary succeeded.
Per-item error for non-atomic bulk operations. Only failed items are returned in the response dictionary. Items not present in the dictionary succeeded.
Show child attributes
Show child attributes