Skip to navigation

Read a book page with source verse identifiers

Read one bounded page of a book from the service token’s organization library, with rights and attribution. Canonical book IDs and sparse source chapter/verse IDs are preserved. Unknown book/translation returns 404; unavailable library access returns 403. No translation is installed or enabled by reading.

Required scopes: translation.read. Scopes intersect current authority; browser cookies never authenticate REST.

Always paginated, including no-query requests: default 50 and maximum 500 verses, with a 3MiB serialized JSON budget that may shorten a page. Every successful response includes next_cursor; follow it as after until null to read the complete book. Nonterminal pages are never empty. Stable canonical chapter/verse order preserves sparse numbering. Every page rechecks authentication, scopes and enabled-library access; cursors do not grant access. Cursors bind account, normalized translation, book and installed edition revision. Page size may change. Shared deployment keys preserve cursors across routing/restarts. Edition changes return 409 stale_cursor; key rotation returns 422 invalid_cursor. Restart traversal after either error. Different resources return 422 cursor_mismatch. A single verse too large for the byte budget returns 413 verse_too_large, without skipping it. Errors include safe detail text. No unbounded mode, total count or page numbers.

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.

Path parameters

organization_idstringRequiredformat: "uuid"
slugstringRequired
book_idintegerRequired1-255

Query parameters

limitintegerOptional1-500Defaults to 50

Maximum verses per page, 1–500; default 50 even when no query parameters are supplied. A 3MiB serialized response cap may produce fewer items. Follow next_cursor until null.

afterstringOptional1-1024 characters

Opaque next_cursor from the preceding page; omit for the first page. Bound to account, normalized translation, canonical book and installed edition revision; limit may change. Invalid/tampered: 422 invalid_cursor. Different resource: 422 cursor_mismatch. Changed edition: 409 stale_cursor. Restart without after after edition/key changes.

Response

Successful operation
translationstring
rightsobject
verseslist of objects
next_cursorstring or null<=1024 characters

Required opaque continuation cursor. Null only on the last page; otherwise pass unchanged as after. Carries no authority.

Errors

413
Content Too Large Error