Bible file format help

Prepare your own Bible file. Copy the complete guide or the JSON example, or save the guide as a Markdown document.

1. Importing a file

For new files, use a UTF-8 .json file. Replace the example verse text with your own text. Choose File in Translation Management and review the name and language before installing. This Markdown guide is not a Bible translation file.

2. Minimal JSON

Bible is a required, case-sensitive key. Each row is [book ID, chapter, verse, text]. Chapters and verses are positive integers; text is a quoted string. An English book name such as Genesis can replace the numeric book ID. Partial books or chapters are supported.

{
  "Bible": [
    [
      1,
      1,
      1,
      "Verse text 1"
    ],
    [
      1,
      1,
      2,
      "Verse text 2"
    ]
  ]
}

3. Optional metadata

meta is optional; metadata is an alias. The current formatVersion is 1. id is the persistent identifier: an installed translation with the same ID is replaced. name is the display name, lang is the language code, and direction is ltr or rtl. Review these before installing. Use description for the title, intro for a longer introduction, author and year for publication details, and source and copyright for attribution. nameScheme accepts protestant, catholic, or kjv; declare the canon and verse numbering separately in canon. Other optional fields include version, markupPolicy for text symbols, and bookNames for book names.

{
  "meta": {
    "formatVersion": 1,
    "id": "MY-BIBLE",
    "name": "My Bible",
    "lang": "en",
    "direction": "ltr",
    "nameScheme": "protestant",
    "canon": {
      "canon": "protestant66",
      "versification": "kjv"
    }
  },
  "Bible": [
    [
      1,
      1,
      1,
      "Verse text 1"
    ]
  ]
}

4. Merged verses

Store the text once at the first verse. Put sourceVerseGroups at the same root level as Bible. Do not add another text row for verse 14 in this example. Groups must be consecutive verses in one chapter and must not overlap.

{
  "Bible": [
    [
      2,
      25,
      13,
      "Combined text of verses 13 and 14"
    ]
  ],
  "sourceVerseGroups": {
    "2:25:13": [
      13,
      14
    ]
  }
}

5. Book IDs

These are fixed file IDs. Do not renumber existing books to match a Catholic display order. Additional Esther and Daniel passages belong to books 17 and 27; additional books use 67–73. Book naming and canon are separate settings.

IDBook
1Genesis
2Exodus
3Leviticus
4Numbers
5Deuteronomy
6Joshua
7Judges
8Ruth
91 Samuel
102 Samuel
111 Kings
122 Kings
131 Chronicles
142 Chronicles
15Ezra
16Nehemiah
17Esther
18Job
19Psalms
20Proverbs
21Ecclesiastes
22Song of Solomon
23Isaiah
24Jeremiah
25Lamentations
26Ezekiel
27Daniel
28Hosea
29Joel
30Amos
31Obadiah
32Jonah
33Micah
34Nahum
35Habakkuk
36Zephaniah
37Haggai
38Zechariah
39Malachi
40Matthew
41Mark
42Luke
43John
44Acts
45Romans
461 Corinthians
472 Corinthians
48Galatians
49Ephesians
50Philippians
51Colossians
521 Thessalonians
532 Thessalonians
541 Timothy
552 Timothy
56Titus
57Philemon
58Hebrews
59James
601 Peter
612 Peter
621 John
632 John
643 John
65Jude
66Revelation
67Tobit
68Judith
69Wisdom
70Sirach
71Baruch
721 Maccabees
732 Maccabees

6. SDB and common mistakes

An .sdb is a SQLite file with a Bible table containing integer columns book, chapter, verse and a string column btext. Arbitrary SQLite, PDF, or Word files are not this format. Do not use comments or trailing commas in JSON. Missing Bible, a non-array verse list, string chapter/verse numbers, invalid meta, or overlapping verse groups cause import errors. Save the example as .json, not .md, to import it.

Browse sample files