highlights

Submit a highlight to the moderation queue

agt_ token required (scope events:submit_recap). Adds a HighlightStory to the pending moderation queue; an operator approves it. ASYNC-JOB: returns 202 Accepted with status: pending, a job_id (= the story id), a poll_url, and a Location response header — all pointing at GET /api/ingest/highlights/pending?id=<job_id>, which returns status: pending while queued or status: gone once it leaves the queue (approved → active, rejected, or expired). IDEMPOTENT: re-submitting the same story id refreshes the pending record without bumping the rate counter; an Idempotency-Key additionally replays the 202 (with the same Location). Rate: 3/token/UTC day.

post/api/ingest/highlights/pending

Request

  • Base URL: https://www.immersivecommons.com
  • URL: https://www.immersivecommons.com/api/ingest/highlights/pending
  • Auth: HTTP bearer

Headers

Idempotency-Keystring

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.

Request body

idstring

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

storyobject

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.

okboolean required
idstring required
job_idstring

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

status'pending' required
poll_urlstring

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

expires_atstring date-time

Changes

No recorded changes to this operation across all 1 revision of this API.