Skip to navigation

Bible

Bible text across translations, with full-text search.

View as Markdown

Bible endpoints answer with a bare { "data": ... } envelope — no success flag, unlike most of the API.

Finding a translation

Every text endpoint is scoped to a translation, identified either by its code (BBE) or its language code (en_bbe).

const translations = await aegis.bible.translations()
// [{ code: 'BBE', language: 'en', name: 'Bible in Basic English', description: '...' }]

languages and types describe the dataset itself rather than a translation:

await aegis.bible.languages() // ['en', 'es', ...]
await aegis.bible.types('en') // translation types in that language

Reading

await aegis.bible.books('BBE')
// [{ name: 'Genesis', chapterCount: 20 }, ...]
await aegis.bible.chapter('BBE', 'Genesis', 1)
// [{ chapter: 1, verse: 1, text: 'In the beginning...' }, ...]

Several verses at once

verses takes comma-separated references, which is how you build a cross- reference or a daily verse:

await aegis.bible.verses('BBE', { refs: 'Genesis 1:1,Genesis 1:2' })
// [{ reference: 'Genesis 1:1', text: '...' }, ...]

Searching

const hits = await aegis.bible.search('BBE', { q: 'love' })
// [{ book: 'John', chapter: 3, verse: 16, text: '...' }, ...]

search is a full-text lookup inside one translation, not across all of them — pass the translation you want searched.

Dataset metadata

await aegis.bible.data('en', 'bible')
// { language: 'en', type: 'bible', bookCount: 66, books: [...] }

Errors

An unknown translation, book, or chapter answers 404 with the underlying message. Anything else — the data source being unreachable, for instance — answers 503 with a generic "The Bible data source is temporarily unavailable."

All Bible endpoints are cheap and are not meaningfully affected by rate limits.