Bible API

App · Misc References · 8 actions

Read and search the Bible from API.Bible, the American Bible Society's official Bible API: 350+ public-domain and Creative Commons translations, plus up to three copyrighted ones on the free plan. Ask for a passage the way you would say it ('John 3:16', 'Psalm 23', 'Romans 8:28-39'), or pick a chapter or verse from a list, and get the text back as plain words, as numbered verses, or as the publisher's own HTML. Search a whole Bible for a word or phrase, see which translations, books, chapters and verses are available, and step through the text one chapter or verse at a time for a daily reading, a devotional email or a scripture lookup in chat.

Actions

ActionWhat it does
List booksList the books in a translation, in its own order, each with how many chapters it has.
List chapters in a bookList a book's chapters, each with the reference it is cited by.
List translationsList every Bible translation your API.Bible key can read, with its name, language and the copyright line it requires.
List verses in a chapterList a chapter's verses, each with the reference it is cited by.
Read a chapterGet a whole chapter, picked from a list of every chapter in the translation rather than typed.
Read a passageGet the text of any passage, written the way you would say it: 'John 3:16', 'Psalm 23', 'Romans 8:28-39', '1 Cor 13:4-7'.
Read a verseGet one verse, picked from a list of the verses in a chapter rather than typed.
Search the BibleFind every verse in a translation that carries a word or phrase.

List books

List the books in a translation, in its own order, each with how many chapters it has. Not every Bible carries every book; this is what a translation actually contains, so it is what a reading plan should be built on.

Inputs

TranslationbibletextRequired
Which Bible to read. The list shows every translation your API.Bible key can access: the 350+ public-domain and Creative Commons Bibles everyone gets, plus any copyrighted ones on your plan. Add more from your API.Bible dashboard, then refresh this list.

Outputs

bible_idtext
The translation these books came from.
bookslist
The books this translation contains.
countnumber
How many books came back.
Example output
{
  "bible_id": "de4e12af7f28f599-01",
  "books": [
    {
      "abbreviation": "JHN",
      "bible_id": "de4e12af7f28f599-01",
      "chapter_count": 21,
      "id": "JHN",
      "long_name": "The Gospel according to John",
      "name": "John"
    }
  ],
  "count": 1
}

List chapters in a book

List a book's chapters, each with the reference it is cited by. Loop over these to read a book straight through, a chapter per run.

Inputs

TranslationbibletextRequired
Which Bible to read. The list shows every translation your API.Bible key can access: the 350+ public-domain and Creative Commons Bibles everyone gets, plus any copyrighted ones on your plan. Add more from your API.Bible dashboard, then refresh this list.
BookbooktextRequired
Which book, from the books in the chosen translation. You can also point this at a book from an earlier step.

Outputs

bible_idtext
The translation they came from.
book_idtext
The book these chapters came from, e.g. 'JHN'.
book_nametext
That book's name, e.g. 'John'.
chapterslist
The chapters in that book.
countnumber
How many chapters came back.
Example output
{
  "bible_id": "de4e12af7f28f599-01",
  "book_id": "JHN",
  "book_name": "John",
  "chapters": [
    {
      "bible_id": "de4e12af7f28f599-01",
      "book_id": "JHN",
      "id": "JHN.3",
      "number": "3",
      "reference": "John 3"
    }
  ],
  "count": 1
}

List translations

List every Bible translation your API.Bible key can read, with its name, language and the copyright line it requires. Filter by language, or by part of a name, to find the one to point the other steps at.

Inputs

Languagelanguagetext
Only translations in this language. The list holds every language your key has a Bible in.
Name containsnametext
Only translations whose name contains this. Leave it empty for all of them.

Outputs

countnumber
How many translations came back.
translationslist
The translations this key can read.
Example output
{
  "count": 1,
  "translations": [
    {
      "abbreviation": "engKJV",
      "copyright": "Public Domain",
      "description": "Protestant Bible",
      "id": "de4e12af7f28f599-01",
      "language": "English",
      "language_code": "eng",
      "language_local_name": "English",
      "local_name": "King James (Authorised) Version",
      "name": "King James (Authorised) Version",
      "script_direction": "LTR",
      "updated_at": "2024-06-11T10:22:35.000Z"
    }
  ]
}

List verses in a chapter

List a chapter's verses, each with the reference it is cited by. Loop over these to work through a chapter a verse at a time: a verse-a-day post, or a study that treats each verse on its own.

Inputs

TranslationbibletextRequired
Which Bible to read. The list shows every translation your API.Bible key can access: the 350+ public-domain and Creative Commons Bibles everyone gets, plus any copyrighted ones on your plan. Add more from your API.Bible dashboard, then refresh this list.
ChapterchaptertextRequired
Which chapter, from every chapter in the chosen translation. Start typing to find it ('psalm 23', 'john 3'). You can also point this at a chapter from an earlier step, such as one from 'List chapters in a book' or the next chapter of a passage you just read.

Outputs

bible_idtext
The translation they came from.
chapter_idtext
The chapter these verses came from.
countnumber
How many verses came back.
verseslist
The verses in that chapter.
Example output
{
  "bible_id": "de4e12af7f28f599-01",
  "chapter_id": "JHN.3",
  "count": 1,
  "verses": [
    {
      "bible_id": "de4e12af7f28f599-01",
      "book_id": "JHN",
      "chapter_id": "JHN.3",
      "id": "JHN.3.16",
      "reference": "John 3:16"
    }
  ]
}

Read a chapter

Get a whole chapter, picked from a list of every chapter in the translation rather than typed. Also returns the chapter before and after it, so a workflow can walk through the Bible one chapter at a time, such as a reading plan that picks up where yesterday's run left off. No API.Bible ids to look up.

Inputs

TranslationbibletextRequired
Which Bible to read. The list shows every translation your API.Bible key can access: the 350+ public-domain and Creative Commons Bibles everyone gets, plus any copyrighted ones on your plan. Add more from your API.Bible dashboard, then refresh this list.
ChapterchaptertextRequired
Which chapter, from every chapter in the chosen translation. Start typing to find it ('psalm 23', 'john 3'). You can also point this at a chapter from an earlier step, such as one from 'List chapters in a book' or the next chapter of a passage you just read.
Formattext_formattext
How the scripture should come back. Plain text is the one to send in an email or a message; numbered verses is the one to read a chapter in; HTML carries the publisher's own styling for a web page. The result always includes a plain-text version as well, whichever you pick.One of: plain (Plain text (just the words)), numbered (Plain text with verse numbers and headings), html (HTML (the publisher's own styling)). Default: plain.

Outputs

bible_idtext
The translation this came from.
book_idtext
The book this came from, e.g. 'JHN'.
chapter_idtext
The chapter this came from, e.g. 'JHN.3'.
contenttext
The scripture in the format that was chosen.
copyrighttext
The copyright line this translation requires.
formattext
The format this was returned in.
idtext
API.Bible's own id for what was returned.
next_idtext
The chapter or verse after this one, for stepping through the Bible. Empty at the end of the Bible, and on a passage.
previous_idtext
The chapter or verse before this one.
referencetext
The passage as it is cited, e.g. 'John 3:16-18'.
texttext
The scripture as plain text, whatever format was chosen.
verse_countnumber
How many verses came back.
Example output
{
  "bible_id": "de4e12af7f28f599-01",
  "book_id": "PSA",
  "chapter_id": "PSA.23",
  "content": "The LORD is my shepherd; I shall not want.",
  "copyright": "Public Domain",
  "format": "plain",
  "id": "PSA.23",
  "next_id": "PSA.24",
  "previous_id": "PSA.22",
  "reference": "Psalms 23",
  "text": "The LORD is my shepherd; I shall not want.",
  "verse_count": 6
}

Read a passage

Get the text of any passage, written the way you would say it: 'John 3:16', 'Psalm 23', 'Romans 8:28-39', '1 Cor 13:4-7'. Abbreviations work, a whole chapter or a run of chapters works too, and a range can cross from one book into the next. This is the action to reach for when you already know the reference; the other two let you pick instead. Comes back as plain text, as numbered verses, or as the publisher's HTML.

Inputs

TranslationbibletextRequired
Which Bible to read. The list shows every translation your API.Bible key can access: the 350+ public-domain and Creative Commons Bibles everyone gets, plus any copyrighted ones on your plan. Add more from your API.Bible dashboard, then refresh this list.
PassagereferencetextRequired
The passage to read, written normally: 'John 3:16', 'Psalm 23', 'Romans 8:28-39', '1 Cor 16:1-2 Cor 1:23'. Short forms ('Jn', 'Ps', '1 Cor', 'II Kings') and one-chapter books ('Jude 3' means verse 3) work the way you would expect. API.Bible's own ids work too, so you can point this at a reference from an earlier step.
Formattext_formattext
How the scripture should come back. Plain text is the one to send in an email or a message; numbered verses is the one to read a chapter in; HTML carries the publisher's own styling for a web page. The result always includes a plain-text version as well, whichever you pick.One of: plain (Plain text (just the words)), numbered (Plain text with verse numbers and headings), html (HTML (the publisher's own styling)). Default: plain.

Outputs

bible_idtext
The translation this came from.
book_idtext
The book this came from, e.g. 'JHN'.
chapter_idtext
The chapter this came from, e.g. 'JHN.3'.
contenttext
The scripture in the format that was chosen.
copyrighttext
The copyright line this translation requires.
formattext
The format this was returned in.
idtext
API.Bible's own id for what was returned.
next_idtext
The chapter or verse after this one, for stepping through the Bible. Empty at the end of the Bible, and on a passage.
previous_idtext
The chapter or verse before this one.
referencetext
The passage as it is cited, e.g. 'John 3:16-18'.
texttext
The scripture as plain text, whatever format was chosen.
verse_countnumber
How many verses came back.
Example output
{
  "bible_id": "de4e12af7f28f599-01",
  "book_id": "JHN",
  "chapter_id": "JHN.3",
  "content": "For God so loved the world, that he gave his only begotten Son, that whosoever believeth in him should not perish, but have everlasting life. For God sent not his Son into the world to condemn the world; but that the world through him might be saved.",
  "copyright": "Public Domain",
  "format": "plain",
  "id": "JHN.3.16-JHN.3.17",
  "next_id": null,
  "previous_id": null,
  "reference": "John 3:16-17",
  "text": "For God so loved the world, that he gave his only begotten Son, that whosoever believeth in him should not perish, but have everlasting life. For God sent not his Son into the world to condemn the world; but that the world through him might be saved.",
  "verse_count": 2
}

Read a verse

Get one verse, picked from a list of the verses in a chapter rather than typed. Also returns the verse before and after it, so a workflow can walk the text a verse at a time or quote a verse with its neighbours for context. Point it at a verse from a search result to pull that verse's full text.

Inputs

TranslationbibletextRequired
Which Bible to read. The list shows every translation your API.Bible key can access: the 350+ public-domain and Creative Commons Bibles everyone gets, plus any copyrighted ones on your plan. Add more from your API.Bible dashboard, then refresh this list.
ChapterchaptertextRequired
Which chapter, from every chapter in the chosen translation. Start typing to find it ('psalm 23', 'john 3'). You can also point this at a chapter from an earlier step, such as one from 'List chapters in a book' or the next chapter of a passage you just read.
VerseversetextRequired
Which verse, from the verses in the chosen chapter. You can also point this at a verse from an earlier step, such as a search result or the next verse of one you just read.
Formattext_formattext
How the scripture should come back. Plain text is the one to send in an email or a message; numbered verses is the one to read a chapter in; HTML carries the publisher's own styling for a web page. The result always includes a plain-text version as well, whichever you pick.One of: plain (Plain text (just the words)), numbered (Plain text with verse numbers and headings), html (HTML (the publisher's own styling)). Default: plain.

Outputs

bible_idtext
The translation this came from.
book_idtext
The book this came from, e.g. 'JHN'.
chapter_idtext
The chapter this came from, e.g. 'JHN.3'.
contenttext
The scripture in the format that was chosen.
copyrighttext
The copyright line this translation requires.
formattext
The format this was returned in.
idtext
API.Bible's own id for what was returned.
next_idtext
The chapter or verse after this one, for stepping through the Bible. Empty at the end of the Bible, and on a passage.
previous_idtext
The chapter or verse before this one.
referencetext
The passage as it is cited, e.g. 'John 3:16-18'.
texttext
The scripture as plain text, whatever format was chosen.
verse_countnumber
How many verses came back.
Example output
{
  "bible_id": "de4e12af7f28f599-01",
  "book_id": "JHN",
  "chapter_id": "JHN.3",
  "content": "For God so loved the world, that he gave his only begotten Son, that whosoever believeth in him should not perish, but have everlasting life.",
  "copyright": "Public Domain",
  "format": "plain",
  "id": "JHN.3.16",
  "next_id": "JHN.3.17",
  "previous_id": "JHN.3.15",
  "reference": "John 3:16",
  "text": "For God so loved the world, that he gave his only begotten Son, that whosoever believeth in him should not perish, but have everlasting life.",
  "verse_count": 1
}

Search the Bible

Find every verse in a translation that carries a word or phrase. All the words you give must appear in the verse, in any order, and '' stands in for any run of letters ('wod' finds word, world and worshipped). Misspellings are allowed for. Narrow it to particular books, sort by best match or by Bible order, and page through more results. Each match comes back with its reference and its text.

Inputs

TranslationbibletextRequired
Which Bible to read. The list shows every translation your API.Bible key can access: the 350+ public-domain and Creative Commons Bibles everyone gets, plus any copyrighted ones on your plan. Add more from your API.Bible dashboard, then refresh this list.
Words to findquerytextRequired
The words to look for. Every word must appear in a verse for it to match, and their order does not matter. Use '*' for any run of letters and '?' for a single one. Typing a reference instead of words ('John 3:16') returns that passage rather than a list of matches.
Only these bookswithinlist
Limit the search to particular books. Leave it empty to search the whole Bible.
Order results bysorttext
Best match puts the closest matches first; Bible order runs Genesis to Revelation, and reverse runs the other way.One of: relevance (Best match), canonical (Bible order), reverse-canonical (Bible order, last to first). Default: relevance.
How many resultslimitnumber
How many matching verses to return at a time.From 1 to 100. Default: 10.
Skip this manyoffsetnumber
How many matches to skip, for reading past the first page. Use the 'next_offset' from the previous run.From 0 to 100000. Default: 0.

Outputs

bible_idtext
The translation that was searched.
countnumber
How many verses came back this time.
has_moretrue/false
Whether there are more matches to read.
matched_a_referencetrue/false
True when the search text was read as a reference and a passage came back instead of matches.
next_offsetnumber
The offset that reads the next page, or empty at the end.
offsetnumber
How many matches were skipped.
passageslist
Filled in instead of 'verses' when what was searched for was a reference rather than words.
querytext
The words that were searched for.
total_countnumber
How many verses matched in all.
verseslist
The verses that matched.
Example output
{
  "bible_id": "de4e12af7f28f599-01",
  "count": 1,
  "has_more": true,
  "matched_a_reference": false,
  "next_offset": 1,
  "offset": 0,
  "passages": [],
  "query": "so loved the world",
  "total_count": 47,
  "verses": [
    {
      "bible_id": "de4e12af7f28f599-01",
      "book_id": "JHN",
      "chapter_id": "JHN.3",
      "id": "JHN.3.16",
      "reference": "John 3:16",
      "text": "For God so loved the world, that he gave his only begotten Son, that whosoever believeth in him should not perish, but have everlasting life."
    }
  ]
}

On this page