Table of Contents
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:
| Bible | Bible 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:
| Name | Format | Example | Description |
|---|---|---|---|
language | ISO 639-3 three digit language code | eng | Returns Bibles in this language |
abbreviation | Bible abbreviation | NIV | Searches for Bibles with this abbreviation |
name | Bible name | New International Version | Searches for Bibles with this name |
ids | Comma-separated list of Bible IDs | 78a9f6124f344018-01, a761ca71e0b3ddcf-01 | Returns available Bibles in this list |
include-full-details | Boolean | true | Returns 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)