Skip to main content
← Back to VoxChron

API Documentation

Build automated captioning pipelines with the VoxChron REST API. Upload media, poll for status, and retrieve captions — all programmatically.

REST

JSON over HTTPS

v1

Current stable version

99.9%

Uptime SLA (enterprise)

60/min

Default rate limit

Authentication

All API requests require a Bearer token in the Authorization header. Generate API keys from your account settings.

curl https://api.voxchron.com/v1/jobs \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json"

Base URL

https://api.voxchron.com/v1

Endpoints

POST/api/v1/jobsCreate a new captioning job. Returns a presigned S3 URL for uploading your media file.
GET/api/v1/jobs/{id}Get the current status of a job (queued, processing, completed, failed).
GET/api/v1/jobsList your recent jobs with pagination, filtered by status or date.
DELETE/api/v1/jobs/{id}Delete a completed job and its exports. Source files are deleted automatically on completion.
GET/api/v1/jobs/{id}/exports/{format}Download a caption export. Formats: srt, vtt, json, txt, docx.
POST/api/v1/webhooksRegister a webhook URL to receive job status updates (job.completed, job.failed).
GET/api/v1/account/usageGet your current billing period usage, minutes remaining, and plan details.

Example: Create a Job

curl -X POST https://api.voxchron.com/v1/jobs \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "interview.mp4",
    "contextMode": "legal",
    "language": "en",
    "webhookUrl": "https://your-app.com/webhooks/voxchron"
  }'

Response includes a presigned upload URL valid for 4 hours.

Webhooks

Webhooks are signed with HMAC-SHA256 using your webhook secret. Verify the X-VoxChron-Signature header on every incoming request.

{
  "event": "job.completed",
  "jobId": "job_abc123",
  "status": "completed",
  "exports": ["srt", "vtt", "json", "txt", "docx"],
  "completedAt": "2026-04-15T10:30:00Z"
}

Rate Limits

Default: 60 requests per minute per API key. Enterprise plans include higher limits. Responses include X-RateLimit-* headers.

Error Codes

  • 400 — Invalid request
  • 401 — Invalid or missing API key
  • 402 — Insufficient credits
  • 429 — Rate limit exceeded
  • 500 — Internal error (auto-retried)

Need enterprise support?

Custom integrations, dedicated infrastructure, SLAs, and higher rate limits available on request.

Contact Sales