Rhema Study Bible API

Free, open Bible API with 3 translations, 66 books, topic-based verse discovery, and daily verse — ready to integrate into any website or app.

Free & Open CORS Enabled No API Key Required KJV / WEB / BSB
← Back to Rhema Study Bible

Quick Start

Base URL: https://rhemabibles.com/api

All endpoints return JSON. No authentication needed. CORS is fully enabled for browser requests.

// Fetch today's verse in one line
fetch('https://rhemabibles.com/api/daily-verse')
  .then(r => r.json())
  .then(v => console.log(v.reference, v.text));

Today's Daily Verse (live):

Loading...

API Endpoints

GET /api/daily-verse

Returns a curated verse that changes once per day. Same verse for all users on the same day.

ParameterTypeDescription
translation optional string Translation ID: kjv, web, or bsb. Default: kjv
Try it live →
{
  "reference": "Hebrews 11:1",
  "text": "Now faith is the substance of things hoped for...",
  "translation": "KJV",
  "date": "2026-04-13",
  "embed": "<blockquote class='rhema-verse'>...</blockquote>",
  "source": "Rhema Study Bible API",
  "url": "https://rhemabibles.com"
}
GET /api/random-verse

Returns a random popular Bible verse. Different each request — great for inspiration widgets.

ParameterTypeDescription
translation optional string kjv, web, or bsb. Default: kjv
Try it live →

Random verse (live, refreshes on page load):

Loading...

GET /api/verse

Look up a specific verse or an entire chapter by book, chapter, and optional verse number.

ParameterTypeDescription
book required string Book name — e.g. John, 1 Corinthians, Psalms
chapter required integer Chapter number
verse optional integer Verse number. Omit to get the full chapter.
translation optional string kjv, web, or bsb. Default: kjv

Examples:

John 3:16 → Psalm 23 (WEB) → Romans 8:28 (BSB) →
// Single verse response
{
  "reference": "John 3:16",
  "book": "John",
  "chapter": 3,
  "verse": 16,
  "text": "For God so loved the world...",
  "translation": "KJV"
}

// Full chapter response (omit verse param)
{
  "reference": "Psalms 23",
  "verses": [
    { "verse": 1, "text": "The LORD is my shepherd..." },
    { "verse": 2, "text": "He maketh me to lie down..." },
    ...
  ],
  "verseCount": 6
}
GET /api/search

Full-text search across the entire Bible. Returns matching verses with references.

ParameterTypeDescription
q required string Search query — e.g. love, forgiveness, in the beginning
translation optional string kjv, web, or bsb. Default: kjv
limit optional integer Max results (1-100). Default: 20
Search "forgiveness" → Search "in the beginning" (WEB) →
GET /api/topics

Get curated verse references for 25+ biblical topics. Call without a topic to list all available topics.

ParameterTypeDescription
topic optional string Topic name. Omit to list all topics.

Available topics:

Loading...

All topics → Love → Anxiety → Courage →
GET /api/books

Returns the complete list of 66 books, organized by Old and New Testament, with available translations.

View all books →

Integration Examples

Daily Verse Widget (HTML + JavaScript)

<!-- Add this anywhere on your site -->
<div id="rhema-daily"></div>
<script>
  fetch('https://rhemabibles.com/api/daily-verse')
    .then(r => r.json())
    .then(v => {
      document.getElementById('rhema-daily').innerHTML = v.embed;
    });
</script>

React Component

// DailyVerse.jsx
import { useState, useEffect } from 'react';

export default function DailyVerse() {
  const [verse, setVerse] = useState(null);

  useEffect(() => {
    fetch('https://rhemabibles.com/api/daily-verse')
      .then(r => r.json())
      .then(setVerse);
  }, []);

  if (!verse) return <p>Loading...</p>;

  return (
    <blockquote>
      <p>"{verse.text}"</p>
      <cite>
        — {verse.reference} ({verse.translation})
        | <a href={verse.url}>Rhema Study Bible</a>
      </cite>
    </blockquote>
  );
}

Python

import requests

# Get a specific verse
r = requests.get('https://rhemabibles.com/api/verse', params={
    'book': 'John',
    'chapter': 3,
    'verse': 16,
    'translation': 'web'
})
print(r.json()['text'])

# Search for a topic
r = requests.get('https://rhemabibles.com/api/search', params={
    'q': 'love',
    'limit': 5
})
for v in r.json()['results']:
    print(f"{v['reference']}: {v['text'][:80]}...")

cURL

# Daily verse
curl https://rhemabibles.com/api/daily-verse

# Specific verse in WEB translation
curl "https://rhemabibles.com/api/verse?book=Romans&chapter=8&verse=28&translation=web"

# Search
curl "https://rhemabibles.com/api/search?q=faith&limit=10"

# Topics
curl "https://rhemabibles.com/api/topics?topic=peace"

Rate Limits & Terms