BibleEngine

A 100% static Bible API

BibleEngine

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.

An open Bible with an intricate brass clockwork engine rising from its pages

01The endpoint

One URL. Every kind of lookup.

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.

RequestReturns
/api/?q=John 3:16auto-detects the kind of query
/api/?reference=John 3a whole chapter
/api/?search=Christ mercyverses containing both words
/api/?search="for God so loved…"an exact phrase
/api/?search=love*love, loves, loved, lovely…
/api/?strongs=G25every verse sharing that root, with its lexicon entry
/api/?q=love&trans=akjvthe 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

Import the engine. Call it.

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.

app.js
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

Or skip the code entirely.

Every file is directly reachable and CORS-enabled. Fetch the JSON yourself.

FileShape
/v1/kjv/manifest.jsonbook ids, names, verse counts per chapter
/v1/kjv/{BB}/{CCC}.jsonone chapter, verse → text
/v1/kjvstrongs/{BB}/{CCC}.jsonsame, each verse {t, w}
/v1/akjvstrongs/{BB}/{CCC}.jsonAmerican KJV, each verse {t, w}
/v1/index/words/{a-z}.jsonword → packed verse ids
/v1/index/strongs/{H|G}/{n}.jsonStrong's → packed ids
/v1/index/meta.jsonindex counts and stop-word list
/v1/index-akjv/…the same index tree for the American KJV
/v1/lexicon/{H|G}/{n}.jsonStrong'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.

BibleEngine A Ministry Site by Danny Carlton.