# Bible API v2: endpoint and schema reference

This reference is generated from the checked-in [OpenAPI contract](https://api.getbible.net/v2/openapi.json). Return to the [integration guide](/api/bible/v2/) for workflows and ready-to-run examples.

Resolved request server: `https://api.getbible.net/v2`.

## GET /translations.json

Index of the translations

Every translation in the tree with its details and checksum, keyed by abbreviation.

Operation ID: `listTranslations`.

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Index of the translations | application/json | #/components/schemas/TranslationIndex |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "translations"
  ],
  "summary": "Index of the translations",
  "description": "Every translation in the tree with its details and checksum, keyed by abbreviation.",
  "operationId": "listTranslations",
  "responses": {
    "200": {
      "description": "Index of the translations",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TranslationIndex"
          }
        }
      }
    }
  },
  "parameters": []
}
```

</details>

## GET /translations.txt

Index of the translations as text

Every translation in the tree, one per line, with the columns: #, language, translation, abbreviation, direction, filename, sha.

Operation ID: `listTranslationsText`.

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Index of the translations as text | text/plain | #/components/schemas/TabSeparatedIndex |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "translations"
  ],
  "summary": "Index of the translations as text",
  "description": "Every translation in the tree, one per line, with the columns: #, language, translation, abbreviation, direction, filename, sha.",
  "operationId": "listTranslationsText",
  "responses": {
    "200": {
      "description": "Index of the translations as text",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/TabSeparatedIndex"
          }
        }
      }
    }
  },
  "parameters": []
}
```

</details>

## GET /translations.sha

Checksum of the index of the translations

The SHA-1 checksum of translations.json.

Operation ID: `getTranslationIndexChecksum`.

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of the index of the translations | text/plain | #/components/schemas/Sha1File |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of the index of the translations",
  "description": "The SHA-1 checksum of translations.json.",
  "operationId": "getTranslationIndexChecksum",
  "responses": {
    "200": {
      "description": "Checksum of the index of the translations",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    }
  },
  "parameters": []
}
```

</details>

## GET /checksum.json

Checksums of the translations

The SHA-1 checksum of every translation file, keyed by abbreviation.

Operation ID: `listTranslationChecksums`.

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksums of the translations | application/json | #/components/schemas/ChecksumIndex |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksums of the translations",
  "description": "The SHA-1 checksum of every translation file, keyed by abbreviation.",
  "operationId": "listTranslationChecksums",
  "responses": {
    "200": {
      "description": "Checksums of the translations",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ChecksumIndex"
          }
        }
      }
    }
  },
  "parameters": []
}
```

</details>

## GET /checksum.txt

Checksums of the translations as text

The SHA-1 checksum of every translation file, one per line, with the columns: #, filename, sha.

Operation ID: `listTranslationChecksumsText`.

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksums of the translations as text | text/plain | #/components/schemas/TabSeparatedIndex |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksums of the translations as text",
  "description": "The SHA-1 checksum of every translation file, one per line, with the columns: #, filename, sha.",
  "operationId": "listTranslationChecksumsText",
  "responses": {
    "200": {
      "description": "Checksums of the translations as text",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/TabSeparatedIndex"
          }
        }
      }
    }
  },
  "parameters": []
}
```

</details>

## GET /checksum.sha

Checksum of the checksums of the translations

The SHA-1 checksum of checksum.json.

Operation ID: `getTranslationChecksumIndexChecksum`.

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of the checksums of the translations | text/plain | #/components/schemas/Sha1File |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of the checksums of the translations",
  "description": "The SHA-1 checksum of checksum.json.",
  "operationId": "getTranslationChecksumIndexChecksum",
  "responses": {
    "200": {
      "description": "Checksum of the checksums of the translations",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    }
  },
  "parameters": []
}
```

</details>

## GET /{abbreviation}.json

A complete translation

The whole translation: every book with every chapter and verse, and the details of the source module.

Operation ID: `getTranslation`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | A complete translation | application/json | #/components/schemas/Translation |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "translations"
  ],
  "summary": "A complete translation",
  "description": "The whole translation: every book with every chapter and verse, and the details of the source module.",
  "operationId": "getTranslation",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    }
  ],
  "responses": {
    "200": {
      "description": "A complete translation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Translation"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}.sha

Checksum of a translation

The SHA-1 checksum of the translation file.

Operation ID: `getTranslationChecksum`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of a translation | text/plain | #/components/schemas/Sha1File |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of a translation",
  "description": "The SHA-1 checksum of the translation file.",
  "operationId": "getTranslationChecksum",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    }
  ],
  "responses": {
    "200": {
      "description": "Checksum of a translation",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/books.json

Index of the books of a translation

Every book of the translation with its details and checksum, keyed by book number.

Operation ID: `listBooks`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Index of the books of a translation | application/json | #/components/schemas/BookIndex |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "books"
  ],
  "summary": "Index of the books of a translation",
  "description": "Every book of the translation with its details and checksum, keyed by book number.",
  "operationId": "listBooks",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    }
  ],
  "responses": {
    "200": {
      "description": "Index of the books of a translation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/BookIndex"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/books.txt

Index of the books of a translation as text

Every book of the translation, one per line, with the columns: #, language, translation, abbreviation, direction, name, filename, sha.

Operation ID: `listBooksText`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Index of the books of a translation as text | text/plain | #/components/schemas/TabSeparatedIndex |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "books"
  ],
  "summary": "Index of the books of a translation as text",
  "description": "Every book of the translation, one per line, with the columns: #, language, translation, abbreviation, direction, name, filename, sha.",
  "operationId": "listBooksText",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    }
  ],
  "responses": {
    "200": {
      "description": "Index of the books of a translation as text",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/TabSeparatedIndex"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/books.sha

Checksum of the index of the books of a translation

The SHA-1 checksum of the books.json of the translation.

Operation ID: `getBookIndexChecksum`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of the index of the books of a translation | text/plain | #/components/schemas/Sha1File |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of the index of the books of a translation",
  "description": "The SHA-1 checksum of the books.json of the translation.",
  "operationId": "getBookIndexChecksum",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    }
  ],
  "responses": {
    "200": {
      "description": "Checksum of the index of the books of a translation",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/checksum.json

Checksums of the books of a translation

The SHA-1 checksum of every book file of the translation, keyed by book number.

Operation ID: `listBookChecksums`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksums of the books of a translation | application/json | #/components/schemas/ChecksumIndex |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksums of the books of a translation",
  "description": "The SHA-1 checksum of every book file of the translation, keyed by book number.",
  "operationId": "listBookChecksums",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    }
  ],
  "responses": {
    "200": {
      "description": "Checksums of the books of a translation",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ChecksumIndex"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/checksum.txt

Checksums of the books of a translation as text

The SHA-1 checksum of every book file of the translation, one per line, with the columns: #, filename, sha.

Operation ID: `listBookChecksumsText`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksums of the books of a translation as text | text/plain | #/components/schemas/TabSeparatedIndex |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksums of the books of a translation as text",
  "description": "The SHA-1 checksum of every book file of the translation, one per line, with the columns: #, filename, sha.",
  "operationId": "listBookChecksumsText",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    }
  ],
  "responses": {
    "200": {
      "description": "Checksums of the books of a translation as text",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/TabSeparatedIndex"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/checksum.sha

Checksum of the checksums of the books of a translation

The SHA-1 checksum of the checksum.json of the translation.

Operation ID: `getBookChecksumIndexChecksum`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of the checksums of the books of a translation | text/plain | #/components/schemas/Sha1File |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of the checksums of the books of a translation",
  "description": "The SHA-1 checksum of the checksum.json of the translation.",
  "operationId": "getBookChecksumIndexChecksum",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    }
  ],
  "responses": {
    "200": {
      "description": "Checksum of the checksums of the books of a translation",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}.json

A complete book

One book of the translation with every chapter and verse.

Operation ID: `getBook`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | A complete book | application/json | #/components/schemas/Book |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "books"
  ],
  "summary": "A complete book",
  "description": "One book of the translation with every chapter and verse.",
  "operationId": "getBook",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "A complete book",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Book"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}.sha

Checksum of a book

The SHA-1 checksum of the book file.

Operation ID: `getBookChecksum`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of a book | text/plain | #/components/schemas/Sha1File |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of a book",
  "description": "The SHA-1 checksum of the book file.",
  "operationId": "getBookChecksum",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "Checksum of a book",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}/chapters.json

Index of the chapters of a book

Every chapter of the book with its details and checksum, keyed by chapter number.

Operation ID: `listChapters`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Index of the chapters of a book | application/json | #/components/schemas/ChapterIndex |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "chapters"
  ],
  "summary": "Index of the chapters of a book",
  "description": "Every chapter of the book with its details and checksum, keyed by chapter number.",
  "operationId": "listChapters",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "Index of the chapters of a book",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ChapterIndex"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}/chapters.txt

Index of the chapters of a book as text

Every chapter of the book, one per line, with the columns: #, language, translation, abbreviation, textdirection, book_nr, book_name, filename, sha.

Operation ID: `listChaptersText`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Index of the chapters of a book as text | text/plain | #/components/schemas/TabSeparatedIndex |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "chapters"
  ],
  "summary": "Index of the chapters of a book as text",
  "description": "Every chapter of the book, one per line, with the columns: #, language, translation, abbreviation, textdirection, book_nr, book_name, filename, sha.",
  "operationId": "listChaptersText",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "Index of the chapters of a book as text",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/TabSeparatedIndex"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}/chapters.sha

Checksum of the index of the chapters of a book

The SHA-1 checksum of the chapters.json of the book.

Operation ID: `getChapterIndexChecksum`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of the index of the chapters of a book | text/plain | #/components/schemas/Sha1File |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of the index of the chapters of a book",
  "description": "The SHA-1 checksum of the chapters.json of the book.",
  "operationId": "getChapterIndexChecksum",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "Checksum of the index of the chapters of a book",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}/checksum.json

Checksums of the chapters of a book

The SHA-1 checksum of every chapter file of the book, keyed by chapter number.

Operation ID: `listChapterChecksums`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksums of the chapters of a book | application/json | #/components/schemas/ChecksumIndex |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksums of the chapters of a book",
  "description": "The SHA-1 checksum of every chapter file of the book, keyed by chapter number.",
  "operationId": "listChapterChecksums",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "Checksums of the chapters of a book",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ChecksumIndex"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}/checksum.txt

Checksums of the chapters of a book as text

The SHA-1 checksum of every chapter file of the book, one per line, with the columns: #, filename, sha.

Operation ID: `listChapterChecksumsText`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksums of the chapters of a book as text | text/plain | #/components/schemas/TabSeparatedIndex |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksums of the chapters of a book as text",
  "description": "The SHA-1 checksum of every chapter file of the book, one per line, with the columns: #, filename, sha.",
  "operationId": "listChapterChecksumsText",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "Checksums of the chapters of a book as text",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/TabSeparatedIndex"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}/checksum.sha

Checksum of the checksums of the chapters of a book

The SHA-1 checksum of the checksum.json of the book.

Operation ID: `getChapterChecksumIndexChecksum`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of the checksums of the chapters of a book | text/plain | #/components/schemas/Sha1File |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of the checksums of the chapters of a book",
  "description": "The SHA-1 checksum of the checksum.json of the book.",
  "operationId": "getChapterChecksumIndexChecksum",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "Checksum of the checksums of the chapters of a book",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}/{chapter}.json

A complete chapter

One chapter of a book with every verse.

Operation ID: `getChapter`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |
| `chapter` | path | Yes | integer | 1 | Chapter number, as listed in the chapters.json of the book |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | A complete chapter | application/json | #/components/schemas/Chapter |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "chapters"
  ],
  "summary": "A complete chapter",
  "description": "One chapter of a book with every verse.",
  "operationId": "getChapter",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    },
    {
      "name": "chapter",
      "in": "path",
      "required": true,
      "description": "Chapter number, as listed in the chapters.json of the book",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "A complete chapter",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Chapter"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /{abbreviation}/{book}/{chapter}.sha

Checksum of a chapter

The SHA-1 checksum of the chapter file.

Operation ID: `getChapterChecksum`.

| Parameter | In | Required | Type | Example / default | Description |
| --- | --- | --- | --- | --- | --- |
| `abbreviation` | path | Yes | string | kjv | Abbreviation of the translation, as listed in translations.json |
| `book` | path | Yes | integer | 1 | Book number, as listed in the books.json of the translation |
| `chapter` | path | Yes | integer | 1 | Chapter number, as listed in the chapters.json of the book |

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of a chapter | text/plain | #/components/schemas/Sha1File |
| 404 | No such file: the translation, book or chapter is not part of this tree | — | See contract |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of a chapter",
  "description": "The SHA-1 checksum of the chapter file.",
  "operationId": "getChapterChecksum",
  "parameters": [
    {
      "name": "abbreviation",
      "in": "path",
      "required": true,
      "description": "Abbreviation of the translation, as listed in translations.json",
      "schema": {
        "type": "string",
        "pattern": "^[a-z0-9]+$",
        "enum": [
          "akjv",
          "alb",
          "aleppo",
          "almeida",
          "aov",
          "arabicsv",
          "asv",
          "basicenglish",
          "basque",
          "bibelselskap",
          "bkr",
          "breton",
          "burcbcm",
          "calo",
          "canisius",
          "cep",
          "chamorro",
          "che1860",
          "chiunl",
          "cns",
          "cnt",
          "codex",
          "coptic",
          "cornilescu",
          "croatia",
          "csielizabeth",
          "cus",
          "cut",
          "danish",
          "danish1819",
          "danish1871",
          "darby",
          "dari",
          "douayrheims",
          "easternarmenian",
          "elberfelder",
          "elberfelder1905",
          "esperanto",
          "estonian",
          "finnish1776",
          "gaelic",
          "giovanni",
          "gothic",
          "japbungo",
          "japdenmo",
          "japkougo",
          "japraguet",
          "judson",
          "karoli",
          "kjv",
          "kjva",
          "klv",
          "korean",
          "koreankjv",
          "latvian",
          "lithuanian",
          "livre",
          "livretr",
          "ls1910",
          "luther1545",
          "lxx",
          "mal1910",
          "manxgaelic",
          "maori",
          "martin",
          "mg1865",
          "moderngreek",
          "modernhebrew",
          "monkjv",
          "ndebele",
          "norsmb",
          "peshitta",
          "pohnold",
          "pohnpeian",
          "polgdanska",
          "polugdanska",
          "potawatomi",
          "pyharaamattu1933",
          "pyharaamattu1992",
          "riveduta",
          "rv1858",
          "sahidic",
          "schlachter",
          "shona",
          "srkdekavski",
          "srkdijekav",
          "sse",
          "statenvertaling",
          "statenvertalinga",
          "swahili",
          "swedish",
          "swekarlxii",
          "swekarlxii1873",
          "synodal",
          "tagalog",
          "tausug",
          "textusreceptus",
          "thai",
          "tischendorf",
          "tpikjpb",
          "turhadi",
          "turkish",
          "tyndale",
          "ukranian",
          "ukrogienko",
          "uma",
          "valera",
          "vietnamese",
          "vulgate",
          "wb",
          "web",
          "westcotthort",
          "westernarmenian",
          "weymouth",
          "wycliffe",
          "ylt",
          "zhuromsky"
        ]
      },
      "example": "kjv"
    },
    {
      "name": "book",
      "in": "path",
      "required": true,
      "description": "Book number, as listed in the books.json of the translation",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 89
      },
      "example": 1
    },
    {
      "name": "chapter",
      "in": "path",
      "required": true,
      "description": "Chapter number, as listed in the chapters.json of the book",
      "schema": {
        "type": "integer",
        "minimum": 1
      },
      "example": 1
    }
  ],
  "responses": {
    "200": {
      "description": "Checksum of a chapter",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}
```

</details>

## GET /openapi.json

This document

The OpenAPI description of this tree, written at the end of the build that produced it.

Operation ID: `getOpenApi`.

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | OpenAPI 3.1 document | application/json | object |

<details><summary>Complete operation contract</summary>

```json
{
  "summary": "This document",
  "description": "The OpenAPI description of this tree, written at the end of the build that produced it.",
  "operationId": "getOpenApi",
  "responses": {
    "200": {
      "description": "OpenAPI 3.1 document",
      "content": {
        "application/json": {
          "schema": {
            "type": "object"
          }
        }
      }
    }
  },
  "parameters": []
}
```

</details>

## GET /openapi.sha

Checksum of this document

The SHA-1 checksum of openapi.json.

Operation ID: `getOpenApiChecksum`.

### Responses

| Status | Description | Media type | Schema |
| --- | --- | --- | --- |
| 200 | Checksum of this document | text/plain | #/components/schemas/Sha1File |

<details><summary>Complete operation contract</summary>

```json
{
  "tags": [
    "checksums"
  ],
  "summary": "Checksum of this document",
  "description": "The SHA-1 checksum of openapi.json.",
  "operationId": "getOpenApiChecksum",
  "responses": {
    "200": {
      "description": "Checksum of this document",
      "content": {
        "text/plain": {
          "schema": {
            "$ref": "#/components/schemas/Sha1File"
          }
        }
      }
    }
  },
  "parameters": []
}
```

</details>

## Component schemas

Types, required properties, nested objects, constraints and examples below are copied directly from the contract. A property omitted from a schema’s `required` array is optional, even when examples include it.

### Direction

Writing direction of the text

<details><summary>View full Direction schema</summary>

```json
{
  "type": "string",
  "description": "Writing direction of the text",
  "enum": [
    "LTR",
    "RTL"
  ]
}
```

</details>

### Sha1

SHA-1 checksum of a JSON file, as 40 lowercase hexadecimal characters

<details><summary>View full Sha1 schema</summary>

```json
{
  "type": "string",
  "description": "SHA-1 checksum of a JSON file, as 40 lowercase hexadecimal characters",
  "pattern": "^[0-9a-f]{40}$"
}
```

</details>

### Sha1File

The content of a .sha file: the SHA-1 checksum of the JSON file with the same name, as 40 lowercase hexadecimal characters followed by a newline

<details><summary>View full Sha1File schema</summary>

```json
{
  "type": "string",
  "description": "The content of a .sha file: the SHA-1 checksum of the JSON file with the same name, as 40 lowercase hexadecimal characters followed by a newline",
  "pattern": "^[0-9a-f]{40}\\s*$"
}
```

</details>

### TabSeparatedIndex

The content of a .txt index file: a header line starting with # that names the columns, then one tab-separated line per file

<details><summary>View full TabSeparatedIndex schema</summary>

```json
{
  "type": "string",
  "description": "The content of a .txt index file: a header line starting with # that names the columns, then one tab-separated line per file"
}
```

</details>

### Verse

One verse

<details><summary>View full Verse schema</summary>

```json
{
  "type": "object",
  "description": "One verse",
  "properties": {
    "chapter": {
      "type": "integer",
      "description": "Chapter number",
      "minimum": 1
    },
    "verse": {
      "type": "integer",
      "description": "Verse number",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "description": "Name of the verse, as book name, chapter and verse"
    },
    "text": {
      "type": "string",
      "description": "Text of the verse"
    }
  },
  "required": [
    "chapter",
    "verse",
    "name",
    "text"
  ]
}
```

</details>

### BookChapter

One chapter with its verses

<details><summary>View full BookChapter schema</summary>

```json
{
  "type": "object",
  "description": "One chapter with its verses",
  "properties": {
    "chapter": {
      "type": "integer",
      "description": "Chapter number",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "description": "Name of the chapter, as book name and chapter"
    },
    "verses": {
      "type": "array",
      "description": "Verses of the chapter",
      "items": {
        "$ref": "#/components/schemas/Verse"
      }
    }
  },
  "required": [
    "chapter",
    "name",
    "verses"
  ]
}
```

</details>

### TranslationBook

One book with its chapters

<details><summary>View full TranslationBook schema</summary>

```json
{
  "type": "object",
  "description": "One book with its chapters",
  "properties": {
    "nr": {
      "type": "integer",
      "description": "Book number",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "description": "Name of the book in the translation"
    },
    "chapters": {
      "type": "array",
      "description": "Chapters of the book",
      "items": {
        "$ref": "#/components/schemas/BookChapter"
      }
    }
  },
  "required": [
    "nr",
    "name",
    "chapters"
  ]
}
```

</details>

### Translation

A complete translation file

<details><summary>View full Translation schema</summary>

```json
{
  "type": "object",
  "description": "A complete translation file",
  "properties": {
    "translation": {
      "type": "string",
      "description": "Name of the translation"
    },
    "abbreviation": {
      "type": "string",
      "description": "Abbreviation of the translation, used as its file and folder name",
      "pattern": "^[a-z0-9]+$"
    },
    "description": {
      "type": "string",
      "description": "Description of the translation from the source module"
    },
    "lang": {
      "type": "string",
      "description": "Language code of the translation"
    },
    "language": {
      "type": "string",
      "description": "Name of the language in English"
    },
    "direction": {
      "$ref": "#/components/schemas/Direction"
    },
    "encoding": {
      "type": "string",
      "description": "Character encoding of the source module"
    },
    "books": {
      "type": "array",
      "description": "Books of the translation",
      "items": {
        "$ref": "#/components/schemas/TranslationBook"
      }
    },
    "distribution_lcsh": {
      "type": "string",
      "description": "Library of Congress subject heading of the source module"
    },
    "distribution_version": {
      "type": "string",
      "description": "Version of the source module"
    },
    "distribution_version_date": {
      "type": "string",
      "description": "Date of the source module version"
    },
    "distribution_abbreviation": {
      "type": "string",
      "description": "Abbreviation of the source module"
    },
    "distribution_about": {
      "type": "string",
      "description": "About text of the source module"
    },
    "distribution_license": {
      "type": "string",
      "description": "Distribution license of the source module text"
    },
    "distribution_sourcetype": {
      "type": "string",
      "description": "Markup type of the source module text"
    },
    "distribution_source": {
      "type": "string",
      "description": "Origin of the source module text"
    },
    "distribution_versification": {
      "type": "string",
      "description": "Versification of the source module"
    },
    "distribution_history": {
      "type": "object",
      "description": "Change history of the source module, keyed by history entry",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "required": [
    "translation",
    "abbreviation",
    "description",
    "lang",
    "language",
    "direction",
    "encoding",
    "books",
    "distribution_lcsh",
    "distribution_version",
    "distribution_version_date",
    "distribution_abbreviation",
    "distribution_about",
    "distribution_license",
    "distribution_sourcetype",
    "distribution_source",
    "distribution_versification",
    "distribution_history"
  ]
}
```

</details>

### TranslationSummary

A translation as listed in translations.json (the translation file without its books)

<details><summary>View full TranslationSummary schema</summary>

```json
{
  "type": "object",
  "description": "A translation as listed in translations.json (the translation file without its books)",
  "properties": {
    "translation": {
      "type": "string",
      "description": "Name of the translation"
    },
    "abbreviation": {
      "type": "string",
      "description": "Abbreviation of the translation, used as its file and folder name",
      "pattern": "^[a-z0-9]+$"
    },
    "description": {
      "type": "string",
      "description": "Description of the translation from the source module"
    },
    "lang": {
      "type": "string",
      "description": "Language code of the translation"
    },
    "language": {
      "type": "string",
      "description": "Name of the language in English"
    },
    "direction": {
      "$ref": "#/components/schemas/Direction"
    },
    "encoding": {
      "type": "string",
      "description": "Character encoding of the source module"
    },
    "distribution_lcsh": {
      "type": "string",
      "description": "Library of Congress subject heading of the source module"
    },
    "distribution_version": {
      "type": "string",
      "description": "Version of the source module"
    },
    "distribution_version_date": {
      "type": "string",
      "description": "Date of the source module version"
    },
    "distribution_abbreviation": {
      "type": "string",
      "description": "Abbreviation of the source module"
    },
    "distribution_about": {
      "type": "string",
      "description": "About text of the source module"
    },
    "distribution_license": {
      "type": "string",
      "description": "Distribution license of the source module text"
    },
    "distribution_sourcetype": {
      "type": "string",
      "description": "Markup type of the source module text"
    },
    "distribution_source": {
      "type": "string",
      "description": "Origin of the source module text"
    },
    "distribution_versification": {
      "type": "string",
      "description": "Versification of the source module"
    },
    "distribution_history": {
      "type": "object",
      "description": "Change history of the source module, keyed by history entry",
      "additionalProperties": {
        "type": "string"
      }
    },
    "url": {
      "type": "string",
      "description": "Address of the translation file",
      "format": "uri"
    },
    "sha": {
      "$ref": "#/components/schemas/Sha1",
      "description": "SHA-1 checksum of the translation file"
    }
  },
  "required": [
    "translation",
    "abbreviation",
    "description",
    "lang",
    "language",
    "direction",
    "encoding",
    "distribution_lcsh",
    "distribution_version",
    "distribution_version_date",
    "distribution_abbreviation",
    "distribution_about",
    "distribution_license",
    "distribution_sourcetype",
    "distribution_source",
    "distribution_versification",
    "distribution_history",
    "url",
    "sha"
  ]
}
```

</details>

### TranslationIndex

Every translation in the tree, keyed by abbreviation

<details><summary>View full TranslationIndex schema</summary>

```json
{
  "type": "object",
  "description": "Every translation in the tree, keyed by abbreviation",
  "propertyNames": {
    "pattern": "^[a-z0-9]+$"
  },
  "additionalProperties": {
    "$ref": "#/components/schemas/TranslationSummary"
  }
}
```

</details>

### Book

A complete book file

<details><summary>View full Book schema</summary>

```json
{
  "type": "object",
  "description": "A complete book file",
  "properties": {
    "translation": {
      "type": "string",
      "description": "Name of the translation"
    },
    "abbreviation": {
      "type": "string",
      "description": "Abbreviation of the translation, used as its file and folder name",
      "pattern": "^[a-z0-9]+$"
    },
    "lang": {
      "type": "string",
      "description": "Language code of the translation"
    },
    "language": {
      "type": "string",
      "description": "Name of the language in English"
    },
    "direction": {
      "$ref": "#/components/schemas/Direction"
    },
    "encoding": {
      "type": "string",
      "description": "Character encoding of the source module"
    },
    "nr": {
      "type": "integer",
      "description": "Book number",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "description": "Name of the book in the translation"
    },
    "chapters": {
      "type": "array",
      "description": "Chapters of the book",
      "items": {
        "$ref": "#/components/schemas/BookChapter"
      }
    }
  },
  "required": [
    "translation",
    "abbreviation",
    "lang",
    "language",
    "direction",
    "encoding",
    "nr",
    "name",
    "chapters"
  ]
}
```

</details>

### BookSummary

A book as listed in books.json (the book file without its chapters)

<details><summary>View full BookSummary schema</summary>

```json
{
  "type": "object",
  "description": "A book as listed in books.json (the book file without its chapters)",
  "properties": {
    "translation": {
      "type": "string",
      "description": "Name of the translation"
    },
    "abbreviation": {
      "type": "string",
      "description": "Abbreviation of the translation, used as its file and folder name",
      "pattern": "^[a-z0-9]+$"
    },
    "lang": {
      "type": "string",
      "description": "Language code of the translation"
    },
    "language": {
      "type": "string",
      "description": "Name of the language in English"
    },
    "direction": {
      "$ref": "#/components/schemas/Direction"
    },
    "encoding": {
      "type": "string",
      "description": "Character encoding of the source module"
    },
    "nr": {
      "type": "integer",
      "description": "Book number",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "description": "Name of the book in the translation"
    },
    "url": {
      "type": "string",
      "description": "Address of the book file",
      "format": "uri"
    },
    "sha": {
      "$ref": "#/components/schemas/Sha1",
      "description": "SHA-1 checksum of the book file"
    }
  },
  "required": [
    "translation",
    "abbreviation",
    "lang",
    "language",
    "direction",
    "encoding",
    "nr",
    "name",
    "url",
    "sha"
  ]
}
```

</details>

### BookIndex

Every book of a translation, keyed by book number

<details><summary>View full BookIndex schema</summary>

```json
{
  "type": "object",
  "description": "Every book of a translation, keyed by book number",
  "propertyNames": {
    "pattern": "^[0-9]+$"
  },
  "additionalProperties": {
    "$ref": "#/components/schemas/BookSummary"
  }
}
```

</details>

### Chapter

A complete chapter file

<details><summary>View full Chapter schema</summary>

```json
{
  "type": "object",
  "description": "A complete chapter file",
  "properties": {
    "translation": {
      "type": "string",
      "description": "Name of the translation"
    },
    "abbreviation": {
      "type": "string",
      "description": "Abbreviation of the translation, used as its file and folder name",
      "pattern": "^[a-z0-9]+$"
    },
    "lang": {
      "type": "string",
      "description": "Language code of the translation"
    },
    "language": {
      "type": "string",
      "description": "Name of the language in English"
    },
    "direction": {
      "$ref": "#/components/schemas/Direction"
    },
    "encoding": {
      "type": "string",
      "description": "Character encoding of the source module"
    },
    "book_nr": {
      "type": "integer",
      "description": "Book number",
      "minimum": 1
    },
    "book_name": {
      "type": "string",
      "description": "Name of the book in the translation"
    },
    "chapter": {
      "type": "integer",
      "description": "Chapter number",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "description": "Name of the chapter, as book name and chapter"
    },
    "verses": {
      "type": "array",
      "description": "Verses of the chapter",
      "items": {
        "$ref": "#/components/schemas/Verse"
      }
    }
  },
  "required": [
    "translation",
    "abbreviation",
    "lang",
    "language",
    "direction",
    "encoding",
    "book_nr",
    "book_name",
    "chapter",
    "name",
    "verses"
  ]
}
```

</details>

### ChapterSummary

A chapter as listed in chapters.json (the chapter file without its verses)

<details><summary>View full ChapterSummary schema</summary>

```json
{
  "type": "object",
  "description": "A chapter as listed in chapters.json (the chapter file without its verses)",
  "properties": {
    "translation": {
      "type": "string",
      "description": "Name of the translation"
    },
    "abbreviation": {
      "type": "string",
      "description": "Abbreviation of the translation, used as its file and folder name",
      "pattern": "^[a-z0-9]+$"
    },
    "lang": {
      "type": "string",
      "description": "Language code of the translation"
    },
    "language": {
      "type": "string",
      "description": "Name of the language in English"
    },
    "direction": {
      "$ref": "#/components/schemas/Direction"
    },
    "encoding": {
      "type": "string",
      "description": "Character encoding of the source module"
    },
    "book_nr": {
      "type": "integer",
      "description": "Book number",
      "minimum": 1
    },
    "book_name": {
      "type": "string",
      "description": "Name of the book in the translation"
    },
    "chapter": {
      "type": "integer",
      "description": "Chapter number",
      "minimum": 1
    },
    "name": {
      "type": "string",
      "description": "Name of the chapter, as book name and chapter"
    },
    "url": {
      "type": "string",
      "description": "Address of the chapter file",
      "format": "uri"
    },
    "sha": {
      "$ref": "#/components/schemas/Sha1",
      "description": "SHA-1 checksum of the chapter file"
    }
  },
  "required": [
    "translation",
    "abbreviation",
    "lang",
    "language",
    "direction",
    "encoding",
    "book_nr",
    "book_name",
    "chapter",
    "name",
    "url",
    "sha"
  ]
}
```

</details>

### ChapterIndex

Every chapter of a book, keyed by chapter number

<details><summary>View full ChapterIndex schema</summary>

```json
{
  "type": "object",
  "description": "Every chapter of a book, keyed by chapter number",
  "propertyNames": {
    "pattern": "^[0-9]+$"
  },
  "additionalProperties": {
    "$ref": "#/components/schemas/ChapterSummary"
  }
}
```

</details>

### ChecksumIndex

The SHA-1 checksum of every JSON file at this level, keyed by file name without extension

<details><summary>View full ChecksumIndex schema</summary>

```json
{
  "type": "object",
  "description": "The SHA-1 checksum of every JSON file at this level, keyed by file name without extension",
  "propertyNames": {
    "pattern": "^[a-z0-9]+$"
  },
  "additionalProperties": {
    "$ref": "#/components/schemas/Sha1"
  }
}
```

</details>

## Authentication contract

```json
{
  "security": [],
  "securitySchemes": {}
}
```

See [access and tokens](/tokens/) for public usage and token requests.
