Skip to navigation

Insert a scripture queue item

Required scopes: live.update, translation.read.

These resources represent the existing scripture stack published to the Live, not a separate draft playlist. Items are one canonical verse in one translation. IDs are scoped by Live, opaque, stable through reorder/metadata changes/restart, and change when a deleted item is recreated. Presentation mode returns 409 for queue reads/writes. Requires current If-Match; missing:428, stale:412, invalid:422. Current service scopes, organization ownership/status/processing and persisted sequence are rechecked before saving. Stopped Lives return 409. Changes persist before audience publication, switch/retain Reader mode, show remaining verses and resume a paused Live; deleting the last item clears the display. Reads a single enabled/installed verse under the organization library boundary. Inserts before an existing item ID or appends. Duplicate canonical verse/translation returns 409 queue_item_exists. At 100 items insertion returns 409 queue_full. A new item returns 201 with Location. Also accepts finite personal bearer tokens for resources owned by the caller’s personal account. Personal tokens cannot operate organization Lives, use collaborators’/children’s authority, or publish presentations. Current personal token scopes and user permissions are rechecked after waits. Registered delegated OAuth access tokens are accepted within these personal boundaries; /me and account metadata additionally require identity.read. Optional Idempotency-Key atomically records a successful creation for 24-hour replay; current authorization is rechecked. Changed payload or original If-Match returns 409 idempotency_conflict. Replay precedes stale-version and quota evaluation.

Response headers:

  • ETag (201): Shared Live sequence validator. Any relevant metadata, display, playback or workspace change invalidates it.
  • Location (201): Relative URL of the created queue item.

Authentication

AuthorizationBearer

Organization-owned service token. Issue the initial token in organization credential settings. Scopes are documented per operation via x-required-scopes; they are not OAuth scopes.

OR
AuthorizationBearer

Personal bearer credential issued through existing account settings or browser-approved CLI flow. Must be active, finite, unexpired, unrevoked, within any rotation overlap, and bound to an active personal membership/user/account. Explicit scopes intersect current user permissions; empty existing personal scopes inherit current user authority. Not an OAuth grant or service token. Browser cookies are ignored.

OR
AuthorizationBearer

Registered public-client OAuth for personal-account resources only. Exact registered HTTPS or fixed-port literal loopback redirect; S256 required; explicit consent. No organization/presentation authority. identity.read is required for /me and account metadata. Scope intersection with current user authority; no empty-scope inheritance.

Path parameters

live_idstringRequired

Headers

If-MatchstringRequiredformat: "^"live-[0-9]+"$"

Shared Live sequence validator. Any relevant metadata, display, playback or workspace change invalidates it. Missing:428; stale:412; malformed, weak, wildcard or list:422.

Idempotency-KeystringOptionalformat: "^[A-Za-z0-9._:-]{1,128}$"1-128 characters

Optional case-sensitive retry key, retained 24 hours from successful commit. Scoped to credential principal (stable service-token ID; personal bt_ credential; delegated OAuth grant), account and concrete method/path. Payload, If-Match, query string and Content-Type must match. JSON object key order is ignored; queue reference casing/defaults are normalized; raw upload/import bytes are hashed. Replays retain original success body, Location and ETag with a fresh X-Request-Id, after current authority/ownership/processing/library checks. Same scope/key with changed input:409 idempotency_conflict. Concurrent requests serialize; a contended retry lock can return 409 idempotency_in_progress; bounded database waits can return 503. Errors are not recorded. After expiry, a key is treated as new; original resource/job lifetime is unchanged. No key means no retry guarantee.

Request

This endpoint expects an object.
referenceobjectRequired
before_item_idstring or nullOptionalformat: "^[a-f0-9]{64}$"
Insert before this item ID. Omit or use null to append. Unknown anchor returns 404.

Response headers

X-Request-IdstringOptional
ETagstringOptionalformat: "^"live-[0-9]+"$"
Shared Live sequence validator. Any relevant metadata, display, playback or workspace change invalidates it.
LocationstringOptional
Relative URL of the created queue item.

Response

Successful operation
idstringformat: "^[a-f0-9]{64}$"

Opaque stable queue item ID. Preserved through reordering, metadata edits and restart; removing/recreating a verse yields a new ID.

positioninteger>=0

Zero-based position in the entire current queue, not the current page.

verseobject

Errors

401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
422
Unprocessable Entity Error
429
Too Many Requests Error
503
Service Unavailable Error