API.Bible allows any developer to include Scripture content and text anywhere in their website or application for non-commercial purposes.
Getting Started
Authentication
Creating an Account
Before you can access the API you must first create an Account to retrieve your own personalized API key. Head on over to our sign up page to get started.
Once your application has been approved you can find your API key in your Dashboard settings.
If at any point you need further assistance, please visit our support page!
Accessing the API
Authenticate your account when using the API by including your secret API key in each request. You can manage your API keys your account's dashboard. Your API keys carry many privileges, so be sure to keep them private.
The authentication process uses a variation of HTTP Basic Auth. For each request you must place your private key into the api-key header.
API Authentication
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles \
--header 'api-key: test_okikJOvBiI2HlWgH4'
Errors
The API uses the following response status codes, as defined in the RFC 2616 and RFC 6585.
Code | Reason |
---|---|
200 | Success |
400 | Invalid ID supplied |
401 | The API key provided is either missing, invalid, or unauthorized for API access. |
403 | Server understood the request, but provided API key is not authorized to retrieve this information. |
404 | Resource not found. |
Bibles
All bibles
The response from this call will return a list of all bibles that are authorized for your account.
You can also retrieve bibles in several languages by specifying a 3 digit language code in the ISO 639-3 format.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": [
{
"abbreviation": "GNTNT",
"abbreviationLocal": "GNTNT",
"copyrightStatement": "Good News Translation® (Today’s English Version, Second Edition) © 1992 American Bible Society. All rights reserved. Bible text from the Good News Translation (GNT) is not to be reproduced in copies or otherwise by any means except as permitted in writing by American Bible Society, 1865 Broadway, New York, NY 10023 ( www.americanbible.org ).",
"dblId": "61fd76eafa1577c2",
"id": "61fd76eafa1577c2-03",
"language": {
"id": "eng",
"name": "English",
"nameLocal": "English",
"script": "Latin",
"scriptDirection": "LTR"
},
"name": "Good News Translation (US Version) NT",
"nameLocal": "Good News Translation (US Version) NT"
},
....
]
}
Query Params | |
---|---|
language
string
|
A 3 digit language code that represents the desired language of a bible. |
abbreviation
string
|
Abbrevated bible name. |
name
string
|
Full or partial name of bible's that are authorized. |
Headers | |
api-key
string
|
required Authorized access key |
Specific bible
Supply the bible id that was returned from fetching all bibles, and Api.bible will return a single object containing information about the specified bible.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles/bibleId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": {
"abbreviation": "GNTNT",
"abbreviationLocal": "GNTNT",
"copyrightStatement": "Good News Translation® (Today’s English Version, Second Edition) © 1992 American Bible Society. All rights reserved. Bible text from the Good News Translation (GNT) is not to be reproduced in copies or otherwise by any means except as permitted in writing by American Bible Society, 1865 Broadway, New York, NY 10023 ( www.americanbible.org ).",
"dblId": "61fd76eafa1577c2",
"id": "61fd76eafa1577c2-03",
"language": {
"id": "eng",
"name": "English",
"nameLocal": "English",
"script": "Latin",
"scriptDirection": "LTR"
},
"name": "Good News Translation (US Version) NT",
"nameLocal": "Good News Translation (US Version) NT"
}
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
Headers | |
api-key
string
|
required Authorized access key |
Books
All books
Supply the bible id that was returned from fetching all bibles, and Api.bible will return a list of all books that belong to the specified bible.
You may also specify if you want each book to include just chapters or chapters and sections.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/books \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/books',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles/bibleId/books")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/books");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/books"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": [
{
"id": "MAT",
"bibleId": "61fd76eafa1577c2-03",
"abbreviation": "Mt",
"name": "Matthew",
"nameLong": "The Gospel according to MATTHEW"
},
{
"id": "MRK",
"bibleId": "61fd76eafa1577c2-03",
"abbreviation": "Mk",
"name": "Mark",
"nameLong": "The Gospel according to MARK"
},
{
"id": "LUK",
"bibleId": "61fd76eafa1577c2-03",
"abbreviation": "Lk",
"name": "Luke",
"nameLong": "The Gospel according to LUKE"
},
...
]
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
Query Params | |
include-chapters
boolean
|
Include a list of chapter summaries for each given book. |
include-chapters-and-sections
boolean
|
Include a list of chapters and sub-list of chapter-selection summaries for each given book. |
Headers | |
api-key
string
|
required Authorized access key |
Specific book
Supply the bible id that was returned from all bibles, and the book id that was the response from all books. Api.bible will then respond with a single object containing information about the specified book.
You may also specify if you want each book to include chapters.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": {
"id": "MAT",
"bibleId": "61fd76eafa1577c2-03",
"abbreviation": "Mt",
"name": "Matthew",
"nameLong": "The Gospel according to MATTHEW",
"chapters": [
{
"id": "MAT.1",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"number": "1",
"position": 1
},
{
"id": "MAT.10",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"number": "10",
"position": 10
},
....
],
}
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
bookId
string
|
required The ID of the desired book (found when querying for all books for a given bible) |
Query Params | |
include-chapters
boolean
|
Include a list of chapter summaries for the given book. |
Headers | |
api-key
string
|
required Authorized access key |
Chapters
All chapters
Supply the book id that was returned from fetching all books, and Api.bible will return a list of all chapters that belong to the desired book.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/chapters \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/chapters',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/chapters")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/chapters");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/chapters"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": [
{
"id": "MAT.intro",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"number": "intro"
},
{
"id": "MAT.1",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"number": "1"
},
{
"id": "MAT.2",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"number": "2"
},
....
]
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
bookId
string
|
required The ID of the desired book (found when querying for all books for a given bible) |
Headers | |
api-key
string
|
required Authorized access key |
Specific chapter
Supply the chapter id that was returned from fetching all chapters and Api.bible will return a formatted content block containing all chapter related material.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": {
"id": "MAT.1",
"bibleId": "61fd76eafa1577c2-03",
"number": "1",
"bookId": "MAT",
"content": "The Ancestors of Jesus Christ
(Luke 3.23-38)
1This is the list of the ancestors of Jesus Christ, a descendant of David, who was a descendant of Abraham.
2-6aFrom Abraham to King David, the following ancestors are listed: Abraham, Isaac, Jacob, Judah and his brothers; then Perez and Zerah (their mother was Tamar), Hezron, Ram, Amminadab, Nahshon, Salmon, Boaz (his mother was Rahab), Obed (his mother was Ruth), Jesse, and King David.
6b-11From David to the time when the people of Israel were taken into exile in Babylon, the following ancestors are listed: David, Solomon (his mother was the woman who had been Uriah's wife), Rehoboam, Abijah, Asa, Jehoshaphat, Jehoram, Uzziah, Jotham, Ahaz, Hezekiah, Manasseh, Amon, Josiah, and Jehoiachin and his brothers.
12-16From the time after the exile in Babylon to the birth of Jesus, the following ancestors are listed: Jehoiachin, Shealtiel, Zerubbabel, Abiud, Eliakim, Azor, Zadok, Achim, Eliud, Eleazar, Matthan, Jacob, and Joseph, who married Mary, the mother of Jesus, who was called the Messiah.
17So then, there were fourteen generations from Abraham to David, and fourteen from David to the exile in Babylon, and fourteen from then to the birth of the Messiah.
The Birth of Jesus Christ
(Luke 2.1-7)
18 This was how the birth of Jesus Christ took place. His mother Mary was engaged to Joseph, but before they were married, she found out that she was going to have a baby by the Holy Spirit. 19Joseph was a man who always did what was right, but he did not want to disgrace Mary publicly; so he made plans to break the engagement privately. 20While he was thinking about this, an angel of the Lord appeared to him in a dream and said, “Joseph, descendant of David, do not be afraid to take Mary to be your wife. For it is by the Holy Spirit that she has conceived. 21 She will have a son, and you will name him Jesus—because he will save his people from their sins.”
22Now all this happened in order to make come true what the Lord had said through the prophet, 23 “A virgin will become pregnant and have a son, and he will be called Immanuel” (which means, “God is with us”).
24So when Joseph woke up, he married Mary, as the angel of the Lord had told him to. 25 But he had no sexual relations with her before she gave birth to her son. And Joseph named him Jesus.
",
"next": {
"id": "MAT.2",
"number": "2",
"bookId": "MAT"
},
"previous": {
"id": "MAT.intro",
"number": "intro",
"bookId": "MAT"
}
},
"meta": {
"fums": "",
"fumsId": "8cc64ae5-fc36-4d38-92da-92fab5d0ebc6",
"fumsJsInclude": "cdn.scripture.api.bible/fums/fumsv2.min.js",
"fumsJs": "var _BAPI=_BAPI||{};if(typeof(_BAPI.t)!='undefined'){ _BAPI.t('8cc64ae5-fc36-4d38-92da-92fab5d0ebc6'); }",
"fumsNoScript": "
"
}
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
chapterId
string
|
required The ID of the desired chapter (as found when querying for all chapters for a desired book) |
Query Params | |
content-type
string
|
Format for which the content will be returned in as. Available in: html(default), json, and text |
include-notes
boolean
|
Include footnotes |
include-titles
boolean
|
Include section titles in content |
include-chapter-numbers
boolean
|
Include chapter numbers in content |
include-verse-numbers
boolean
|
Include verse numbers in content |
include-verse-spans
boolean
|
Include spans that wrap verse numbers and verse text for bible content. |
parallels
string
|
Comma delimited list of bible id's |
Headers | |
api-key
string
|
required Authorized access key |
Sections
Chapter sections
Supply the chapter id that was returned from fetching all chapters and Api.bible will return a list of all sections for the designated chapter.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/sections \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/sections',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/sections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/sections");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/sections"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": [
{
"id": "MAT.S1",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"title": "The Ancestors of Jesus Christ"
},
{
"id": "MAT.S2",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"title": "The Birth of Jesus Christ"
}
]
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
chapterId
string
|
required The ID of the desired chapter (as found when querying for all chapters for a given book of a bible) |
Headers | |
api-key
string
|
required Authorized access key |
Book sections
Supply the book id that was returned from all books and Api.bible will return a list of all sections for the designated chapter.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/sections \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/sections',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/sections")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/sections");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/books/bookId/sections"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": [
{
"id": "MAT.S1",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"title": "The Ancestors of Jesus Christ"
},
{
"id": "MAT.S2",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"title": "The Birth of Jesus Christ"
},
{
"id": "MAT.S3",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"title": "Visitors from the East"
},
{
"id": "MAT.S4",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"title": "The Escape to Egypt"
},
{
"id": "MAT.S5",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"title": "The Killing of the Children"
},
....
]
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
bookId
string
|
required The ID of the desired book (as found when querying for books from the provided bible) |
Headers | |
api-key
string
|
required Authorized access key |
Specific section
Supply the section id that was returned from all chapter-sections or from all book-sections. Api.bible will then return a formatted content block containing all section related material.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/sections/sectionId \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/sections/sectionId',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles/bibleId/sections/sectionId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/sections/sectionId");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/sections/sectionId"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": {
"id": "MAT.S1",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"chapterId": "MAT.1",
"title": "The Ancestors of Jesus Christ",
"content": "The Ancestors of Jesus Christ
(Luke 3.23-38)
1This is the list of the ancestors of Jesus Christ, a descendant of David, who was a descendant of Abraham.
2-6aFrom Abraham to King David, the following ancestors are listed: Abraham, Isaac, Jacob, Judah and his brothers; then Perez and Zerah (their mother was Tamar), Hezron, Ram, Amminadab, Nahshon, Salmon, Boaz (his mother was Rahab), Obed (his mother was Ruth), Jesse, and King David.
6b-11From David to the time when the people of Israel were taken into exile in Babylon, the following ancestors are listed: David, Solomon (his mother was the woman who had been Uriah's wife), Rehoboam, Abijah, Asa, Jehoshaphat, Jehoram, Uzziah, Jotham, Ahaz, Hezekiah, Manasseh, Amon, Josiah, and Jehoiachin and his brothers.
12-16From the time after the exile in Babylon to the birth of Jesus, the following ancestors are listed: Jehoiachin, Shealtiel, Zerubbabel, Abiud, Eliakim, Azor, Zadok, Achim, Eliud, Eleazar, Matthan, Jacob, and Joseph, who married Mary, the mother of Jesus, who was called the Messiah.
17So then, there were fourteen generations from Abraham to David, and fourteen from David to the exile in Babylon, and fourteen from then to the birth of the Messiah.
",
"next": {
"id": "MAT.S2",
"title": "The Birth of Jesus Christ"
}
},
"meta": {
"fums": "",
"fumsId": "a3f85a7c-f132-4b4c-a336-4ae9ffbd1bfe",
"fumsJsInclude": "cdn.scripture.api.bible/fums/fumsv2.min.js",
"fumsJs": "var _BAPI=_BAPI||{};if(typeof(_BAPI.t)!='undefined'){ _BAPI.t('a3f85a7c-f132-4b4c-a336-4ae9ffbd1bfe'); }",
"fumsNoScript": "
"
}
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
sectionsId
string
|
required The ID of the desired chapter (as found when querying for books from the provided bible) |
Query Params | |
content-type
string
|
Format for which the content will be returned in as. Available in: html(default), json, and text |
include-notes
boolean
|
Include footnotes |
include-titles
boolean
|
Include section titles in content |
include-chapter-numbers
boolean
|
Include chapter numbers in content |
include-verse-numbers
boolean
|
Include verse numbers in content |
include-verse-spans
boolean
|
Include spans that wrap verse numbers and verse text for bible content. |
parallels
string
|
Comma delimited list of bible id's |
Headers | |
api-key
string
|
required Authorized access key |
Verses
All verses
Supply the chapter id that was returned from fetching all chapters and Api.bible will return a list of all verses for the designated chapter in a book.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/verses \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/verses',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/verses")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/verses");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/chapters/chapterId/verses"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": [
{
"id": "MAT.1.1",
"orgId": "MAT.1.1",
"bookId": "MAT",
"chapterId": "MAT.1",
"bibleId": "61fd76eafa1577c2-03"
},
{
"id": "MAT.1.2-MAT.1.6a",
"orgId": "MAT.1.2-MAT.1.6a",
"bookId": "MAT",
"chapterId": "MAT.1",
"bibleId": "61fd76eafa1577c2-03"
},
{
"id": "MAT.1.6b-MAT.1.11",
"orgId": "MAT.1.6b-MAT.1.11",
"bookId": "MAT",
"chapterId": "MAT.1",
"bibleId": "61fd76eafa1577c2-03"
},
{
"id": "MAT.1.12-MAT.1.16",
"orgId": "MAT.1.12-MAT.1.16",
"bookId": "MAT",
"chapterId": "MAT.1",
"bibleId": "61fd76eafa1577c2-03"
},
....
]
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
chapterId
string
|
required The ID of the desired chapter (as found when querying for all chapters for a given book of a bible) |
Headers | |
api-key
string
|
required Authorized access key |
Specific verse
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/verses/verseId \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/verses/verseId',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/verses/verseId',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/verses/verseId");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/verses/verseId"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": {
"id": "MAT.1.20",
"orgId": "MAT.1.20",
"bookId": "MAT",
"chapterId": "MAT.1",
"bibleId": "61fd76eafa1577c2-03",
"content": "20While he was thinking about this, an angel of the Lord appeared to him in a dream and said, “Joseph, descendant of David, do not be afraid to take Mary to be your wife. For it is by the Holy Spirit that she has conceived.
",
"next": {
"id": "MAT.1.21",
"number": "21"
},
"previous": {
"id": "MAT.1.19",
"number": "19"
}
},
"meta": {
"fums": "",
"fumsId": "32ce3b10-debf-4b7c-bc01-5331b82e970b",
"fumsJsInclude": "cdn.scripture.api.bible/fums/fumsv2.min.js",
"fumsJs": "var _BAPI=_BAPI||{};if(typeof(_BAPI.t)!='undefined'){ _BAPI.t('32ce3b10-debf-4b7c-bc01-5331b82e970b'); }",
"fumsNoScript": "
"
}
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
verseId
string
|
required The ID of the desired verse (as found when querying for all verses) |
Query Params | |
content-type
string
|
Format for which the content will be returned in as. Available in: html(default), json, and text |
include-notes
boolean
|
Include footnotes |
include-titles
boolean
|
Include section titles in content |
include-chapter-numbers
boolean
|
Include chapter numbers in content |
include-verse-numbers
boolean
|
Include verse numbers in content |
include-verse-spans
boolean
|
Include spans that wrap verse numbers and verse text for bible content. |
parallels
string
|
Comma delimited list of bible id's |
Headers | |
api-key
string
|
required Authorized access key |
Passages
All passages
To get information about an entire set of passages pertaining to a chapter, supply only the chapter id that was returned from fetching all chapters.
To get a slimmed down range of passages, find two verses id's from fetching all verses, then contacted them together with a dash(-) separating the two id's.
Example:
Verse id 1: MAT.1.2
Verse id 2: MAT.1.11
passage id = MAT.1.2-MAT.1.11
The API response will return a formatted content block containing material for a range of verses.
curl --request GET \
--url https://api.scripture.api.bible/v1/bibles/bibleId/passages/passageId \
--header 'api-key: api-key'
var request = require("request");
var options = { method: 'GET',
url: 'https://api.scripture.api.bible/v1/bibles/bibleId/passages/passageId',
headers: { 'api-key': 'api-key' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
require 'uri'
require 'net/http'
url = URI("https://api.scripture.api.bible/v1/bibles/bibleId/passages/passageId")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["api-key"] = 'api-key'
response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://api.scripture.api.bible/v1/bibles/bibleId/passages/passageId");
xhr.setRequestHeader("api-key", "api-key");
xhr.send(data);
import requests
url = "https://api.scripture.api.bible/v1/bibles/bibleId/passages/passageId"
headers = {'api-key': 'api-key'}
response = requests.request("GET", url, headers=headers)
print(response.text)
{
"data": {
"id": "MAT.1.12-MAT.1.20",
"orgId": "MAT.1.12-MAT.1.20",
"bibleId": "61fd76eafa1577c2-03",
"bookId": "MAT",
"chapterIds": [
"MAT.1"
],
"content": "12-16From the time after the exile in Babylon to the birth of Jesus, the following ancestors are listed: Jehoiachin, Shealtiel, Zerubbabel, Abiud, Eliakim, Azor, Zadok, Achim, Eliud, Eleazar, Matthan, Jacob, and Joseph, who married Mary, the mother of Jesus, who was called the Messiah.
17So then, there were fourteen generations from Abraham to David, and fourteen from David to the exile in Babylon, and fourteen from then to the birth of the Messiah.
The Birth of Jesus Christ
(Luke 2.1-7)
18 This was how the birth of Jesus Christ took place. His mother Mary was engaged to Joseph, but before they were married, she found out that she was going to have a baby by the Holy Spirit. 19Joseph was a man who always did what was right, but he did not want to disgrace Mary publicly; so he made plans to break the engagement privately. 20While he was thinking about this, an angel of the Lord appeared to him in a dream and said, “Joseph, descendant of David, do not be afraid to take Mary to be your wife. For it is by the Holy Spirit that she has conceived.
"
},
"meta": {
"fums": "",
"fumsId": "0699224d-502a-4225-8542-e95b4892adbf",
"fumsJsInclude": "cdn.scripture.api.bible/fums/fumsv2.min.js",
"fumsJs": "var _BAPI=_BAPI||{};if(typeof(_BAPI.t)!='undefined'){ _BAPI.t('0699224d-502a-4225-8542-e95b4892adbf'); }",
"fumsNoScript": "
"
}
}
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
passageId
string
|
required An ID range of a set of verses, concatenated together by a dash.(as found when querying for all verses) |
Query Params | |
content-type
string
|
Format for which the content will be returned in as. Available in: html(default), json, and text |
include-notes
boolean
|
Include footnotes |
include-titles
boolean
|
Include section titles in content |
include-chapter-numbers
boolean
|
Include chapter numbers in content |
include-verse-numbers
boolean
|
Include verse numbers in content |
include-verse-spans
boolean
|
Include spans that wrap verse numbers and verse text for bible content. |
parallels
string
|
Comma delimited list of bible id's |
Headers | |
api-key
string
|
required Authorized access key |
Search
Searching
Supply the bible id that was returned from all bibles followed by submitting your query and Api.bible will return a list of matching verses or passages.
Queries by default will match all verses, for all books. In order to query for specific passage content, you must structure your query in a particular way.
Here are a few examples for querying for passages:
Description | Query Structure | Example |
---|---|---|
for a single passage verse | {passage} {chapter}:{verse} |
..?query="John 3:16" |
for a range of verses | {passage} {chapter}:{verse}-{verse} |
..?query="John 3:16-21" |
for multiple chapter verses | {passage} {chapter}:{verse}, {chapter}:{verse} |
..?query="John 3:16, 4:22" |
for multiple passages | {passage1} {chapter}:{verse}, {passage2} {chapter}:{verse} ... |
..?query=”John 3:16-4:2, Matthew 1:2" |
Path Params | |
---|---|
bibleId
string
|
required The ID of the desired bible (found when querying for all bibles) |
Query Params | |
query
string
|
required Search query |
limit
int32
|
Maximum number of results that will return (10) |
offset
int32
|
Offsetting search results for pagination (used in conjunction with limit) (0) |
Headers | |
api-key
string
|
required Authorized access key |