Media Caption API v1

Transcriptions

Transcribe an existing cloud object without copying it into Media Caption storage, then poll the result.

Create from cloud storage

POST/v1/transcriptions

Cloud source behavior

Provide a public or presigned HTTPS URL. Media Caption probes its size and duration without retaining the file, charges the exact credits, and passes the URL directly to ElevenLabs. The maximum source size is 3 GB. Signed URLs must remain valid while the source is fetched.

Create example

curl -X POST https://api.mediacaption.io/v1/transcriptions \
  -H "Authorization: Bearer mc_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"sourceUrl":"https://storage.example.com/meeting.mp4?signature=..."}'

Poll a transcription

GET/v1/transcriptions/{id}

Retention

API transcriptions are retained for 3 days after completion. After expiration, the endpoint returns 410 transcription_expired.

Poll example

curl https://api.mediacaption.io/v1/transcriptions/tr_3f6e5c6a-0d31-4f8c-9b1d-7f3b9e6a2c11 \
  -H "Authorization: Bearer mc_live_xxx"

Example response

{
  "transcriptionId": "tr_3f6e5c6a-0d31-4f8c-9b1d-7f3b9e6a2c11",
  "source": "public",
  "status": "completed",
  "language": "en",
  "sourceUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
  "durationSec": 184,
  "expiresAt": "2026-05-14T10:00:01.000Z",
  "transcript": [{ "startSec": 0, "durationSec": 2.4, "text": "Example transcript text" }]
}
Next: Local File Uploads