Media Caption API v1

Webhooks

Configure job-level webhook delivery for final bulk job events.

Supported events

  • job.completed
  • job.completed_with_errors
  • job.failed
  • Only job-level events are sent in API v1. Item-level transcription events are not sent.

Payload

{
  "id": "evt_job_01jz7m91bxkpbqha0wt8whm76r_job.completed",
  "type": "job.completed",
  "eventId": "evt_job_01jz7m91bxkpbqha0wt8whm76r_job.completed",
  "eventType": "job.completed",
  "createdAt": "2026-05-11T10:00:25.000Z",
  "apiVersion": "2026-05-11",
  "data": {
    "jobId": "job_01jz7m91bxkpbqha0wt8whm76r",
    "jobType": "public_transcripts_bulk",
    "status": "completed",
    "progress": 100,
    "itemCount": 1,
    "completedCount": 1,
    "failedCount": 0,
    "creditsFrozen": 1,
    "creditsCharged": 1,
    "creditsReleased": 0,
    "items": [
      {
        "itemId": 101,
        "externalId": "lesson-001",
        "status": "completed",
        "transcriptionId": "tr_3f6e5c6a-0d31-4f8c-9b1d-7f3b9e6a2c11"
      }
    ]
  }
}

Signatures

MediaCaption-Event-Id: evt_...
MediaCaption-Timestamp: 1778493622
MediaCaption-Signature: v1=hex_hmac_sha256

signed_payload = "{timestamp}.{raw_request_body}"

Retries

Any 2xx response is success. Non-2xx responses and network failures are retried with recorded delivery attempts, up to 3 attempts.

Next: Billing