Bible Server API

This is a simple bible server API to fetch bible verses from different translations.
You can have a look at the source code, if you want to host it yourself.

General notes

Translations

The bible server is compatible with translation modules from MyBible. The modules are imported into a PostgreSQL database for better formatting, searching and future reference.

Format

Bible server supports multiple different formats for the endpoints:

Bible references

All endpoints only accept OSIS-formatted bible references.
On the client side you could use e.g. Bible Passage Reference Parser (JavaScript) to parse the references.
Here is a list of all book abbreviations

Endpoints

/translations

Get all available translations.

Link

Example
{
    [
        {
            "ID": 16,
            "Language": "en",
            "Name": "English Standard Version",
            "Abbreviation": "ESV",
            "Description": "..."
        },
        {
            "ID": 21,
            "Language": "en",
            "Name": "New International Version",
            "Abbreviation": "NIV",
            "Description": "..."
        }
    ]
}

/{format}/chapter/{translation}/{book}/{chapter}

Get a full chapter of the bible.

/{format}/passages/{translation}/{passages}

Get all OSIS-formatted passages in the query.

This is an example query:
Rom.5.6-Rom.5.11,Matt.22.43-Matt.22.46

/{format}/query/{translation}/{query} &

/{format}/query/{translation}/{query}/{page}

Get all verses that match the query.

You can write natural queries like God created earth, "in the beginning" (exact phrase), or salvation -selah (exclude a term).
Pagination is supported by adding /{page} to the endpoint. By default, the first page is returned.

Configure

Text

By default, the text endpoint returns chapter numbers, verse numbers and the text content. You can configure the result with query arguments:

Example query: /text/chapter/ESV/John/1?chapter_numbers=true&headings=true
Link

HTML

By default, the html endpoint returns chapter numbers, verse numbers, headings and the text content. You can configure the result with query arguments:

Example query: /html/chapter/ESV/John/1?chapter_numbers=false&headings=false
Link