Overview
The API provides read-only access to the complete text of the Original Douay-Rheims Bible, including verse text, footnotes, cross-references, and annotations. All endpoints return JSON. No authentication or API key is required.
Bible data is served from Cloudflare's global CDN. Responses include long-lived cache headers — please cache on your end to avoid redundant requests.
https://thedouayrheims.comEndpoints
/api/verse/:book/:chapter/:verseReturns a single verse with its footnotes and cross-references.
Parameters
| Name | In | Description |
|---|---|---|
book | path | Book slug (see Book slugs) |
chapter | path | Chapter number |
verse | path | Verse number |
Example request
GET /api/verse/john/3/16 Example response
{
"book": "john",
"book_title": "The Gospel of Jesus Christ According to S. John",
"chapter": 3,
"verse": 16,
"text": "For God so loved the world, as to give his only-begotten Son: that whosoever believeth in him may not perish, but may have life everlasting.",
"notes": [
{
"label": "a",
"text": "The love of God to man was so great, that he gave his only Son to die for man's salvation."
}
],
"cross_refs": [
{ "text": "1. Io. 4, 9." }
]
}/api/chapter/:book/:chapterReturns all verses in a chapter.
Parameters
| Name | In | Description |
|---|---|---|
book | path | Book slug |
chapter | path | Chapter number |
Example request
GET /api/chapter/genesis/1 Example response
{
"book": "genesis",
"book_title": "The Book of Genesis",
"chapter": 1,
"verse_count": 31,
"verses": [
{
"verse": 1,
"text": "In the beginning God created heaven and earth.",
"notes": [],
"cross_refs": [{ "text": "Act. 14, 15. 17, 24." }]
},
...
]
}/data/odr/:book.jsonReturns the complete book: all chapters, all verses, footnotes, cross-references, chapter introductions, and book metadata. Served as a static file directly from Cloudflare CDN — fastest option when you need a whole book.
Example request
GET /data/odr/matthew.json/api/randomReturns a randomly selected verse. Useful for widgets, bots, and daily verse features.
Parameters
| Name | In | Description |
|---|---|---|
testament | query | Optional. OT or NT to restrict to one Testament. |
Example requests
GET /api/random
GET /api/random?testament=NT Response shape
Same as /api/verse/:book/:chapter/:verse.
/api/searchFull-text search across verse text or the full notes corpus (annotations, marginal notes, reference documents).
Parameters
| Name | In | Required | Description |
|---|---|---|---|
q | query | Yes | Search query |
scope | query | No | verses (default) or notes |
limit | query | No | Max results, 1–500. Default: 100. |
counts | query | No | Set to 1 to return only result counts for both scopes, without hydrating results. |
Example request
GET /api/search?q=propitiation&scope=verses&limit=20 Verse scope response
{
"scope": "verses",
"total": 4,
"queryTokens": ["propitiation"],
"results": [
{
"heading": "Romans 3",
"slug": "romans",
"chapter": 3,
"bookName": "Romans",
"verseNumbers": [25],
"verses": [
{
"verse": 25,
"text": "Whom God hath proposed to be a propitiation, through faith in his blood..."
}
],
"queryTokens": ["propitiation"]
}
]
} Notes scope response
{
"scope": "notes",
"total": 12,
"queryTokens": ["propitiation"],
"results": [
{
"reference": "Romans 3:25",
"slug": "romans",
"chapter": 3,
"verse": 25,
"type": "annotation",
"title": "Propitiation",
"noteText": "Christ is our propitiation...",
"queryTokens": ["propitiation"]
}
]
}Errors
| Status | Meaning |
|---|---|
400 | Bad request — invalid parameter (e.g. non-numeric chapter) |
404 | Not found — unknown book slug, or chapter/verse out of range |
500 | Internal error — data could not be loaded |
Error responses follow the shape { "error": "description" }.
Book slugs
Slugs follow the Douay-Rheims naming convention. Kings and Paralipomenon use the DR numbering (not the Protestant convention). The three Vulgate appendix texts are included.
Old Testament (49 books)
genesis Genesisexodus Exodusleviticus Leviticusnumbers Numbersdeuteronomy Deuteronomyjosue Josuejudges Judgesruth Ruth1-kings 1 Kings2-kings 2 Kings3-kings 3 Kings4-kings 4 Kings1-paralipomenon 1 Paralipomenon2-paralipomenon 2 Paralipomenon1-esdras 1 Esdras2-esdras 2 Esdrastobias Tobiasjudith Judithesther Esther1-machabees 1 Machabees2-machabees 2 Machabeesjob Jobpsalms Psalmsproverbs Proverbsecclesiastes Ecclesiastescanticle-of-canticles Canticle of Canticleswisdom Wisdomecclesiasticus Ecclesiasticusisaie Isaiejeremie Jeremylamentations Lamentationsbaruch Baruchezechiel Ezechieldaniel Danielosee Oseejoel Joelamos Amosabdias Abdiasjonas Jonasmicheas Micheasnahum Nahumhabacuc Habacucsophonias Sophoniasaggeus Aggeuszacharias Zachariasmalachie Malachieprayer-of-manasses Prayer of Manasses3-esdras 3 Esdras4-esdras 4 EsdrasNew Testament (27 books)
matthew Matthewmark Markluke Lukejohn Johnacts Actsromans Romans1-corinthians 1 Corinthians2-corinthians 2 Corinthiansgalatians Galatiansephesians Ephesiansphilippians Philippianscolossians Colossians1-thessalonians 1 Thessalonians2-thessalonians 2 Thessalonians1-timothy 1 Timothy2-timothy 2 Timothytitus Titusphilemon Philemonhebrews Hebrewsjames James1-peter 1 Peter2-peter 2 Peter1-john 1 John2-john 2 John3-john 3 Johnjude Judeapocalypse ApocalypseCaching
Verse and chapter endpoints return Cache-Control: public, max-age=86400 (24 hours).
The random endpoint returns Cache-Control: no-store. Search responses are private
with a short TTL. Please respect these headers and cache on your end.
Rate limits
There are no enforced rate limits. The API is served from Cloudflare's global CDN with no
compute cost for static book files. For high-volume use, prefer /data/odr/:book.json over repeated per-verse requests, and cache aggressively.