Update conversation
Update a conversation's read status, AI tag, custom tags, or AI reply-agent mode.
Set markRead: true or isRead: true to mark all unread replies as read.
Set isRead: false to mark lead replies as unread.
Set aiTag to a string to apply a tag, or null to remove it.
Set aiMode to off, followups_only, or active to control the campaign AI agent for this conversation.
Only modes supported by the campaign's assigned agent are accepted.
curl -X PATCH "https://api.sendkit.ai/v1/inbox/example_string" \
-H "Content-Type: application/json" \
-H "X-Api-Key: YOUR_API_KEY" \
-d '{
"markRead": true
}'
import requests
import json
url = "https://api.sendkit.ai/v1/inbox/example_string"
headers = {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
}
data = {
"markRead": true
}
response = requests.patch(url, headers=headers, json=data)
print(response.json())
const response = await fetch("https://api.sendkit.ai/v1/inbox/example_string", {
method: "PATCH",
headers: {
"Content-Type": "application/json",
"X-Api-Key": "YOUR_API_KEY"
},
body: JSON.stringify({
"markRead": true
})
});
const data = await response.json();
console.log(data);
package main
import (
"fmt"
"net/http"
"bytes"
"encoding/json"
)
func main() {
data := []byte(`{
"markRead": true
}`)
req, err := http.NewRequest("PATCH", "https://api.sendkit.ai/v1/inbox/example_string", bytes.NewBuffer(data))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-Api-Key", "YOUR_API_KEY")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println("Response Status:", resp.Status)
}
require 'net/http'
require 'json'
uri = URI('https://api.sendkit.ai/v1/inbox/example_string')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(uri)
request['Content-Type'] = 'application/json'
request['X-Api-Key'] = 'YOUR_API_KEY'
request.body = '{
"markRead": true
}'
response = http.request(request)
puts response.body
{
"success": true,
"data": {
"id": "664a1b2c3d4e5f6a7b8c9d0e",
"aiTag": "interested",
"tags": [
"vip"
],
"aiMode": "active"
}
}
{
"error": "Bad Request",
"message": "The request contains invalid parameters or malformed data",
"code": 400,
"details": [
{
"field": "email",
"message": "Invalid email format"
}
]
}
{
"error": "Not Found",
"message": "The requested resource was not found",
"code": 404
}
/v1/inbox/{conversationId}Target server for requests. Edit to use your own host.
Platform API key (sk_user_...) or Workspace API key (sk_...)
Conversation ID (the inbox thread ID)
The media type of the request body
Set to true to mark all unread replies as read
Set to true to mark as read, false to mark as unread
AI tag to apply (or null to remove)
Per-conversation AI reply-agent mode. off disables the agent, followups_only allows AI follow-ups only, and active allows AI auto-replies plus any supported follow-ups.
The campaign must have an AI agent enabled, and the selected mode must match that agent's capabilities.
Request Preview
Response
Response will appear here after sending the request
Authentication
API Key for authentication. Platform API key (sk_user_...) or Workspace API key (sk_...)
Path Parameters
Conversation ID (the inbox thread ID)
Body
Set to true to mark all unread replies as read
Set to true to mark as read, false to mark as unread
AI tag to apply (or null to remove)
Per-conversation AI reply-agent mode. off disables the agent, followups_only allows AI follow-ups only, and active allows AI auto-replies plus any supported follow-ups.
The campaign must have an AI agent enabled, and the selected mode must match that agent's capabilities.
offfollowups_onlyactive