API reference

Base URL: https://api.speechrevolutions.com

Auth: X-API-Key: <key>

Limits

LimitValueApplies to
Maximum file size5 GBSDK upload flow (/api/v1/upload + presigned PUT or multipart)
Maximum file size200 MBDirect REST upload (/api/v1/transcribe)
Audio retention30 minutesUploaded audio is deleted after processing

A file larger than the limit for its path is rejected at job creation, before any upload starts. Send anything above 200 MB through an SDK rather than the REST endpoint.

Rate limits

Limits apply per API key, per endpoint, over a rolling minute. Going over returns 429. The official SDKs back off and retry automatically, so most applications never see one; if you call the API directly, wait a few seconds and retry with exponential backoff.

EndpointRequests / minute
POST /api/v1/upload120
POST /api/v1/upload/progress600
POST /api/v1/transcribe120
GET /api/v1/jobs, /api/v1/jobs/{id}120
GET /api/v1/jobs/{id}/stream120
POST /api/v1/jobs/check-failed60
POST /api/v1/jobs/cancel30

Each upload creates one job, so the upload limit is also your job submission rate: 120 new jobs a minute, 7,200 an hour. If you need more, contact us and we will raise it for your key.

Endpoints

MethodPathAudience
POST/api/v1/uploadSDK — create job + presigned URLs
POST/api/v1/upload/progressSDK — keep upload session alive
POST/api/v1/upload/completeSDK — enqueue after storage PUT
POST/api/v1/transcribeTerminal — stream file + progress
GET/api/v1/jobs/{id}/streamSSE progress (SDK wait path)
POST/api/v1/jobs/cancelCancel a job
POST/api/v1/jobs/check-failedBatch failure check

SDK path: upload → progress → complete → SSE (multipart when available, else a single presigned PUT).
Terminal path: one raw-body stream to /transcribe with SSE progress on the same connection.
By URL: pass audio_url to /upload and the platform fetches the audio itself — no client upload.