A 100% static Bible API
Two public-domain Bibles — King James and American King James, 31,102 verses each — answered by your browser reading plain JSON. Strong's numbers and a Hebrew & Greek lexicon included. No database, no server-side code.
Sends your query to the /api/ endpoint — processed entirely client-side.
01The endpoint
Put the request in the query string and the page runs it in your browser, then renders the result. Add &format=json for the structured object instead of a page.
| Request | Returns |
|---|---|
/api/?q=John 3:16 | auto-detects the kind of query |
/api/?reference=John 3 | a whole chapter |
/api/?search=Christ mercy | verses containing both words |
/api/?search="for God so loved…" | an exact phrase |
/api/?search=love* | love, loves, loved, lovely… |
/api/?strongs=G25 | every verse sharing that root, with its lexicon entry |
/api/?q=love&trans=akjv | the American King James (default is KJV) |
Also accepts trans (kjv or akjv), plus page and limit for paging. A bare /api/ shows its own usage.
02The JavaScript modules
Building your own app? Import the modules directly. They fetch the static files for you, so your code never touches file paths or packed ids.
import { loadManifest } from 'https://bibleengine.org/js/BibleEngine.js'; import { loadIndexMeta } from 'https://bibleengine.org/js/search.js'; import { runQuery } from 'https://bibleengine.org/js/query.js'; const manifest = await loadManifest(); const meta = await loadIndexMeta(); const res = await runQuery('John 3:16', { manifest, meta }); console.log(res.results[0].text); // "For God so loved the world, that he gave…"
BibleEngine.js also exports parseReference and fetchPassage; search.js exports searchWord, searchStrongs, prefixSearch, fetchVerses and lookupStrongs (the Strong's lexicon); query.js exports TRANSLATIONS for the KJV / AKJV switch (pass trans in the context).
03The raw static files
Every file is directly reachable and CORS-enabled. Fetch the JSON yourself.
| File | Shape |
|---|---|
/v1/kjv/manifest.json | book ids, names, verse counts per chapter |
/v1/kjv/{BB}/{CCC}.json | one chapter, verse → text |
/v1/kjvstrongs/{BB}/{CCC}.json | same, each verse {t, w} |
/v1/akjvstrongs/{BB}/{CCC}.json | American KJV, each verse {t, w} |
/v1/index/words/{a-z}.json | word → packed verse ids |
/v1/index/strongs/{H|G}/{n}.json | Strong's → packed ids |
/v1/index/meta.json | index counts and stop-word list |
/v1/index-akjv/… | the same index tree for the American KJV |
/v1/lexicon/{H|G}/{n}.json | Strong's number → lemma, transliteration + definition |
A packed id encodes a verse as one integer: book × 1000000 + chapter × 1000 + verse. John 3:16 is 43003016. The /v1/ prefix is the format version.