Browse, read, and search Bible texts programmatically. 30 translations covering 26 languages, from ancient (Vulgate, 405 AD) to modern (World English Bible, 2000). Full-text search with BM25 ranking, verse of the day, and flexible book/chapter/verse navigation.
From the King James Version to the Chinese Union Version, Arabic Smith-Van Dyke, and Polish Biblia Tysiąclecia. Protestant canon (66 books) plus deuterocanonical books in supported translations.
FTS5-powered search with BM25 ranking. Search within a single translation or across all translations at once. Supports keywords, phrases, and prefix wildcards with highlighted result snippets.
Deterministic daily verse (same for all callers on the same UTC date) or random mode. Filter by translation, language, testament, or book.
Reference books by full name (genesis, song-of-solomon),
abbreviation (gen, jhn), or USFX code (GEN, JHN).
Case-insensitive and hyphen-tolerant.
$ curl "https://api.apicrate.io/api/v1/bible/kjv/john/3/16" \
-H "X-API-Key: YOUR_API_KEY"
# Response
{
"status": "ok",
"data": {
"translation_id": "kjv",
"book": {
"id": 43,
"abbr": "JHN",
"name": "John",
"local_name": "John"
},
"chapter": 3,
"verse": {
"verse": 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."
},
"reference": "John 3:16"
}
}
import requests
response = requests.get(
"https://api.apicrate.io/api/v1/bible/kjv/john/3/16",
headers={"X-API-Key": "YOUR_API_KEY"},
)
verse = response.json()["data"]
print(f"{verse['reference']}: {verse['verse']['text']}")
# John 3:16: For God so loved the world, that he gave his only begotten Son, ...
const res = await fetch(
"https://api.apicrate.io/api/v1/bible/kjv/john/3/16",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const { data } = await res.json();
console.log(`${data.reference}: ${data.verse.text}`);
// John 3:16: For God so loved the world, that he gave his only begotten Son, ...
$ curl "https://api.apicrate.io/api/v1/bible/bt/psalms/23/1" \
-H "X-API-Key: YOUR_API_KEY"
# Response
{
"status": "ok",
"data": {
"translation_id": "bt",
"book": {
"id": 19,
"abbr": "PSA",
"name": "Psalms",
"local_name": "Księga Psalmów"
},
"chapter": 23,
"verse": {
"verse": 1,
"text": "Psalm. Dawidowy. Pan jest moim pasterzem, nie brak mi niczego."
},
"reference": "Psalms 23:1"
}
}
import requests
response = requests.get(
"https://api.apicrate.io/api/v1/bible/bt/psalms/23/1",
headers={"X-API-Key": "YOUR_API_KEY"},
)
verse = response.json()["data"]
print(f"{verse['book']['local_name']} — {verse['verse']['text']}")
# Księga Psalmów — Psalm. Dawidowy. Pan jest moim pasterzem, nie brak mi niczego.
const res = await fetch(
"https://api.apicrate.io/api/v1/bible/bt/psalms/23/1",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const { data } = await res.json();
console.log(`${data.book.local_name} — ${data.verse.text}`);
// Księga Psalmów — Psalm. Dawidowy. Pan jest moim pasterzem, nie brak mi niczego.
$ curl "https://api.apicrate.io/api/v1/bible/daily?mode=random&testament=NT" \
-H "X-API-Key: YOUR_API_KEY"
# Response
{
"status": "ok",
"data": {
"translation_id": "web",
"translation_name": "World English Bible",
"lang_code": "en",
"lang_name": "English",
"book": {
"id": 45,
"abbr": "ROM",
"name": "Romans",
"local_name": "Romans"
},
"chapter": 8,
"verse": {
"verse": 28,
"text": "We know that all things work together for good for those who love God, for those who are called according to his purpose."
},
"reference": "Romans 8:28"
}
}
import requests
response = requests.get(
"https://api.apicrate.io/api/v1/bible/daily",
headers={"X-API-Key": "YOUR_API_KEY"},
params={"mode": "random", "testament": "NT"},
)
verse = response.json()["data"]
print(f"[{verse['translation_name']}] {verse['reference']}: {verse['verse']['text']}")
# [World English Bible] Romans 8:28: We know that all things work together ...
const res = await fetch(
"https://api.apicrate.io/api/v1/bible/daily?mode=random&testament=NT",
{ headers: { "X-API-Key": "YOUR_API_KEY" } }
);
const { data } = await res.json();
console.log(`[${data.translation_name}] ${data.reference}: ${data.verse.text}`);
// [World English Bible] Romans 8:28: We know that all things work together ...
/api/v1/bible/languages
List languages
/api/v1/bible/translations
List translations
/api/v1/bible/translations/{translation_id}
Get translation detail
/api/v1/bible/daily
Verse of the day / random verse
/api/v1/bible/search
Search across translations
/api/v1/bible/{translation}/search
Search within a translation
/api/v1/bible/{translation}/books
List books
/api/v1/bible/{translation}/books/{book}
Get book detail
/api/v1/bible/{translation}/{book}/chapters
List chapters
/api/v1/bible/{translation}/{book}/{chapter}
Get chapter content
/api/v1/bible/{translation}/{book}/{chapter}/{verse_ref}
Get verse or verse range
The API currently serves 30 translations across 26 languages, including 6 English translations (KJV, WEB, ASV, YLT, Darby, Douay-Rheims), plus Arabic, Chinese, Czech, Dutch, French, German, Greek, Hebrew, Italian, Korean, Latin, Polish, Portuguese, Romanian, Russian, Spanish, Swahili, Ukrainian, and Vietnamese.
Full-text search supports simple keywords (love), exact phrases
("in the beginning"), and prefix wildcards (lo*). Results are
ranked by BM25 relevance or can be sorted in canonical Bible order.
Yes. The /bible/search endpoint searches across all translations by
default, or you can specify a comma-separated list with
?translations=kjv,web,lsg. Results are grouped by translation.
Books can be referenced by full English name (genesis), common
abbreviation (gen), or USFX code (GEN). Multi-word names support
hyphens (song-of-solomon) or abbreviations (sng). All lookups
are case-insensitive.
Yes. Translations that include deuterocanonical books (e.g. the
Douay-Rheims, Vulgate, and World English Bible) serve them with
testament code DC. Protestant-only translations contain 66 books.
In daily mode, the same verse is returned for all callers on the
same UTC date (given the same filters). In random mode, a new
verse is picked on every call. Filter by translation, language,
testament, or book.
Create a free account and start making requests in under a minute.