🤖 AI Agent & LLM Machine-Readable Specifications

100% LLM Native

Autonomous AI agents, Custom GPTs, Claude Tools, and LangChain OpenAPI toolkits can consume the machine-readable specifications directly:

📄 /llms.txt (AI Discovery Context) 📘 /llms-full.txt (Full Technical Reference) ⚡ /api/openapi.json (OpenAPI 3.0 Spec)

🎮 Interactive API Explorer

Test live REST API responses directly in your browser:

Click "Execute Query" to fetch live JSON response...
GET List Sermons
https://bakarimustafa.com/api/messages

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
  }
}
GET Get Sermon by ID
https://bakarimustafa.com/api/messages/:id

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).
GET Get Sermon Transcript & Paragraphs
https://bakarimustafa.com/api/messages/:id/text

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..." }
    ]
  }
}
GET List Available Languages
https://bakarimustafa.com/api/languages

Returns all 72 supported languages with ISO language codes and sermon counts.

GET Catalogue Statistics
https://bakarimustafa.com/api/stats

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"
</div>