Prayer Pulse Bible API Documentation
RESTful API for accessing Bible translations, verses, and search functionality
Introduction
The Prayer Pulse Bible API provides programmatic access to multiple Bible translations, search functionality, and user features. All endpoints return JSON responses with CORS enabled for cross-origin requests.
Authentication
Most read endpoints do not require authentication. User-specific features (bookmarks, history, notes) require authentication via Django session or OAuth.
๐ What's New
๐ Multilingual Support - Get Languages Endpoint
Build truly multilingual Bible apps with our new language-organized endpoint. Get all translations grouped by their native language:
curl https://api.prayerpulse.io/bible/get-languages/
Supported Languages (27 total):
- ๐บ๐ธ English - 40+ translations (KJV, NIV, ESV, NASB, NLT, etc.)
- ๐ช๐ธ Spanish - 7+ translations (Reina-Valera 1960, NVI, NTV, etc.)
- ๐ต๐น Portuguese - 14+ translations (Almeida, NVI, NTLH, etc.)
- ๐บ๐ฆ Ukrainian - 12+ translations
- ๐ท๐บ Russian - 7+ translations
- ๐จ๐ณ Chinese - 5+ translations (Traditional & Simplified)
- ๐ฐ๐ท Korean - 2 translations
- ๐ฏ๐ต Japanese - 3 translations
- ๐ฉ๐ช German - 6 translations
- ๐ซ๐ท French - 5 translations
- ๐ฎ๐ฑ Hebrew - 5 translations (with vowels, accents, Strong's numbers)
- ๐ฌ๐ท Greek - 4 translations (Septuagint, Textus Receptus, Tischendorf)
- ๐ธ๐ฆ Arabic - 1 translation (with RTL support)
- ๐ฎ๐ท Farsi - 2 translations (with RTL support)
- And 13 more languages: Dutch, Czech, Hindi, Malayalam, Nepali, Indonesian, Tamil, Polish, Romanian, Norwegian, Swahili, Swedish, Vietnamese
See it in action: View full endpoint documentation โ
๐ User-Friendly Book Codes
You can now use readable book names in your API calls:
https://api.prayerpulse.io/bible/get-verse/KJV/John/3/16/
https://api.prayerpulse.io/bible/get-text/NIV/Genesis/1/
https://api.prayerpulse.io/bible/get-chapter/ESV/Matthew/5/
https://api.prayerpulse.io/bible/get-text/KJV/Psalms/23/
https://api.prayerpulse.io/bible/get-verse/KJV/43/3/16/
https://api.prayerpulse.io/bible/get-text/NIV/1/1/
Supported book name formats:
- ๐ Full names: Genesis, Matthew, Revelation
- ๐ Short codes: Gen, Matt, Rev
- ๐ 3-letter codes: GEN, MAT, REV
- ๐ With spaces: 1 Samuel, 1 Corinthians, Song of Solomon
- ๐ Numeric IDs: 1, 40, 66 (backward compatible)
โจ Clean Text Parameter
Some translations (like KJV, ASV) include Strong's Concordance numbers for Bible study. You can now toggle these on/off:
https://api.prayerpulse.io/bible/get-verse/KJV/John/3/16/
Response:
{
"text": "For<S>1063</S> God<S>2316</S> so<S>3779</S> loved<S>25</S> the world<S>2889</S>..."
}
https://api.prayerpulse.io/bible/get-verse/KJV/John/3/16/?clean=true
Response:
{
"text": "For God so loved the world, that he gave his only begotten Son..."
}
Works with all endpoints:
- โ /bible/get-verse/{translation}/{book}/{chapter}/{verse}/?clean=true
- โ /bible/get-text/{translation}/{book}/{chapter}/?clean=true
- โ /bible/get-chapter/{translation}/{book}/{chapter}/?clean=true
- โ /bible/search/{translation}/{query}/?clean=true
๐ก Use case: Enable this in your app settings to let users choose between clean reading text or scholarly study mode!
๐ Understanding Section Titles
Some translations (like NIV, ESV, NLT) include section titles embedded in verse text. These are editorial additions that help organize the Bible into logical sections for study.
GET https://api.prayerpulse.io/bible/get-verse/NIV/Genesis/1/1/
Response:
{
"pk": 2568649,
"verse": 1,
"text": "The Beginning<br/>In the beginning God created the heavens and the earth."
}
GET https://api.prayerpulse.io/bible/get-verse/NIV/Genesis/1/1/?clean=true
Response:
{
"pk": 2568649,
"verse": 1,
"text": "In the beginning God created the heavens and the earth."
}
How to Display Section Titles in Your App:
// Fetch verse with section title
fetch('https://api.prayerpulse.io/bible/get-verse/NIV/Genesis/1/1/')
.then(res => res.json())
.then(data => {
const fullText = data.text;
// Check if text contains section title
if (fullText.includes('<br/>')) {
const parts = fullText.split('<br/>');
const sectionTitle = parts[0].trim();
const verseText = parts[1].trim();
// Display section title separately
console.log('Section:', sectionTitle); // "The Beginning"
console.log('Verse:', verseText); // "In the beginning..."
// Render in your UI
// <h3>{sectionTitle}</h3>
// <p>{verseText}</p>
} else {
// No section title
console.log('Verse:', fullText);
}
});
Section Title Use Cases:
- ๐ Bible Study: Users can search by section titles like "Sermon on the Mount"
- ๐ Navigation: Display section titles as chapter headings
- ๐ Context: Help readers understand the theme of each passage
- ๐จ Formatting: Style section titles differently (bold, larger font)
๐ Cross-References & Commentaries
The Bible API provides cross-references (also known as concordance or parallel passages) and commentaries that enrich Bible study by showing how verses relate to each other and providing scholarly notes.
๐ What are Cross-References?
For example, Genesis 3:24 (the cherubim guarding Eden) has cross-references to Ezekiel 1:5-12 and 10:21, which also describe cherubim.
๐ How to Access Cross-References
Cross-references and commentaries are automatically included in the comment field when you request verses or chapters using certain translations (currently RNKSV Korean translation has extensive cross-references).
GET https://api.prayerpulse.io/bible/get-verse/RNKSV/Genesis/3/24/
Response:
{
"pk": 123456,
"verse": 24,
"text": "์ด๋ ๊ฒ ๊ทธ๋ถ๊ป์๋ ์ฌ๋์ ์ซ์๋ด์๊ณ ...",
"comment": "[12] ์ด์ ์๋ ํผ์กฐ๋ฌผ, ๋ ๊ฐ์ ์ผ๊ตด์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ผ๋ก ์๊ฐ๋จ(<a href='/RNKSV/26/1/5-12'>๊ฒ 1:5-12</a>; <a href='/RNKSV/26/10/21'>10:21</a>)"
}
GET https://api.prayerpulse.io/bible/get-chapter/RNKSV/Genesis/1/
Response:
[
{
"pk": 1,
"verse": 1,
"text": "ํ์ด์ ํ๋๋์ด ํ๋๊ณผ ๋
์ ์ฐฝ์กฐํ์
จ๋ค.",
"comment": "[1] ๋๋ 'ํ์ด์ ํ๋๋์ด ์ฒ์ง๋ฅผ ์ฐฝ์กฐํ์ค ๋์'..."
},
{
"pk": 2,
"verse": 2,
"text": "๋
์ ํ์ฒด๊ฐ ์๊ณ ํ
๋น์ด ์์๋๋ฐ...",
"comment": "[2] ๋๋ 'ํ๋๋์ ๋ฐ๋' ๋๋ '๊ฐํ ๋ฐ๋'"
}
// ... more verses with commentaries
]
๐ Understanding the Comment Field
The comment field contains:
- ๐ Textual Notes: Explanations of translation choices and alternative readings
- ๐ Cross-References: HTML links to related passages (format: <a href='/TRANSLATION/BOOK/CHAPTER/VERSE'>Reference</a>)
- ๐ Scholarly Commentary: Context and theological insights
๐ป Parsing Cross-References in Your App
// Fetch verse with commentary
fetch('https://api.prayerpulse.io/bible/get-verse/RNKSV/Genesis/3/24/')
.then(res => res.json())
.then(data => {
if (data.comment) {
// Parse HTML to extract cross-reference links
const parser = new DOMParser();
const doc = parser.parseFromString(data.comment, 'text/html');
const links = doc.querySelectorAll('a');
links.forEach(link => {
const href = link.getAttribute('href');
const text = link.textContent;
console.log(`Reference: ${text}`);
console.log(`Link: ${href}`);
// Convert to API URL format
const apiUrl = `https://api.prayerpulse.io/bible${href}`;
console.log(`API URL: ${apiUrl}`);
// You can now fetch these related verses
// fetch(apiUrl).then(...)
});
}
});
import re
import requests
from bs4 import BeautifulSoup
# Fetch verse with commentary
response = requests.get('https://api.prayerpulse.io/bible/get-verse/RNKSV/Genesis/3/24/')
data = response.json()
if 'comment' in data:
# Parse HTML comment to extract links
soup = BeautifulSoup(data['comment'], 'html.parser')
links = soup.find_all('a')
for link in links:
href = link.get('href')
text = link.get_text()
print(f"Reference: {text}")
print(f"Link: {href}")
# Convert to API URL and fetch related verse
api_url = f"https://api.prayerpulse.io/bible{href}"
related_verse = requests.get(api_url).json()
print(f"Related text: {related_verse['text'][:50]}...")
๐ฏ Use Cases for Cross-References
- ๐ Bible Study Apps: Show related passages to help users understand context
- ๐ Topical Study: Trace themes across the entire Bible (e.g., prophecy fulfillment)
- ๐ Sermon Preparation: Find supporting verses for teaching
- ๐งญ Navigation: Allow users to jump between related passages
- ๐ Educational Tools: Display scholarly notes and translation variants
โ๏ธ Loading Commentaries (For Self-Hosted Deployments)
If you're self-hosting the Prayer Pulse Bible API, you'll need to load the commentaries into your database:
# Navigate to the Django directory
cd django/
# Load all commentaries and cross-references from CSV
python manage.py load_commentaries
# This will import 3,780+ commentary entries including cross-references
Quick Start
Get started with a simple request to fetch John 3:16 using the new user-friendly format:
curl https://api.prayerpulse.io/bible/get-verse/KJV/John/3/16/
curl https://api.prayerpulse.io/bible/get-verse/KJV/43/3/16/
{
"pk": 26133,
"verse": 16,
"text": "For God so loved the world, that he gave his only begotten Son..."
}
Get All Translations
Before fetching Bible text, get a list of all available translations and their books. This is essential for knowing which translations you can work with.
curl https://api.prayerpulse.io/bible/get-languages/
[
{
"language": "English",
"translations": [
{
"short_name": "KJV",
"full_name": "King James Version 1769",
"updated": 1750968212682
},
{
"short_name": "NIV",
"full_name": "New International Version, 1984",
"updated": 1626349711821
}
// ... 40+ more English translations
]
},
{
"language": "Spanish Espaรฑol",
"translations": [
{
"short_name": "RV1960",
"full_name": "Reina-Valera 1960",
"updated": 1635446313426
}
// ... more Spanish translations
]
}
// ... 25+ more languages
]
curl https://api.prayerpulse.io/bible/get-translations/
[
{
"short_name": "YLT",
"full_name": "Young's Literal Translation",
"updated": 1613548800000
},
{
"short_name": "KJV",
"full_name": "King James Version",
"updated": 1613548800000
}
]
Verses & Chapters
Retrieve Bible verses, chapters, and random verses. You can get individual verses or entire chapters with or without commentaries.
curl https://api.prayerpulse.io/bible/get-verse/YLT/1/1/1/
{
"pk": 1,
"verse": 1,
"text": "In the beginning of God's preparing the heavens and the earth --"
}
curl https://api.prayerpulse.io/bible/get-text/YLT/43/3/
[
{
"pk": 26118,
"verse": 1,
"text": "And there was a man of the Pharisees..."
},
// ... more verses
]
curl https://api.prayerpulse.io/bible/get-chapter/NKJV/43/3/
[
{
"pk": 26118,
"verse": 1,
"text": "There was a man of the Pharisees named Nicodemus...",
"comment": "<i>Nicodemus was a prominent Jewish leader...</i>"
}
]
curl https://api.prayerpulse.io/bible/get-random-verse/YLT/
{
"pk": 31073,
"translation": "YLT",
"book": 9,
"chapter": 24,
"verse": 19,
"text": "and that a man doth find his enemy..."
}
Search
Search for verses containing specific keywords or phrases. Supports Hebrew, Greek, and any language. Advanced filters available for precise searching.
curl "https://api.prayerpulse.io/bible/v2/find/YLT?search=love"
curl "https://api.prayerpulse.io/bible/v2/find/YLT?search=Haggi&match_case=false&match_whole=true&book=ot&page=1&limit=50"
{
"exact_matches": 12,
"total": 534,
"results": [
{
"pk": 26133,
"translation": "YLT",
"book": 43,
"chapter": 3,
"verse": 16,
"text": "for God did so <strong>love</strong> the world..."
}
]
}
Books & Metadata
Retrieve book lists, verse counts, and translation metadata. Perfect for building book navigation, table of contents, and Bible reading apps.
curl https://api.prayerpulse.io/bible/get-books/KJV/
[
{
"id": "GEN",
"bookid": 1,
"name": "Genesis",
"chapters": 50
},
{
"id": "EXO",
"bookid": 2,
"name": "Exodus",
"chapters": 40
},
{
"id": "MAT",
"bookid": 40,
"name": "Matthew",
"chapters": 28
},
{
"id": "REV",
"bookid": 66,
"name": "Revelation",
"chapters": 22
}
// ... 62 more books
]
// Fetch book list
const books = await fetch('https://api.prayerpulse.io/bible/get-books/KJV/')
.then(res => res.json());
// Current book: "MAT" (Matthew)
const currentBookId = "MAT";
const currentIndex = books.findIndex(b => b.id === currentBookId);
// Navigate to next book
const nextBook = books[currentIndex + 1];
console.log(`Next: ${nextBook.name}`); // "Mark"
// Navigate to previous book
const prevBook = books[currentIndex - 1];
console.log(`Previous: ${prevBook.name}`); // "Malachi"
// Fetch next chapter using the clean book ID
const nextChapter = await fetch(
`https://api.prayerpulse.io/bible/get-chapter/KJV/${nextBook.id}/1/`
).then(res => res.json());
User Features
Authenticated endpoints for user bookmarks, notes, and reading history.
Compare Versions (Parallel Verses)
Compare the same verses across multiple Bible translations side-by-side. Perfect for Bible study and translation comparison!
fetch("https://api.prayerpulse.io/bible/get-parallel-verses/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
translations: ["YLT", "KJV", "WEB"],
verses: [3, 4, 5],
book: 43,
chapter: 1
})
}).then(res => res.json())
curl -X POST https://api.prayerpulse.io/bible/get-parallel-verses/ \
-H "Content-Type: application/json" \
-d '{"translations":["YLT","KJV"],"verses":[16],"book":43,"chapter":3}'
[
// YLT Translation
[
{
"pk": 26133,
"translation": "YLT",
"book": 43,
"chapter": 3,
"verse": 16,
"text": "for God did so love the world..."
}
],
// KJV Translation
[
{
"pk": 2743736,
"translation": "KJV",
"book": 43,
"chapter": 3,
"verse": 16,
"text": "For God so loved the world..."
}
]
]
Fetch Multiple Verses
Need to fetch several verses from different books or chapters in one request? This endpoint lets you grab multiple verses efficiently!
fetch("/get-verses/", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify([
{
translation: "YLT",
book: 19,
chapter: 23,
verses: [1, 2, 3]
},
{
translation: "KJV",
book: 43,
chapter: 3,
verses: [16]
}
])
}).then(res => res.json())
Hebrew & Greek Dictionary
Look up definitions for Hebrew and Greek words directly from Strong's Concordance and other lexicons. Perfect for word studies!
curl https://api.prayerpulse.io/bible/dictionary-definition/BDBT/ืึนึืืจ/
curl https://api.prayerpulse.io/bible/dictionary-definition/BDBT/H216/
[
{
"topic": "H216",
"lexeme": "ืืึนืจ",
"transliteration": "'รดwr",
"pronunciation": "ore",
"short_definition": "light",
"definition": "<p>light, daylight, illumination...</p>",
"weight": 1.0
}
]
Download Full Translations
Download entire Bible translations as JSON or ZIP files for offline use or bulk processing.
curl https://api.prayerpulse.io/static/translations/YLT.json -O
curl https://api.prayerpulse.io/static/translations/KJV.zip -O
Available Translations
Currently available Bible translations in the API:
| Code | Name | Language |
|---|---|---|
| YLT | Young's Literal Translation | English |
| KJV | King James Version | English |
| ASV | American Standard Version | English |
| BSB | Berean Study Bible | English |
| ...and many more | ||
Book Reference Numbers
Books are referenced by their canonical order (1-66):
| ID | Book | ID | Book |
|---|---|---|---|
| 1 | Genesis | 40 | Matthew |
| 2 | Exodus | 41 | Mark |
| 3 | Leviticus | 42 | Luke |
| 4 | Numbers | 43 | John |
| 5 | Deuteronomy | 44 | Acts |
| Use /get-books/ endpoint for complete list | |||
Error Codes
Standard HTTP response codes are used:
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request successful |
| 400 | Bad Request | Invalid parameters or malformed request |
| 404 | Not Found | Resource does not exist |
| 500 | Internal Server Error | Server encountered an error |
Best Practices
- Use specific verse endpoints instead of downloading entire translations
- Cache responses on your client to reduce API calls
- Implement proper error handling for network failures
- Always use HTTPS for secure connections
Support
Need help or have questions?