Skip to main content
GET
/
v1
/
media
/
{mediaId}
/
transcript
Get Sermon Transcript
curl --request GET \
  --url https://api.thefaithapp.com/v1/media/{mediaId}/transcript \
  --header 'Authorization: Bearer <token>' \
  --header 'X-API-Key: <x-api-key>'
{
  "status": "<string>",
  "data": {},
  "data.media_id": 123,
  "data.language": "<string>",
  "data.is_original": true,
  "data.full_text": "<string>",
  "data.cues": [
    {}
  ],
  "data.cues[].start_ms": 123,
  "data.cues[].end_ms": 123,
  "data.cues[].text": "<string>",
  "data.available_languages": [
    {}
  ]
}
Returns the published transcript for a sermon in the authenticated member’s church. If the sermon has no published transcript, or the sermon belongs to another church, the response succeeds with data: null. Use the lightweight has_transcript field from GET /v1/audios, GET /v1/videos, or GET /v1/media/category/{categoryId} before loading the full cue list.

Request inputs

X-API-Key
string
required
Your client API key from the dashboard (Settings page).
mediaId
number
required
Unique identifier of the audio or video sermon.
language
string
Optional language code for a published translation, such as es or sw. If the translation is not published, the original transcript is returned.

Response fields

status
string
required
Indicates whether the transcript lookup succeeded.
data
object | null
The published transcript payload, or null when no published transcript is available.
data.media_id
number
The media item this transcript belongs to.
data.language
string
The language returned for this request.
data.is_original
boolean
Whether the returned transcript is the original published transcript instead of a translation.
data.full_text
string
Full transcript text for search, display, or accessibility use.
data.cues
object[]
Timestamped transcript lines for synced playback.
data.cues[].start_ms
number
Cue start time in milliseconds.
data.cues[].end_ms
number
Cue end time in milliseconds.
data.cues[].text
string
Transcript text for the cue.
data.available_languages
object[]
Original and published translated languages available for the sermon.

Example response

{
  "status": "Success",
  "data": {
    "media_id": 30,
    "language": "english",
    "is_original": true,
    "full_text": "For God so loved the world. That he gave his only son.",
    "cues": [
      {
        "start_ms": 0,
        "end_ms": 2500,
        "text": "For God so loved the world."
      },
      {
        "start_ms": 2500,
        "end_ms": 5200,
        "text": "That he gave his only son."
      }
    ],
    "available_languages": [
      {
        "language": "english",
        "name": "English",
        "is_original": true
      },
      {
        "language": "es",
        "name": "Spanish",
        "is_original": false
      }
    ]
  }
}