API reference
Base URL: https://api.speechrevolutions.com
Auth: X-API-Key: <key>
Limits
| Limit | Value | Applies to |
|---|---|---|
| Maximum file size | 5 GB | SDK upload flow (/api/v1/upload + presigned PUT or multipart) |
| Maximum file size | 200 MB | Direct REST upload (/api/v1/transcribe) |
| Audio retention | 30 minutes | Uploaded 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.
| Endpoint | Requests / minute |
|---|---|
POST /api/v1/upload | 120 |
POST /api/v1/upload/progress | 600 |
POST /api/v1/transcribe | 120 |
GET /api/v1/jobs, /api/v1/jobs/{id} | 120 |
GET /api/v1/jobs/{id}/stream | 120 |
POST /api/v1/jobs/check-failed | 60 |
POST /api/v1/jobs/cancel | 30 |
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
| Method | Path | Audience |
|---|---|---|
POST | /api/v1/upload | SDK — create job + presigned URLs |
POST | /api/v1/upload/progress | SDK — keep upload session alive |
POST | /api/v1/upload/complete | SDK — enqueue after storage PUT |
POST | /api/v1/transcribe | Terminal — stream file + progress |
GET | /api/v1/jobs/{id}/stream | SSE progress (SDK wait path) |
POST | /api/v1/jobs/cancel | Cancel a job |
POST | /api/v1/jobs/check-failed | Batch failure check |
Upload styles
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.