Sections

MeetWave API · Reference

Errors and limits

Every error code with its HTTP status, the request and job limits per key, the file size and length limits, and the supported languages.

Error body

Every error answers with the same body: success is false, and error holds a stable code, a plain-English message and details where there are any — for a bad request, the field at fault. meta.requestId is the same as the X-Request-Id header: quote it when you write to support. Branch on the code, never on the message.

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "The request is invalid.",
    "details": {
      "field": "upload_id"
    }
  },
  "meta": {
    "requestId": "req_8b4c2e1f-6a9d-4f3b-9c7e-2d5a1b0f4e6c",
    "timestamp": 1792584000000
  }
}

Request errors

What a request answers with when it is refused.

HTTPCodeWhen
400VALIDATION_ERRORThe body or a parameter is invalid; details.field names it.
401INVALID_API_KEYThe Authorization header is missing, malformed or names an unknown key.
402INSUFFICIENT_CREDITSYour available credits are zero.
403API_KEY_INACTIVEThe key was deactivated in the console.
404NOT_FOUNDThe transcription or upload does not exist, belongs to another account, was deleted or has expired.
409UPLOAD_NOT_READYThe file was not PUT to the upload URL yet, or the upload was already used by a transcription.
409NOT_READYA text format was requested before the transcription completed.
409NO_TRANSCRIPTA text format was requested for a failed transcription; create a new one to retry.
409IDEMPOTENCY_CONFLICTThe same Idempotency-Key was sent with a different body.
413FILE_TOO_LARGEThe uploaded file is larger than 350 MB.
415UNSUPPORTED_MEDIAThe first bytes of the upload match none of the supported formats.
429RATE_LIMIT_EXCEEDEDMore than 120 requests a minute with one key; wait for Retry-After seconds.
429TOO_MANY_ACTIVE_JOBS5 transcriptions are already queued or processing for this key, or 10 for the account; Retry-After: 30.
500INTERNAL_SERVER_ERRORAn error on our side; retry with the same Idempotency-Key.

Why a transcription failed

A transcription with status: failed carries one of these in error.code. A failed transcription costs nothing.

CodeWhen
INSUFFICIENT_CREDITSThe file is longer than your credits cover. Nothing was charged.
FILE_TOO_LARGEThe file at audio_url is larger than 350 MB.
UNSUPPORTED_MEDIAThe file's duration could not be read.
AUDIO_TOO_LONGThe audio is longer than 3 hours.
DOWNLOAD_FAILEDThe audio_url is private, unreachable, answered with a non-2xx status or took longer than 10 minutes.
TRANSCRIPTION_FAILEDProcessing failed on our side. Nothing was charged; retry the request.
TRANSCRIPTION_TIMEOUTProcessing did not finish within 60 minutes. Nothing was charged; retry the request.

Retrying

  • 429: wait for the seconds in Retry-After, then send the request again. Too many transcriptions in progress clears in about 30 seconds, or as soon as one of them ends.
  • 500 and network errors: retry after a short wait. A create sent with the same Idempotency-Key is never made twice, so the retry is safe.
  • Other 4xx: retrying the same request gets the same answer; fix the request first.
  • A failed transcription: TRANSCRIPTION_FAILED and TRANSCRIPTION_TIMEOUT are worth one more try with a new request; the others need a different file or more credits.

Limits

The same for every account; they are raised on request.

LimitValue
Maximum file size350 MB
Maximum audio length3 hours
Requests per minute, per API key120
Transcriptions in progress, per API key5
Transcriptions in progress, per account10
Retry-After when too many are in progress30 seconds
Upload URL validity1 hour
Result retention72 hours
Idempotency-Key memory24 hours
Idempotency-Key length, up to64 characters
Minimum speakers_expected1
Maximum speakers_expected10
Redirects followed for audio_url3
audio_url download time limit10 minutes
Time before a transcription fails1 hour
Webhook response timeout10 seconds
Webhook delivery attemptsimmediately, after 5 seconds, after 30 seconds
Webhook timestamp tolerance5 minutes
Formatsmp3, wav, m4a, ogg, opus, flac, aac, wma, webm, mp4, mov, mkv, avi

Languages

Pass one of these codes as language, or leave it out to detect the language. A transcript reports the language in the same codes.

auto detects the language from the audio. It is the default.

  • Afrikaans af
  • Albanian sq
  • Amharic am
  • Arabic ar
  • Armenian hy
  • Assamese as
  • Azerbaijani az
  • Bashkir ba
  • Basque eu
  • Belarusian be
  • Bengali bn
  • Bosnian bs
  • Breton br
  • Bulgarian bg
  • Burmese my
  • Cantonese yue
  • Catalan ca
  • Chinese zh
  • Croatian hr
  • Czech cs
  • Danish da
  • Dutch nl
  • English en
  • Estonian et
  • Faroese fo
  • Finnish fi
  • French fr
  • Galician gl
  • Georgian ka
  • German de
  • Greek el
  • Gujarati gu
  • Haitian Creole ht
  • Hausa ha
  • Hawaiian haw
  • Hebrew he
  • Hindi hi
  • Hungarian hu
  • Icelandic is
  • Indonesian id
  • Italian it
  • Japanese ja
  • Javanese jv
  • Kannada kn
  • Kazakh kk
  • Khmer km
  • Korean ko
  • Lao lo
  • Latin la
  • Latvian lv
  • Lingala ln
  • Lithuanian lt
  • Luxembourgish lb
  • Macedonian mk
  • Malagasy mg
  • Malay ms
  • Malayalam ml
  • Maltese mt
  • Maori mi
  • Marathi mr
  • Mongolian mn
  • Nepali ne
  • Norwegian no
  • Norwegian Nynorsk nn
  • Occitan oc
  • Pashto ps
  • Persian fa
  • Polish pl
  • Portuguese pt
  • Punjabi pa
  • Romanian ro
  • Russian ru
  • Sanskrit sa
  • Serbian sr
  • Shona sn
  • Sindhi sd
  • Sinhala si
  • Slovak sk
  • Slovenian sl
  • Somali so
  • Spanish es
  • Sundanese su
  • Swahili sw
  • Swedish sv
  • Tagalog tl
  • Tajik tg
  • Tamil ta
  • Tatar tt
  • Telugu te
  • Thai th
  • Tibetan bo
  • Turkish tr
  • Turkmen tk
  • Ukrainian uk
  • Urdu ur
  • Uzbek uz
  • Vietnamese vi
  • Welsh cy
  • Yiddish yi
  • Yoruba yo