API.Bible Logo

Documentation Navigation

Bibles

Overview

A Bible object represents a single translation (NIV, ESV, etc.) of the Bible. Each Bible is accessible via its Bible ID, a string consisting of a 16-digit unique string followed by a publication number (-01, -02). A few popular examples are:

BibleBible ID
New International Version (NIV)78a9f6124f344018-01
New American Standard Bible (NASB)a761ca71e0b3ddcf-01
Christian Standard Bible (CSB)a556c5305ee15c3f-01

Bible availability via API.Bible depends on your chosen plan. The Starter Plan provides access to Public Domain and Creative Commons versions, while the Pro Plan may include additional licensed translations. See our Bible Versions Table for more information.


Bible Data Structure

Below is the data structure for the Bible object, which is returned by all /bibles API endpoints

{
"id": "string",
"dblId": "string",
"abbreviation": "string",
"abbreviationLocal": "string",
"language": {
"id": "string",
"name": "string",
"nameLocal": "string",
"script": "string",
"scriptDirection": "string"
},
"countries": [
{
"id": "string",
"name": "string",
"nameLocal": "string"
}
],
"name": "string",
"nameLocal": "string",
"description": "string",
"descriptionLocal": "string",
"relatedDbl": "string",
"type": "string",
"updatedAt": "2026-04-07T18:59:36.218Z",
"audioBibles": [
{
"id": "string",
"name": "string",
"nameLocal": "string",
"description": "string",
"descriptionLocal": "string"
}
]
}

Fetching Your Available Bibles

GET https://rest.api.bible/v1/bibles

To fetch your list of available Bibles, you must send a GET request to the above API endpoint. This will return a list of every Bible you have access to via API.Bible. This includes all Public Domain and Creative Commons versions, as well as any Bibles licensed through a Pro Plan subscription.

Parameters

You can use the following query parameters to alter the results of your request:

NameFormatExampleDescription
languageISO 639-3 three digit language codeengReturns Bibles in this language
abbreviationBible abbreviationNIVSearches for Bibles with this abbreviation
nameBible nameNew International VersionSearches for Bibles with this name
idsComma-separated list of Bible IDs78a9f6124f344018-01, a761ca71e0b3ddcf-01Returns available Bibles in this list
include-full-detailsBooleantrueReturns copyright and promo info for each Bible

Response

Below is the expected output structure from a successful API request:

{
"data": [
{
"id": "string",
"dblId": "string",
"abbreviation": "string",
"abbreviationLocal": "string",
"language": {
"id": "string",
"name": "string",
"nameLocal": "string",
"script": "string",
"scriptDirection": "string"
},
"countries": [
{
"id": "string",
"name": "string",
"nameLocal": "string"
}
],
"name": "string",
"nameLocal": "string",
"description": "string",
"descriptionLocal": "string",
"relatedDbl": "string",
"type": "string",
"updatedAt": "2026-04-07T19:41:30.708Z",
"audioBibles": [
{
"id": "string",
"name": "string",
"nameLocal": "string",
"description": "string",
"descriptionLocal": "string"
}
]
}
]
}

Code Samples

To make a simple curl request, copy the following snippet and insert your API key:

curl --request GET \
--url https://rest.api.bible/v1/bibles \
--header 'api-key: YOUR_API_KEY'

For a JavaScript application, copy the following function and insert your API key:

const fetchAvailableBiblesList = async () => {
const url = "https://rest.api.bible/v1/bibles";
try {
const response = await fetch(url, {
headers: {
"api-key": "YOUR_API_KEY",
},
});
if (!response.ok) {
throw new Error(`Response status: ${response.status}`);
}
const result = await response.json();
console.log(result);
return result;
} catch (error) {
console.error(error.message);
}
};

Note: To protect your API key, it is not recommended to use your API key in a client-side JS application (i.e. React)


Fetching a Single Bible

GET https://rest.api.bible/v1/bibles/{bibleId}

To fetch information about a single Bible, you must send a GET request to the above API endpoint using the Bible ID of the Bible you would like to fetch. If you are having trouble finding the Bible ID of a specific Bible, try fetching your available Bibles first.

Parameters

There are no additional parameters for this endpoint.

Response

Below is the expected output structure from a successful API request:

{
"data": {
"id": "string",
"dblId": "string",
"abbreviation": "string",
"abbreviationLocal": "string",
"copyright": "string",
"language": {
"id": "string",
"name": "string",
"nameLocal": "string",
"script": "string",
"scriptDirection": "string"
},
"countries": [
{
"id": "string",
"name": "string",
"nameLocal": "string"
}
],
"name": "string",
"nameLocal": "string",
"description": "string",
"descriptionLocal": "string",
"info": "string",
"type": "string",
"updatedAt": "2026-04-07T20:07:54.416Z",
"relatedDbl": "string",
"audioBibles": [
{
"id": "string",
"name": "string",
"nameLocal": "string",
"description": "string",
"descriptionLocal": "string"
}
]
}
}

Code Samples

To make a simple curl request, copy the following snippet and insert your API key and a Bible ID:

curl --request GET \
--url https://rest.api.bible/v1/bibles/{bibleId} \
--header 'api-key: YOUR_API_KEY'

For a JavaScript application, copy the following function and insert your API key and a Bible ID:

const fetchBible = async (bibleId) => {
const url = `https://rest.api.bible/v1/bibles/${bibleId}`;
try {
const response = await fetch(url, {
headers: {
"api-key": "YOUR_API_KEY",
},
});
if (!response.ok) {
throw new Error(`Response status: ${response.status}`);
}
const result = await response.json();
console.log(result);
return result;
} catch (error) {
console.error(error.message);
}
};

Note: To protect your API key, it is not recommended to use your API key in a client-side JS application (i.e. React)