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, or series.
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, ny for Chichewa, fr, es). |
year | string / int | null | Year filter (e.g. 1965 or 2-digit 65). |
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",
"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, and audio stream 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). |
Fetches full transcript text and structured paragraph objects for a specific sermon ID (date code like 50-0100).
URL & Query Parameters
| Parameter | Type | Description |
|---|---|---|
id | string (path) | Sermon date code identifier (e.g. 50-0100, 65-0718M). |
language | string (query) | Language code filter (e.g. ny for Chichewa, en for English). |
Example Response (200 OK)
{
"data": {
"id": "50-0100",
"title": "Matenda Ndi Zosautsa",
"language": "ny",
"date": "1950-01-00",
"pdf_url": "https://d2w09gj4mqt5u.cloudfront.net/repo/...",
"full_text": "MATENDANDIZOSAUTSA...",
"paragraphs": [
{ "number": 1, "text": "Inendikufunakufotokozachinachake..." },
{ "number": 2, "text": "Chinthu chimodzi chiri chokhudza..." }
]
}
}Performs full-text keyword search across sermon titles, sermon IDs, and date codes.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q | string | Yes | Search term or phrase (e.g. seven seals, deity). |
language | string | No | Filter search results to a specific language code. |
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"