No authentication
Public, read-only v1 endpoints work without a token or API key.
Public developer resources
Search the BEMA Podcast catalog, retrieve episode details, and work with available transcripts through a free, read-only REST API or MCP server. Public v1 access needs no account, API key, or SDK.
Public, read-only v1 endpoints work without a token or API key.
Generate a client or inspect every parameter from the live specification.
Connect compatible assistants to four focused discovery and retrieval tools.
Quickstart
The API base URL is https://api.bema.jpamorgan.com. Send a regular HTTPSGET request; no Authorization header is required for public read-only v1 resources.
curl 'https://api.bema.jpamorgan.com/v1/episodes/1'Successful responses use JSON. Start with theBEMA OpenAPI specificationfor a machine-readable contract, or continue below for the common paths.
No-code sandbox
This form sends a plain HTML GET request directly to the public API and opens the raw JSON response. It works without client-side JavaScript and is annotated as a discoverable browser tool.
Prefer a ready-made request?Open a Sabbath search response.
REST reference
All v1 routes are read-only. URL-encode path and query values, and use the cursor returned by a collection response when requesting the next page.
GET /healthCheck whether the BEMA API service is reachable.
GET /v1/episodes?q=&session=&limit=&cursor=Search or page through episode metadata. Every query parameter is optional.
GET /v1/episodes/{slug}Retrieve one episode by its stable BEMA slug, such as 1 or -1.
GET /v1/transcripts/search?q=&session=&limit=Search the text of locally available transcripts. A meaningful q is required.
GET /v1/transcripts/{slug}Retrieve transcript text, paragraphs, source, and context when available.
Response shape
Detail responses wrap the requested resource in data and identify the contract with schemaVersion. Episode records retain official BEMA and platform links so people can follow results back to the source. This is the complete response for the episode 1 quickstart request above; the complete schema and error responses live in OpenAPI.
{
"data": {
"description": "Marty Solomon and Brent Billings talk about the creation story in Genesis 1 and the foundation it lays for understanding the scriptural narrative correctly.",
"durationSeconds": 3188,
"episodeNumber": 1,
"kind": "episode",
"links": {
"api": "https://api.bema.jpamorgan.com/v1/episodes/1",
"audio": "https://aphid.fireside.fm/d/1437767933/7d8cc2be-fe66-43fb-ada4-e62e2f8c00e7/12e69976-b104-40bb-9876-025466d839f7.mp3",
"official": "https://www.bemadiscipleship.com/1",
"transcript": "https://api.bema.jpamorgan.com/v1/transcripts/1",
"web": "https://bema.jpamorgan.com/episodes/1"
},
"matchedFields": [],
"people": [
{
"name": "Marty Solomon",
"role": "host",
"url": "https://www.martysolomon.com/"
},
{
"name": "Brent Billings",
"role": "host",
"url": "https://brentbillings.com/"
}
],
"publishedAt": "2016-09-08T08:00:00.000Z",
"relevance": null,
"session": 1,
"slug": "1",
"subtitle": "The Creation Story of Genesis 1",
"title": "Trust the Story",
"transcriptAvailable": true,
"audio": {
"url": "https://aphid.fireside.fm/d/1437767933/7d8cc2be-fe66-43fb-ada4-e62e2f8c00e7/12e69976-b104-40bb-9876-025466d839f7.mp3",
"mimeType": "audio/mpeg",
"sizeBytes": 25806787,
"durationSeconds": 3188
},
"chapters": [],
"imageUrl": "https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/7/7d8cc2be-fe66-43fb-ada4-e62e2f8c00e7/cover.jpg?v=2",
"platformLinks": {
"bema": "https://www.bemadiscipleship.com/1",
"applePodcasts": "https://podcasts.apple.com/us/podcast/the-bema-podcast/id1148115183",
"spotify": "https://open.spotify.com/show/0g3Io9OkiFPEyvEPwXqaiq"
},
"showNotes": "Marty Solomon and Brent Billings talk about the creation story in Genesis 1 and the foundation it lays for understanding the scriptural narrative correctly. Presentation for Trust the Story (PDF) Sabbath as Resistance by Walter Brueggemann The Sabbath by Abraham Joshua Heschel BEMA Discipleship — Groups Join the BEMA Slack Brent on Twitter/X BEMA Discipleship on Twitter/X BEMA Discipleship on Facebook Marty on Instagram Brent on Instagram BEMA Discipleship on Instagram BEMA Discipleship — Subscribe (Recommended Apps) Study Tools Discussion Video for BEMA 1 The Companion for BEMA 1 Take Your Own Notes Transcript for BEMA 1 Legacy Episode Content Episode updated 6 January 2025 Original audio from 8 September 2016 Transcript for BEMA 1 of 8 September 2016",
"transcript": {
"sourceUrl": "https://docs.google.com/document/d/e/2PACX-1vSvmUpR45EmoLDho32o6oPgg91NXOb3wvCwSsdvJ6Y8wC-MruWpS7KVpiRAIjy7kAV4SCevEAznmm-b/pub",
"path": "/transcripts/1.json",
"contentSha256": "9859072395ae743f7881e93de27d4681ba5898a9c2c2a01f02d8bd9b649f12af",
"wordCount": 9760
}
},
"schemaVersion": "1"
}Nonexistent resources return an appropriate 4xx status and JSON error. Treat fields not marked required in OpenAPI as optional, especially transcripts and platform-specific links.
Model Context Protocol
The Streamable HTTP MCP endpoint is https://api.bema.jpamorgan.com/mcp. Compatible clients can discover the server card and use four read-only tools:search_episodes, get_episode,search_transcripts, and get_transcript. The REST transcript route returns the complete locally available text; MCP get_transcript honors max_characters and reports when its result is truncated.
Use BEMA tools when someone asks to find a BEMA episode, identify where the podcast discusses a subject, look up episode metadata, or inspect an available transcript. The tools do not modify data or play audio on a user’s behalf.
Good citizenship
429 or 5xx responses, and avoid downloading the same record repeatedly.Cache-Control, ETag, and If-None-Match. Catalog data changes far less often than search queries.This is a public, best-effort service with no SLA. If you need a large offline dataset, begin with the API andcontact the project maintainer before sustained bulk traffic.