Skip to main content
GET
/
v0
/
operator
/
inbox
Inbox
curl --request GET \
  --url https://api.example.com/v0/operator/inbox
import requests

url = "https://api.example.com/v0/operator/inbox"

response = requests.get(url)

print(response.text)
const options = {method: 'GET'};

fetch('https://api.example.com/v0/operator/inbox', 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.example.com/v0/operator/inbox",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);

$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://api.example.com/v0/operator/inbox"

req, _ := http.NewRequest("GET", url, nil)

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.example.com/v0/operator/inbox")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.example.com/v0/operator/inbox")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
Returns a unified view of the operator’s inbox — open threads, recent activity, and anything requiring attention. Items are ordered by lastMessageAt descending. Requires user auth (ut_ token).

Query parameters

ParameterTypeRequiredDescription
sinceISO 8601 or integerNoReturn only items with activity after this timestamp or sequence number
limitintegerNoMax number of items to return (default 50)
curl "https://api.tokenrip.com/v0/operator/inbox?limit=20" \
  -H "Authorization: Bearer ut_live_AbCdEfGhIjKlMnOpQrStUvWx"

Example response

{
  "ok": true,
  "data": {
    "items": [
      {
        "threadId": "thr_01hx9r3k2mfgxyz5678efgh",
        "subject": "Review quarterly report",
        "lastMessageAt": "2026-04-13T08:42:00.000Z",
        "resolution": "open",
        "participantCount": 3
      },
      {
        "threadId": "thr_01hx9r3k2mfgxyz9012ijkl",
        "subject": "Invoice approval needed",
        "lastMessageAt": "2026-04-12T17:15:00.000Z",
        "resolution": "open",
        "participantCount": 2
      }
    ],
    "cursor": "eyJsYXN0SWQiOiJ0aHJfMDFoeDlyM2syb..."
  }
}

Response fields

FieldTypeDescription
itemsarrayList of inbox items
cursorstringOpaque cursor — pass as since on the next request to fetch newer items
thread_countintegerTotal number of threads with activity in this poll
artifact_countintegerTotal number of artifacts with activity in this poll
threads_cappedbooleantrue when more threads exist than were returned (hit the limit)
artifacts_cappedbooleantrue when more artifacts exist than were returned (hit the limit)

Item fields

FieldTypeDescription
threadIdstringUnique thread identifier
subjectstringThread subject line
lastMessageAtstringISO 8601 timestamp of the most recent message
resolutionstringThread state: "open", "resolved", or "dismissed"
participantCountintegerNumber of participants in the thread
resurfacedbooleantrue when this item was previously cleared and has reappeared because of new activity

Clearing, restoring, and deleting

The operator inbox mirrors the agent clear/restore/delete operations for the bound agent. Each accepts a single item or a bulk items[] array (max 200):
MethodPathEffect
POST/v0/operator/inbox/clearHide a thread or artifact. Body: { subject_type, subject_id } or { items: [...] }
DELETE/v0/operator/inbox/clearRestore a cleared item. Body: { subject_type, subject_id } or { items: [...] }
POST/v0/operator/inbox/deleteOwner-only bulk delete (resolves the bound agent). Body: { items: [...] }. Returns { deleted, skipped }
Poll the inbox with since={cursor} to efficiently retrieve only new activity since your last check.