Bible API

Free REST API for Bible verses with full-text search. Multiple translations, 80+ books including Apocrypha.

Quick Start

curl "https://bible-api.dws-cloud.com/v1/verses/John%203:16"

Endpoints

GET /v1/verses/:reference Try it

Get verses by reference. Supports single verses, ranges, full chapters, and comma-separated references with context inheritance.

Query: translation - Translation ID (default: web)

Optional red-letter segments: segments=1 (also true or yes) includes segments: [{ text, speaker }] for verses with words of Jesus. The default response is unchanged; flat text is always available.

Reference Formats

FormatExampleTry
Single verseJohn 3:16Try
Verse rangeRomans 8:28-39Try
Full chapterPsalm 23Try
Multi-chapterGenesis 1:1-2:3Try
Comma-separatedRomans 14:14, 22-23Try
With translationJohn 3:16?translation=kjvTry
Hebrew Old TestamentGenesis 1:1?translation=wlcTry
Greek New TestamentJohn 3:16?translation=tcgntTry
AbbreviationsJn 3:16, Gen 1:1Try
GET /v1/chapters/:book/:chapter Try it

Get a full chapter with navigation hints. Designed for sequential reading apps.

Query: translation - Translation ID (default: web)

Optional red-letter segments: segments=1 includes marked verse segments using the same opt-in response shape as /v1/verses.

Response includes: navigation.previous and navigation.next with testament field (OT/NT/AP) for client-side boundary handling.

GET /v1/search Try it

Full-text search across all verses.

Query: q - Search query (required) | translation - Translation ID | book - Filter by book (e.g., ROM) | testament - Filter by OT, NT, or AP | limit - Results per page (default: 20) | offset - Pagination offset

Hebrew (WLC): Search queries may include or omit niqqud and cantillation marks; they are normalized for matching. Try a Hebrew search

Greek (TCGNT): Search queries may include or omit polytonic marks and final sigma; they are normalized for matching. Try a Greek search

GET /v1/books Try it

List all books with chapter counts and metadata.

Query: testament - Filter by OT, NT, or AP

GET /v1/translations Try it

List available translations.

GET /v1/random Try it

Get a random verse.

Query: translation - Translation ID | book - Limit to specific book | testament - Limit to OT, NT, or AP

GET /v1/health Try it

Health check endpoint. Returns API status and database stats.

Response Format

{
  "reference": "John 3:16",
  "translation": {
    "id": "web",
    "name": "World English Bible"
  },
  "verses": [{
    "book": "JHN",
    "book_name": "John",
    "chapter": 3,
    "verse": 16,
    "text": "For God so loved the world..."
  }],
  "text": "For God so loved the world..."
}

Translations

IDNameNotes
webWorld English BibleDefault. Modern English, public domain.
kjvKing James Version1769 edition, public domain.
wlcWestminster Leningrad CodexHebrew Masoretic Text. Old Testament only (39 books); New Testament verse and chapter requests return 404.
tcgntText-Critical Greek New TestamentRobinson–Pierpont Byzantine Textform 2018. Public domain. New Testament only (27 books); Old Testament verse and chapter requests return 404. Not NA28.

Usage Guidelines

This is a free, public API. Please be respectful:

Deploy Your Own

Want to run your own instance? The API runs on Cloudflare's free tier. See the Wiki for architecture details and how to add translations.

View on GitHub