This documentation is called to provide available API for creating a functioning client.
Updated at: 17 February 2021.
First of all get a list of available translations and an object with their books. The translations list contain nodes with following properties:
short_name
field is an id of the translation in
database. Use it for forming a url.
full_name
field is a full name of its translation.
commentaries
field indicates whether there is a
translators commentary to the translation.
updated
field is a date number when the translation was
updated in the last time.
info
field sometimes may contain a link to translation
description.
dir
field may specify rtl direction translations.
In order to fetch books of only one translation use the nest API:
https://bolls.life/get-books/<slug:translation>/
Where translation
is an abbreviation of desired translation.
Example:
https://bolls.life/get-books/YLT/
The books list contains books with the next properties:
bookid
field is an id of the book in database.chronorder
field is a chronological order book number
according to Robert Young (just a small feature).
name
field is a book name.chapters
field is a number of book chapters.Curl code
curl --location --request GET 'https://bolls.life/static/bolls/app/views/languages.json'
Using that data, you can form a url to fetch a chapter. You may fetch the chapter with translator commentaries or without them. The url constructor:
https://bolls.life/get-text/<slug:translation>/<int:book>/<int:chapter>/ # Without commentaries
https://bolls.life/get-chapter/<slug:translation>/<int:book>/<int:chapter>/ # With commentaries
Where <slug:translation>
is a translation abbreviation
like YLT
or UBIO
or SYNOD
, and
<int:book>
with <int:chapter>
are
numbers of a book and chapter. For example by the next url you will get
the eight chapter of Song of Solomon in YLT or NKJV translation:
https://bolls.life/get-text/YLT/22/8/
https://bolls.life/get-chapter/NKJV/22/8/
Curl code
curl --location --request GET 'https://bolls.life/get-text/YLT/22/8/'
curl --location --request GET 'https://bolls.life/get-chapter/NKJV/22/8/'
The result of this request will be a list of verses of that chapter, with the next fields:
pk
field is an id of the verse in database.verse
field is a number of the verse in its chapter.
text
field contains an html text of this verse.comment
field contains an html text of
translators comment or references.
NOTE! To fetch a single verse or a few verses of one or more translations use Compare versions API
Updated at: 11 November 2024.
To find verses by a slug or a string you need to form a url in the next manner:
https://bolls.life/v2/find/<slug:translation>?search=<str:piece>&match_case=<bool:match_case>&match_whole=<bool:match_whole>
Where <slug:translation>
is an abbreviation of the
translation in which you want to find something. The
<str:piece>
is a piece of text which can be a slug or a
string which you look for. It is`not case sensitive, and it can be
anything on any language: .../WLC?search=שָּׁמַ֖יִם וְאֵ֥ת
,
.../LXX?search=ὁ θεὸς τὸν
,
.../UBIO?search=Небо та землю
,
.../CUV?search=淵 面 黑 暗
.
Also at the end of search url you may add optional boolean parameters:
match_case
(case sensitive search) andmatch_whole
(precise search, match whole search string) andbook
(filter search results by book. Use «ot» and «nt» to filter by Old Testment and New Testament).https://bolls.life/v2/find/YLT?search=haggi&match_case=false&match_whole=true
The result of this request will be a list of top 1024 found verses in the given translation, where every verse will have some several fields:
exact_matches
contains total number of exact matchesresults
is an array of the next objextspk
field is an id of the verse in database.translation
field is a translation of search.book
field is a book of the verse.chapter
field is a chapter of the book in which the
verse is found.
verse
field is a number of the verse in its chapter.
text
field contains html text of the verse.comment
field contains translators commentary
to the verse if such exist.
Curl code
curl --location --request GET 'https://bolls.life/v2/find/YLT?search=haggi&match_case=false&match_whole=true'
You can get a full translation in json or zip:
https://bolls.life/static/translations/<slug:translation>.json
https://bolls.life/static/translations/<slug:translation>.zip
The result will be an array of all translation verses. For example you can try the next link:
https://bolls.life/static/translations/YLT.json
The structure of nodes in this array will be like in the nodes of search query
Curl code
curl --location --request GET 'https://bolls.life/static/translations/YLT.json'
You can make a request for peculiar verses in peculiar translations. If
you wanna see some exact verse or verses in different translation to
compare them you can use this api. The request should be
POST
, and you should pass in the body an object with some
fields. The request url -=>
https://bolls.life/get-paralel-verses/
, The body of the
POST
request must have the nest fields:
translations
field should be an array of abbreviations
of translations like:
JSON.stringify(["YLT", "HOM", "WLCC"])
.
verses
field should be an array of numbers of verses to
compare like: JSON.stringify([1, 2, 3, 6, 45])
(order does mean).
chapter
field should be a chapter of the book.book
field should be a book of the verses.You may request different verses in different translations only of one chapter. Imba example.
window.fetch("/get-paralel-verses/", { method: "POST", cache: "no-cache", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ // Here are list of translations for comparison translations: ['YLT', 'WEB', 'KJV'], // It may be a single verse there [3], or any number of verses, // and if they exist they will be returned verses: [3, 4, 5], book: 43, // an id of the book chapter: 1, // number of chapter }), }) .then(do(response) response.json()) .then(do(resdata) translations_with_verses = resdata console.log console.log )
The result of this request will be an array of translations where every translation is an array of requested verses, where every verse has these fields. Here is the example of the result:
[ [ { "pk": 1145257, "translation": "WLCC", "book": 18, "chapter": 2, "verse": 1, "text": "ויהי היום ויבאו בני האלהים להתיצב על־יהוה ויבוא גם־השטן בתכם להתיצב על־יהוה׃" }, { "pk": 1145258, "translation": "WLCC", "book": 18, "chapter": 2, "verse": 2, "text": "ויאמר יהוה אל־השטן אי מזה תבא ויען השטן את־יהוה ויאמר משט בארץ ומהתהלך בה׃" }, { "pk": 1145259, "translation": "WLCC", "book": 18, "chapter": 2, "verse": 3, "text": "ויאמר יהוה אל־השטן השמת לבך אל־עבדי איוב כי אין כמהו בארץ איש תם וישר ירא אלהים וסר מרע ועדנו מחזיק בתמתו ותסיתני בו לבלעו חנם׃" } ], [ { "pk": 36107, "translation": "YLT", "book": 18, "chapter": 2, "verse": 1, "text": "And the day is, that sons of God come in to station themselves by Jehovah, and there doth come also the Adversary in their midst to station himself by Jehovah." }, { "pk": 36108, "translation": "YLT", "book": 18, "chapter": 2, "verse": 2, "text": "And Jehovah saith unto the Adversary, 'Whence camest thou?' And the Adversary answereth Jehovah and saith, 'From going to and fro in the land, and from walking up and down in it.'" }, { "pk": 36109, "translation": "YLT", "book": 18, "chapter": 2, "verse": 3, "text": "And Jehovah saith unto the Adversary, 'Hast thou set thy heart unto My servant Job because there is none like him in the land, a man perfect and upright, fearing God and turning aside from evil? and still he is keeping hold on his integrity, and thou dost move Me against him to swallow him up for nought!'" } ] ]
To fetch a single verse construct a link like this:
https://bolls.life/get-text/<slug:translation>/<int:book>/<int:chapter>/<int:verse>/
Where <slug:translation>
is a translation abbreviation
like YLT
or UBIO
or SYNOD
, and
<int:book>
with <int:chapter>
and <int:verse>
are
numbers of a book, chapter and verse. For example by the next url you will get first verse of
the first chapter of Genesis in NKJV translation:
https://bolls.life/get-verse/NKJV/1/1/1/
New from 28 June 2022.
Sometimes one my need to fetch a few verses from different places of all of the Bible. This API allow to do that. In the body you should provide and array of Bible places you wanna fetch:
translation
field must contain translation codebook
field must contain book codechapter
field must contain chapter numberverses
field must contain array of verses numbersHere is an example:
window.fetch('/get-verses/', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify([ { translation: settings.translation, book: settings.book, chapter: settings.chapter, verses: [14, 15, 16] }, { translation: 'KJV', book: 19, chapter: 91, verses: [1, 2, 3] } ]) }).then(do(response) response.json()).then(do(data) console.log(data) ).catch(do(error) console.log('Error:', error))
That will result in the next way:
[ [ { "pk": 23228, "translation": "YLT", "book": 1, "chapter": 1, "verse": 14, "text": "And God saith, 'Let luminaries be in the expanse of the heavens, to make a separation between the day and the night, then they have been for signs, and for seasons, and for days and years," }, { "pk": 23229, "translation": "YLT", "book": 1, "chapter": 1, "verse": 15, "text": "and they have been for luminaries in the expanse of the heavens to give light upon the earth:' and it is so." }, { "pk": 23230, "translation": "YLT", "book": 1, "chapter": 1, "verse": 16, "text": "And God maketh the two great luminaries, the great luminary for the rule of the day, and the small luminary -- and the stars -- for the rule of the night;" } ], [ { "pk": 2743734, "translation": "KJV", "book": 19, "chapter": 91, "verse": 1, "text": "He that dwelleth in the secret place of the most High shall abide under the shadow of the Almighty." }, { "pk": 2743735, "translation": "KJV", "book": 19, "chapter": 91, "verse": 2, "text": "I will say of the LORD, He is my refuge and my fortress: my God; in him will I trust." }, { "pk": 2743736, "translation": "KJV", "book": 19, "chapter": 91, "verse": 3, "text": "Surely he shall deliver thee from the snare of the fowler, and from the noisome pestilence." } ] ]
New from 23 December 2021.
This API lets you get a list of definitions for a Hebrew or Greek word, if such do exist in a dictionary. If there are no definitions for requested query -- an empty array is returned. The API looks in the next way:
https://bolls.life/dictionary-definition/<slug:dict>/<str:query>/
Where: dict
is an abbreviation of dictionary that should be
used. At this moment there are available only to dictionaries:
BDBT
-
Brown-Driver-Briggs' Hebrew Definitions / Thayer's Greek
Definitions
and RUSD
-
Полный лексикон по Стронгу и Дворецкому, 2019 (https://bolls.life/static/bolls/app/views/dictionaries.json). query
is a string -- anything in Greek or Hebrew. You may
also search for English/Russian words and it will return
some relative Hebrew/Greek words and their definitions.
query
also may be a strong number like H125
or
G523
- it will return a particular definition under that
Strong number. In result you will get a JSON array - empty or with
definitions XD. For example the next request will return an array of
definitions for the Hebrew word אֹ֑ור
(light):
https://bolls.life/dictionary-definition/BDBT/אֹ֑ור
Result:
[ { "topic": "H215", "definition": "Original: <b><he>אור</he></b> <p />Transliteration: <b>ôr</b> <p />Phonetic: <b>ore</b> <p class=\"bdb_def\"><b>BDB Definition</b>:</p><ol><li>to be or become light, shine<ol type=a><li>(Qal)<ol><li>to become light (day)</li><li>to shine (of the sun)</li><li>to become bright</li></ol><li>(Niphal)<ol><li>to be illuminated</li><li>to become lighted up</li></ol><li>(Hiphil)<ol><li>to give light, shine (of sun, moon, and stars)</li><li>to illumine, light up, cause to shine, shine</li><li>to kindle, light (candle, wood)</li><li>lighten (of the eyes, his law, etc)</li><li>to make shine (of the face)</li></ol></li></ol></li></ol> <p />Origin: a primitive root <p />TWOT entry: <a class=\"T\" href=\"S:0052 - or\">52</a> <p />Part(s) of speech: Verb ", "lexeme": "אֹור", "transliteration": "ʼôwr", "pronunciation": "ore", "short_definition": "[idiom] break of day", "weight": 1 }, { "topic": "H216", "definition": "Original: <b><he>אור</he></b> <p />Transliteration: <b>ôr</b> <p />Phonetic: <b>ore</b> <p class=\"bdb_def\"><b>BDB Definition</b>:</p><ol><li>light<ol type=a><li>light of day</li><li>light of heavenly luminaries (moon, sun, stars)</li><li>day-break, dawn, morning light</li><li>daylight</li><li>lightning</li><li>light of lamp</li><li>light of life</li><li>light of prosperity</li><li>light of instruction</li><li>light of face (figuratively)</li><li>Jehovah as Israels light</li></ol></li></ol> <p />Origin: from <a href=S:H215>H215</a> <p />TWOT entry: <a class=\"T\" href=\"S:0052 - or\">52a</a> <p />Part(s) of speech: Noun Feminine ", "lexeme": "אֹור", "transliteration": "ʼôwr", "pronunciation": "ore", "short_definition": "bright", "weight": 1 }, { "topic": "H217", "definition": "Original: <b><he>אוּר</he></b> <p />Transliteration: <b>ûr</b> <p />Phonetic: <b>ore</b> <p class=\"bdb_def\"><b>BDB Definition</b>:</p><ol><li>flame, light of fire</li></ol> <p />Origin: from <a href=S:H215>H215</a> <p />TWOT entry: <a class=\"T\" href=\"S:0052 - or\">52d</a> <p />Part(s) of speech: Noun Masculine ", "lexeme": "אוּר", "transliteration": "ʼûwr", "pronunciation": "ore", "short_definition": "fire", "weight": 1 }, { "topic": "H218", "definition": "Original: <b><he>אוּר</he></b> <p />Transliteration: <b>ûr</b> <p />Phonetic: <b>oor</b> <p class=\"bdb_def\"><b>BDB Definition</b>:</p> Ur = \"flame\" <ol><li>city in southern Babylonia, city of the Chaldeans, centre of moon worship, home of Abrahams father, Terah, and departure point for the Abrahams migration to Mesopotamia and Canaan</li></ol> <p />Origin: the same as <a href=S:H217>H217</a> <p />TWOT entry: None <p />Part(s) of speech: Proper Name Location ", "lexeme": "אוּר", "transliteration": "ʼÛwr", "pronunciation": "oor", "short_definition": "Ur", "weight": 1 } ]
Every definition contains next fields:
topic
- a Strong number.definition
- an HTML string with the definition text.
lexeme
- the found word itself.transliteration
- transliteration of the found word.pronunciation
- pronunciation of the found wordshort_definition
- short definition of the word, by which,
between, the word can be found with English/Russian query
weight
- a number indicating how close is the matched word
to the query on the scale from 0 to 1
Also there is an optional flag extended
which when equals to true
will return results of extended search. For example try this query:
https://bolls.life/dictionary-definition/BDBT/אֹ֑ור/?extended=true
New from 4 Feb 2024.
To get a random verse from the Bible you should form a url in the next way:
https://bolls.life/get-random-verse/<slug:translation>/
Where <slug:translation>
is a translation abbreviation
like YLT
or UBIO
or SYNOD
. For
example by the next url you will get a random verse from the Bible in YLT
translation:
https://bolls.life/get-random-verse/YLT/
Curl code
curl --location --request GET 'https://bolls.life/get-random-verse/YLT/'
Result:
{ "pk": 31073, "translation": "YLT", "book": 9, "chapter": 24, "verse": 19, "text": "and that a man doth find his enemy, and hath sent him away in a good manner; and Jehovah doth repay thee good for that which thou didst to me this day." }
Where:
pk
field is an id of the verse in database.translation
field is a translation of the verse.book
field is a book of the verse.chapter
field is a chapter of the book in which the verse is found.verse
field is a number of the verse in its chapter.text
field contains html text of the verse.</br>
or
<i></i>
. Or display the text as HTML or clean up the
text.