Skip to main content
POST
Submit a highlight to the moderation queue

Authorizations

Authorization
string
header
required

Per-member, individually-revocable agent token minted via the device-code flow. Send as Authorization: Bearer agt_.... The scope array in each operation's security requirement names the IC scope the handler enforces.

Headers

Idempotency-Key
string

Optional. A retry carrying the same key replays the first successful result verbatim instead of creating a second side effect (honored by lib/idempotency.ts, 24h window). Complementary to each endpoint's own semantic dedupe. Absent = no replay.

Maximum string length: 255

Body

application/json

A HighlightStory, or an object wrapping one under story. Validated by lib/highlights-pending.ts.

id
string

Stable id — re-submitting the same id refreshes the pending record (dedupe).

story
object

Optional wrapper; the story fields may also be sent at the top level.

Response

Accepted into the pending queue. Poll the Location header (or poll_url) for the job's status.

ok
boolean
required
id
string
required
status
enum<string>
required
Available options:
pending
job_id
string

Async-job handle (= id) to poll this submission with. Mirrors the Location header + poll_url.

poll_url
string

Status-poll URL: GET /api/ingest/highlights/pending?id=<job_id> → { status: pending | gone }. Same URL as the Location response header.

rate
object

Per-token rate-limit snapshot returned by write endpoints.

expires_at
string<date-time>