BETA
Documentation
Create transcription
POST/v1/audio/transcriptions
Speech-to-text (Whisper-compatible). Takes multipart/form-data instead of JSON, like /v1/images/edits and /v1/videos.
Request
Content-Type
multipart/form-datafile
required — audio file, capped at 25MB
model
required — e.g. an id like whisper-1
…
any other OpenAI-compatible field (language, response_format, …) is forwarded as a form field
cURL example
terminal
curl https://apily.pro/v1/audio/transcriptions \
-H "Authorization: Bearer apily_your-api-key" \
-F file=@audio.mp3 \
-F model=whisper-1Error responses
| Symptom | Cause | Fix |
|---|---|---|
400 Missing required parameter: file | No file part in the multipart body. | Add a file form field with the audio. |
400 Missing required parameter: model | No model form field. | Add a model form field with a catalog id. |
401 Missing API key | No auth header was sent. | Apily accepts Authorization: Bearer … and x-api-key: …. |
401 Invalid API key | Key copied with stray spaces, truncated, or revoked. | Copy the key whole from the API page in your Apily account, the apily_ prefix included. |
403 Email not verified | Your Apily account's email address isn't verified yet. | Verify your email from the banner in the Apily app, then retry. |
404 Model not found | The model ID isn't in the Apily catalog. | Copy the exact ID from GET /v1/models or the Models page in your account. |
503 Model temporarily unavailable | The model exists, but no upstream provider is reachable right now. | Retry in a moment — it usually recovers within a minute. Switch models if it keeps happening. |
402 Insufficient balance | Your token balance can't cover the request's estimated cost. | Top up your balance on the Billing page in your Apily account. |
429 Too many requests | Your account sent more than 600 /v1/* requests in a minute — all of your API keys share one budget. The body is { error: { message, type: "rate_limit_error", code: "rate_limit_exceeded" }, retryAfterSeconds }. | Wait the Retry-After header (or retryAfterSeconds) before retrying, and lower request concurrency. |
502 Upstream error | The upstream provider returned an unexpected error. | Retry the request; try a different model if it persists. |
Whisper-style responses carry no
usage field, so the reserved balance for the request is billed as fact once the transcription completes.