> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.aegi.run/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.aegi.run/_mcp/server.

# Bible

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`).

```ts
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:

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

## Reading

```ts
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:

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

## Searching

```ts
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

```ts
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](/rate-limits).