API
Scripture API
A free, read-only JSON API for looking up Bible verses — no API key, no signup. Built for AI assistants, tools, and anyone who needs scripture text by reference. All three translations are in the public domain (see attribution notes below).
Machine-readable summary at /llms.txt.
Base URL
https://bible49.com/api/bibleQuery styles
1. Book + chapter (+ optional verse or range)
GET /api/bible?b={book}&c={chapter}&v={verse}&t={translation}b— a USFM code (JHN), full English name (John), or common abbreviation (Jn). Case-insensitive.c— chapter number.v— optional. A single verse (16) or a range within that chapter (4-7). Omit for the whole chapter.t— optional, defaultweb. See Translations below.
curl "https://bible49.com/api/bible?b=gen&c=1&v=1&t=web"
curl "https://bible49.com/api/bible?b=psa&c=117" # whole chapter
curl "https://bible49.com/api/bible?b=1cor&c=13&v=4-7" # range2. Free-form reference
GET /api/bible?ref={reference}&t={translation}Accepts things like John 3:16, Jn 3.16,1 Cor 13:4-7, Psalm 23,Gen 1:1-3 — case-insensitive, common abbreviations, en-dash or hyphen ranges.
curl "https://bible49.com/api/bible?ref=John+3:16&t=bsb"Ranges are capped at one chapter per request — no bulk or whole-book dumps. A multi-chapter reference (e.g.Genesis 1-3) returns a 400.
Translations (t=)
| t= | Translation | License |
|---|---|---|
web (default) | World English Bible | Public domain |
bsb | Berean Standard Bible | Public domain |
kjv | King James Version (1769, protocanon) | Public domain outside the UK; UK printing/import governed by Crown letters patent |
Every response includes the exact attribution wording to display alongside quoted text.
Response schema
Example: GET /api/bible?ref=John+3:16&t=web
{
"translation": { "id": "eng-web", "abbreviation": "WEB", "name": "World English Bible" },
"reference": "John 3:16",
"verses": [
{
"verse_id": 43003016,
"book": "JHN",
"chapter": 3,
"verse": 16,
"text": "For God so loved the world, that he gave his one and only Son, that whoever believes in him should not perish, but have eternal life."
}
],
"attribution": "The World English Bible is in the Public Domain. \"World English Bible\" is a trademark of eBible.org.",
"app_url": "https://bible49.com/jhn/3/16"
}verse_id— canonical id, stable across translations and requests (book_id * 1,000,000 + chapter * 1,000 + verse).book— USFM book code (e.g.JHN).display_verse— present only for a merged verse bridge (a printed range like "15-16" that's one verse of running text in the source); omitted otherwise.app_url— deep link to this passage in the Bible49 app.
Verse bridges
Some verses are printed merged with the next ("\\v 15-16" in the source text). Querying either verse number returns the same single entry, at the bridge's first verse number, withdisplay_verse set to the printed label:
{
"translation": { "id": "eng-web", "abbreviation": "WEB", "name": "World English Bible" },
"reference": "Sirach 11:15-16",
"verses": [
{
"verse_id": 71011015,
"book": "SIR",
"chapter": 11,
"verse": 15,
"display_verse": "15-16",
"text": "Do not marvel at a sinner's works, but trust in the Lord and abide in your labor..."
}
],
"attribution": "...",
"app_url": "https://bible49.com/sir/11/15"
}Errors
Errors are JSON: { "error": "..." }.
400— unknown book, unknownt=, a malformed or multi-chapter reference, or an out-of-range chapter/ verse number. The message names valid forms.404— the reference parsed fine, but that translation has no verses there (e.g. a book the translation doesn't include, or a chapter number it doesn't have).
Rate expectations
No API key required. Be reasonable — this is a small, single-developer service. Responses carry a long-livedCache-Control header (verse text for a given translation never changes), so cache what you can. Heavy or automated scraping may get rate-limited or blocked.
All three translations are public domain scripture text — see theattribution field in each response for the exact wording to display.