Submit speech analysis
POST/api/v1/speech/analyze
Submits an audio file for asynchronous speech proficiency analysis.
Returns immediately (202 Accepted) with an id. Poll
GET /api/v1/speech/analyze/{id} for results.
Audio requirements
- Accepted formats: MP3, WAV, M4A, WebM, OGG, FLAC
- Minimum duration: 3 minutes
- Maximum duration: 45 minutes
- Maximum file size: 25 MB
Rate limits
- Default: 500 requests/minute per client (configurable per key)
Concurrency
Default 8 simultaneous processing runs per client (contact
support to extend). When at capacity, the request is queued
(not rejected) and starts automatically when a slot frees up,
in FIFO order.
Request
Responses
- 202
- 400
- 401
- 402
- 403
- 429
- 503
Accepted. Either queued or started processing.
Invalid request (missing or malformed parameters).
error.code values include MISSING_AUDIO_FILE,
UNSUPPORTED_FORMAT, FILE_TOO_LARGE, INVALID_LANGUAGE_CODE,
INVALID_EXTERNAL_ID, INVALID_METADATA, AUDIO_TOO_SHORT,
AUDIO_TOO_LONG, AUDIO_DURATION_UNAVAILABLE, INVALID_STATUS,
INVALID_SERVICE_TYPE, INVALID_DATE, INVALID_PARAMETERS.
Authentication failed. error.code is one of
MISSING_API_KEY, INVALID_API_KEY, API_KEY_EXPIRED, or
CLIENT_INACTIVE.
Insufficient credits. The request is rejected when its cost (1 credit per started minute of audio, minimum 1) exceeds your available balance. Available balance is your credit balance minus credits currently held for other in-flight requests. No charge is made and no request is created.
Request is authenticated but not permitted. error.code is
one of MULTILINGUAL_NOT_ENABLED or IP_NOT_ALLOWED.
Too many requests. error.code is RATE_LIMIT_EXCEEDED (global
per-minute cap) or POLL_RATE_LIMITED (poll endpoint only,
same requestId polled faster than every 10 s). Respect the
Retry-After header and error.retryAfterSeconds.
Response Headers
Scoring service still warming up after a deploy.