Douay-Rheims Bible

API

Programmatic access to the Original Douay-Rheims Bible text.

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.

Base URL https://thedouayrheims.com

Endpoints

GET /api/verse/:book/:chapter/:verse

Returns a single verse with its footnotes and cross-references.

Parameters

NameInDescription
bookpathBook slug (see Book slugs)
chapterpathChapter number
versepathVerse 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." }
  ]
}
GET /api/chapter/:book/:chapter

Returns all verses in a chapter.

Parameters

NameInDescription
bookpathBook slug
chapterpathChapter 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." }]
    },
    ...
  ]
}
GET /data/odr/:book.json

Returns 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
GET /api/random

Returns a randomly selected verse. Useful for widgets, bots, and daily verse features.

Parameters

NameInDescription
testamentqueryOptional. 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.

GET /api/search

Full-text search across verse text or the full notes corpus (annotations, marginal notes, reference documents).

Parameters

NameInRequiredDescription
qqueryYesSearch query
scopequeryNoverses (default) or notes
limitqueryNoMax results, 1–500. Default: 100.
countsqueryNoSet 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

StatusMeaning
400Bad request — invalid parameter (e.g. non-numeric chapter)
404Not found — unknown book slug, or chapter/verse out of range
500Internal 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 Genesis
exodus Exodus
leviticus Leviticus
numbers Numbers
deuteronomy Deuteronomy
josue Josue
judges Judges
ruth Ruth
1-kings 1 Kings
2-kings 2 Kings
3-kings 3 Kings
4-kings 4 Kings
1-paralipomenon 1 Paralipomenon
2-paralipomenon 2 Paralipomenon
1-esdras 1 Esdras
2-esdras 2 Esdras
tobias Tobias
judith Judith
esther Esther
1-machabees 1 Machabees
2-machabees 2 Machabees
job Job
psalms Psalms
proverbs Proverbs
ecclesiastes Ecclesiastes
canticle-of-canticles Canticle of Canticles
wisdom Wisdom
ecclesiasticus Ecclesiasticus
isaie Isaie
jeremie Jeremy
lamentations Lamentations
baruch Baruch
ezechiel Ezechiel
daniel Daniel
osee Osee
joel Joel
amos Amos
abdias Abdias
jonas Jonas
micheas Micheas
nahum Nahum
habacuc Habacuc
sophonias Sophonias
aggeus Aggeus
zacharias Zacharias
malachie Malachie
prayer-of-manasses Prayer of Manasses
3-esdras 3 Esdras
4-esdras 4 Esdras

New Testament (27 books)

matthew Matthew
mark Mark
luke Luke
john John
acts Acts
romans Romans
1-corinthians 1 Corinthians
2-corinthians 2 Corinthians
galatians Galatians
ephesians Ephesians
philippians Philippians
colossians Colossians
1-thessalonians 1 Thessalonians
2-thessalonians 2 Thessalonians
1-timothy 1 Timothy
2-timothy 2 Timothy
titus Titus
philemon Philemon
hebrews Hebrews
james James
1-peter 1 Peter
2-peter 2 Peter
1-john 1 John
2-john 2 John
3-john 3 John
jude Jude
apocalypse Apocalypse

Caching

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.