Skip to content

Live Approvals queue stream (console plane, Server-Sent Events)

GET
/v1/admin/orgs/{org_id}/projects/{project_id}/reviews/stream

The live human Approvals feed: a text/event-stream of review.* events across EVERY inbox the org owns, sourced from the SAME monotonic event journal the agent-plane stream tails; so both planes read one event log (spec §6). Authenticated by REDEEMING the single-use ticket query parameter (created via POST /v1/admin/realtime/ticket), because a browser EventSource cannot set a bearer header. Each frame’s id: is a monotonic resume token: on reconnect, pass it as Last-Event-ID (or the last_event_id query param) and the server replays every review event after it. The console applies a RealtimeEventDeduper keyed on this id so a replay-on-reconnect never double-applies. Customer-scoped to the ticket; no cross-tenant leak.

org_id
required
string
project_id
required
string
ticket
required
string

Single-use ticket from POST /v1/admin/realtime/ticket.

last_event_id
string

SSE resume token as a query parameter, for clients (curl, fetch) that cannot set the Last-Event-ID header. Same semantics: replay events after this id.

Last-Event-ID
string

SSE resume token. On reconnect, set this to the id of the last event you received and the server replays every event after it. EventSource sets this header automatically; non-browser clients may instead pass the last_event_id query parameter.

An open SSE stream of review.* events.

One event from the SSE stream, carried as the data: payload of an text/event-stream frame. It is the SAME envelope a webhook delivers, so a stream consumer and a webhook consumer see byte-identical data. The SSE frame’s id: field carries the monotonic resume token (pass it back as Last-Event-ID on reconnect) and its event: field carries event below.

object
event

Event type, e.g. message.received.

string
Example
message.received
id

Opaque event id (evt_...).

string
created_at
string format: date-time
inbox

The inbox this event concerns.

string
message

The canonical message wire shape (agent plane).

object
id

Opaque

string
Example
msg_8Tz
thread_id
string
Example
thr_9aB
inbox
string
Example
agent7@extrovertmail.com
direction

Derived relative to the owning inbox.

string
Allowed values: inbound outbound
from

A structured RFC5322 address.

object
name
string
Example
Acme Support
email
required
string format: email
Example
support@acme.test
to
Array<object>

A structured RFC5322 address.

object
name
string
Example
Acme Support
email
required
string format: email
Example
support@acme.test
cc
Array<object>

A structured RFC5322 address.

object
name
string
Example
Acme Support
email
required
string format: email
Example
support@acme.test
reply_to
Array<object>

A structured RFC5322 address.

object
name
string
Example
Acme Support
email
required
string format: email
Example
support@acme.test
subject
string
text

Decoded UTF-8 text/plain MIME alternative; null when the message had no plain-text part. Never derived from HTML.

string
nullable
html

Decoded text/html MIME alternative; null for text-only mail. Never synthesized from plain text.

string
nullable
extracted_text

Best-effort derivative of text with quoted history and signatures removed; null when text is absent or no authored text remains. Not authoritative.

string
nullable
extracted_html

Best-effort derivative of html with common quoted-history containers removed; null when html is absent or no authored HTML remains. Not authoritative.

string
nullable
date

Original Date header value.

string
message_id

RFC5322 Message-ID.

string
in_reply_to

RFC5322 In-Reply-To header.

string
references

RFC5322 References header chain.

string
folder
string
seen

Native IMAP \Seen flag (read state).

boolean

Missing or invalid credential.

The canonical error envelope. error is a stable machine code.

object
error
required

Stable error code (e.g. unauthorized, forbidden, not_found, invalid, quota_exceeded, rate_limited).

string
Example
forbidden
message

Human-readable detail (never leaks internals).

string
Example
missing required scope