Developer Documentation & API Specification
The Message REST API
Build mobile apps, web interfaces, and research tools on top of 1,200+ William Branham sermons across 70+ languages including Chichewa.
๐ค AI Agent & LLM Machine-Readable Specifications
100% LLM NativeAutonomous AI agents, Custom GPTs, Claude Tools, and LangChain OpenAPI toolkits can consume the machine-readable specifications directly:
Quick Navigation
๐ฎ Interactive API Explorer
Test live REST API responses directly in your browser:
Click "Execute Query" to fetch live JSON response...
Retrieves a paginated list of sermon records. Supports filtering by language, year, series, place, duration range, or length.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 1 | Page number to retrieve. |
limit | integer | 50 | Number of items per page (max: 200). |
language | string | null | Language code filter (e.g. en, nya for Chichewa, fra, es). ny is also supported as an alias. |
year | string / int | null | Year filter (e.g. 1965 or 2-digit 65). |
date | string | null | Preaching date filter (e.g. 1965-07-18 or 65-0718). |
series | string | null | Official series name or slug (e.g. adoption, seven-seals, hebrews, conduct-order-doctrine). |
place / location / city | string | null | Preaching location or city (e.g. Jeffersonville, Chicago, Phoenix). |
duration | string | null | Duration group matching The Table: 1-60, 61-90, 91-120, 121-150, 151-180, 181+. |
length | string | null | Sermon length category: short (<60m), medium (60โ120m), long (>120m). |
Example Response (200 OK)
{
"data": [
{
"id": "65-0718M",
"number": 1170,
"title": "Trying To Do God A Service Without Being The Will Of God",
"date": "1965-07-18",
"year": 1965,
"language": "en",
"location": "Jeffersonville, IN",
"duration_minutes": 127,
"duration_group": "121 - 150",
"length": "long",
"cover_image": "https://branham.org/azure/branham/073884ef-dd28-41d1-a7b8-33accbc478b2.jpg",
"pdf_url": "https://themessage.com/...",
"m4a_url": "https://themessage.com/..."
}
],
"pagination": {
"page": 1,
"limit": 50,
"total": 595,
"total_pages": 12,
"has_next": true,
"has_prev": false
}
}Fetches metadata, cover image, PDF transcript URL, audio stream, preaching location, length category, official series, and available translation editions (languages) for a specific sermon ID (date code like 65-0718M).
URL Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | Sermon date code identifier (e.g. 65-0718M, 63-0317M). |
language | string | Optional language code (e.g. fra, nya, es). Defaults to en. |
Fetches structured transcript text organized into numbered paragraphs and sentence-level tokens. Every sentence has an individual tag (e.g. p1-s1), and editor's notes (e.g. [...โEd.] or [..._Mkonzi.]) are cleanly isolated.
Direct PDF text extraction frequently suffers from fused words (missing whitespace), OCR errors, running headers, and page breaks. Structured text with sentence-level tags allows exact sentence highlighting, word-level quoting, audio sync, and separates the speaker's voice from translator notes.
URL & Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (path) | Sermon date code identifier (e.g. 65-0718M, 50-0100). |
language | string (query) | Language code filter (e.g. ny or nya for Chichewa, en for English). Default: en. |
Example Response (200 OK)
{
"data": {
"id": "65-0718M",
"title": "Kuyesera Kuchitira Mulungu Utumiki...",
"language": "nya",
"date": "1965-07-18",
"location": "Jeffersonville, IN",
"pdf_url": "https://d2w09gj4mqt5u.cloudfront.net/repo/...",
"paragraphs": [
{
"number": 1,
"text": "Mulungu akudalitseni m'bale. [Msonkhano ukuti, \"Amen.\"โMkonzi.]...",
"sentences": [
{
"id": "p1-s1",
"text": "Mulungu akudalitseni m'bale.",
"is_editor_note": false,
"type": "speech"
},
{
"id": "p1-s2",
"text": "[Msonkhano ukuti, \"Amen.\"โMkonzi.]",
"is_editor_note": true,
"type": "editor_note"
}
]
}
]
}
}Retrieves the 16 official sermon series defined in Voice of God Recordingsโ catalogue on The Table (table.branham.org).
Sub-Endpoints
GET /api/seriesโ Returns all 16 official series with sermon counts and product IDs.GET /api/series/:slugโ Returns metadata and sermon date codes for a specific series (e.g.adoption,seven-seals,hebrews,church-ages).GET /api/series/:slug/messagesโ Directly lists the sermon records belonging to that series.
The 16 Official Series Overview
| Slug | Official Series Title | Sermons |
|---|---|---|
adoption | Adoption | 4 |
church-ages | An Exposition Of The Seven Church Ages | 11 |
branham-tabernacle | Branham Tabernacle | 295 |
brother-branham | Brother Branham | 2 |
conduct-order-doctrine | Conduct, Order, And Doctrine Of The Church | 23 |
demonology | Demonology | 3 |
easter-revival | Easter Revival | 6 |
israel-and-the-church | Israel And The Church | 5 |
jehovah-jireh | Jehovah-Jireh | 5 |
hebrews | The Book Of Hebrews | 11 |
the-church | The Church | 3 |
the-easter-message | The Easter Message | 5 |
the-holy-ghost | The Holy Ghost | 2 |
revelation-of-jesus-christ | The Revelation Of Jesus Christ | 15 |
seven-seals | The Revelation Of The Seven Seals | 10 |
seventy-weeks | The Seventy Weeks Of Daniel | 3 |
Example Response (200 OK)
{
"total_series": 16,
"data": [
{
"id": "seven-seals",
"slug": "seven-seals",
"title": "The Revelation Of The Seven Seals",
"sermon_count": 10,
"sermon_ids": ["63-0317M", "63-0317E", "63-0318", "63-0319", "63-0320", "63-0321", "63-0322", "63-0323", "63-0324M", "63-0324E"]
}
]
}Browse preaching locations across 120+ cities (Jeffersonville, Phoenix, Chicago, Los Angeles, Oakland, Shreveport, etc.) mapped directly from The Table taxonomy.
Sub-Endpoints & Query Filters
GET /api/places(or/api/cities) โ Returns preaching venues sorted by frequency with sermon counts.GET /api/places/:place/messagesโ Returns sermons preached in a specific city/venue (e.g./api/places/Jeffersonville/messages).GET /api/messages?place={place}โ Filter sermons by city or venue.
Example Response (200 OK)
{
"total_places": 124,
"data": [
{ "place": "Jeffersonville, IN", "count": 418 },
{ "place": "Phoenix, AZ", "count": 113 },
{ "place": "Chicago, IL", "count": 110 },
{ "place": "Los Angeles, CA", "count": 56 }
]
}Lists the 6 official duration brackets utilized by The Table (table.branham.org) along with active sermon counts.
Query Filtering
GET /api/messages?duration={bracket}โ Filter by duration bracket:1-60: Under 1 hour.61-90: 1 hour to 1.5 hours.91-120: 1.5 hours to 2 hours.121-150: 2 hours to 2.5 hours.151-180: 2.5 hours to 3 hours.181+: 3+ hours (Extended revival services).
GET /api/messages?length={short|medium|long}โ Simplified duration filter.
Example Response (200 OK)
{
"total_groups": 6,
"data": [
{ "id": "1-60", "group": "1 - 60", "label": "Under 1 hour", "min": 0, "max": 60, "count": 178 },
{ "id": "61-90", "group": "61 - 90", "label": "1 hr โ 1.5 hrs", "min": 61, "max": 90, "count": 424 },
{ "id": "91-120", "group": "91 - 120", "label": "1.5 hrs โ 2 hrs", "min": 91, "max": 120, "count": 520 },
{ "id": "121-150", "group": "121 - 150", "label": "2 hrs โ 2.5 hrs", "min": 121, "max": 150, "count": 161 },
{ "id": "151-180", "group": "151 - 180", "label": "2.5 hrs โ 3 hrs", "min": 151, "max": 180, "count": 55 },
{ "id": "181+", "group": "181+", "label": "3+ hours (Extended)", "min": 181, "max": 9999, "count": 22 }
]
}Performs full-text keyword search across sermon titles, sermon IDs, and date codes.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | No* | Search term, exact phrase, sermon ID, or date (e.g. seven seals, "seven seals", 1965-07-18, 65-0718M). *Required unless date or year is specified. |
date | string | No | Filter by preaching date (e.g. 1965-07-18 or 65-0718). |
year | string / int | No | Filter by 4-digit or 2-digit year (e.g. 1965 or 65). |
language | string | No | Filter search results to a specific language code (e.g. nya for Chichewa, en for English). ny is also accepted as an alias. |
Returns all 72 supported languages with ISO language codes and sermon counts.
Aggregated metrics detailing total sermon counts, language breakdown, audio streams, PDF transcripts, and text availability.
Example Response (200 OK)
{
"data": {
"total_sermons": 577,
"total_languages": 2,
"available_languages": 72,
"year_range": {
"earliest": 1950,
"latest": 1965
},
"sermons_with_pdf": 572,
"sermons_with_audio": 525,
"sermons_with_text": 572
}
}๐ป Code Examples
Integrate the API into your web or mobile application in minutes:
JavaScript (Fetch API)
// Fetch Chichewa sermons from the REST API
async function getChichewaSermons() {
const response = await fetch('https://bakarimustafa.com/api/messages?language=ny&limit=10');
const data = await response.json();
console.log('Chichewa Sermons:', data.data);
}
getChichewaSermons();Python
import requests
# Query sermons by search keyword
response = requests.get('https://bakarimustafa.com/api/search', params={'q': 'seven seals'})
results = response.json()
for sermon in results['data']:
print(f"[{sermon['id']}] {sermon['title']} ({sermon['language']})")cURL
curl -X GET "https://bakarimustafa.com/api/messages?language=ny&limit=5" \ -H "Accept: application/json"