DocumentaciónErrores

Errores

Identifica cada error de la API y de la transcripción. Revisa sus campos y cuándo tiene sentido reintentar.

Hay dos casos distintos: la API puede rechazar tu request, o puede aceptarlo y fallar más adelante al transcribir. En este último caso, el objeto de transcripción termina con status en failed.

Cómo leer un error

Cuando /v1 rechaza un request, la respuesta tiene esta estructura:

{
  "error": {
    "code": "insufficient_minutes",
    "message": "Not enough minutes",
    "retryable": false,
    "action_url": "https://transcript1.com/dashboard/billing",
    "minutes_needed": 20,
    "minutes_remaining": 3
  }
}

Usa code para decidir qué debe hacer tu aplicación y message para mostrar la explicación al usuario. No dependas del texto de message: puede cambiar. Si retryable es true, puedes volver a enviar el mismo request más adelante.

Según el error, encontrarás otros campos junto a retryable:

CampoAparece enQué indica
action_urlinsufficient_minutesEnlace para contratar un plan o comprar minutos.
minutes_needed, minutes_remaininginsufficient_minutesMinutos necesarios para el request y saldo disponible. El primero es null si aún no se sabe cuántos minutos necesita.
supported_platformsunsupported_platformValores de plataforma admitidos: ["youtube", "x", "tiktok", "instagram", "facebook", "bluesky", "twitch", "dailymotion", "pinterest", "linkedin", "snapchat"].
missing_chunksupload_incompleteÍndices de las partes del archivo que faltan por recibir.
max_bytesmedia_too_largeTamaño máximo de archivo que puedes enviar, en bytes.
paramsinvalid_requestObjeto que detalla el problema de cada campo al validar el cuerpo o los parámetros de la URL.

Cuando la API rechaza el request

Código HTTPcode¿Reintentar?Qué ocurrió
400, 422invalid_requestNoFalta un campo o parámetro, su valor no es válido o el cuerpo no es JSON válido. También ocurre al combinar diarize con source: "captions", o reuse_recent con webhook_url.
422invalid_urlNoEl enlace no se admite o no corresponde a platform. Usa YouTube, X, TikTok, Instagram, Facebook, Bluesky u otra plataforma de Fuentes y opciones.
422unsupported_platformNoEl valor de platform no está entre los admitidos.
422unsupported_mediaNoLa extensión del archivo no está admitida.
401unauthorizedNoFalta la credencial, no es válida, venció o se revocó. También puede indicar que el token de subida no es válido o venció.
403insufficient_scopeNoEl token OAuth no tiene el permiso transcriptions:read o transcriptions:write necesario.
403email_not_verifiedNoDebes verificar tu correo antes de crear una transcripción.
402insufficient_minutesNoTu saldo disponible es 0 o no alcanza para esta transcripción.
402no_active_planNoNo puedes comprar una recarga sin un plan de pago activo. Este error viene del endpoint de facturación del panel, no de los endpoints de transcripción.
404not_foundNoNo existe esa transcripción o es de otro equipo.
409upload_incompleteNoFaltan partes del archivo. Envíalas y vuelve a confirmar la subida.
409invalid_stateNoLa transcripción ya no espera una subida. No puedes enviar más partes ni confirmar que terminaste.
409idempotency_conflictNoUsaste antes el mismo Idempotency-Key con parámetros diferentes.
413media_too_largeNoEl archivo pesa más de lo permitido. Revisa Cómo subir archivos.
413invalid_requestNoEl cuerpo JSON supera 1 MB. Para archivos demasiado grandes, el código es media_too_large.
429rate_limitedSíSuperaste los requests por minuto. Espera el tiempo en segundos que indica Retry-After.
429too_many_active_jobsSíLlegaste al límite de transcripciones en curso o de subidas abiertas. Espera los segundos indicados en Retry-After.
500internal_errorSíFalló algo en transcript1. Espera un momento y vuelve a intentarlo.
503service_unavailableSíEl servicio no está disponible por el momento. Prueba de nuevo más tarde.

Si el navegador se autentica con una cookie de sesión en lugar de una credencial bearer, también se comprueba el origen. Un request desde otro sitio devuelve 403 forbidden_origin. Esta comprobación no afecta a las llamadas que usan el header Authorization.

El header Retry-After aparece en todas las respuestas 429 e indica cuántos segundos debes esperar. Puedes consultar los límites de tu plan en Facturación y límites.

Cuándo volver a intentarlo

  • Reenvía el request solo si retryable es true: rate_limited, too_many_active_jobs, internal_error o service_unavailable. Si hay Retry-After, respétalo. Si no, aumenta la espera entre intentos.
  • Si repites POST /v1/transcriptions, conserva el mismo header Idempotency-Key. Así no pagas dos veces si el primer request sí se completó.
  • Para los demás códigos, primero corrige lo que causó el error.

Cuando falla la transcripción

Una transcripción puede fallar después de que la API haya respondido al request de creación. Si status es failed, encontrarás el motivo en error: { "code", "message" }. Comprueba error al consultar el estado o al recibir el webhook transcription.failed.

error.codeQué ocurrió¿Qué puedes hacer?
media_unavailableEl video no existe o dejó de estar disponible.No repitas el mismo envío; revisa la URL.
media_privateNo se puede acceder porque el video es privado.Usa una publicación pública o, en YouTube, un video público o no listado.
login_requiredHay que iniciar sesión en la plataforma para ver el video.Es un fallo permanente; no se reintenta.
no_audioEl video no contiene una pista de audio.Es un fallo permanente; no se reintenta.
age_restrictedLa plataforma restringe el video por edad.No repitas el enlace; sube el archivo.
live_streamLa transmisión sigue en vivo o todavía no empieza.Espera a que termine para volver a enviarla.
no_captionsPediste captions en source, pero no hay una pista de subtítulos que se pueda usar.Cambia a source: "auto" o "stt".
media_too_longLa grabación supera las 5 horas que admite voz a texto.Divide la grabación antes de enviarla.
unsupported_mediaNo se puede leer el archivo o le falta una pista de audio.Envía un archivo en un formato admitido.
no_speechNo se detectó habla.No lo reintentes.
unsupported_languageEl idioma de la grabación no está admitido.Configura language con un código admitido o "auto" antes de volver a enviarla.
insufficient_minutesEl saldo se agotó antes de cobrar la transcripción.Recarga minutos y vuelve a intentarlo.
fetch_failedNo se pudo descargar la grabación después de varios intentos.Puedes probar de nuevo más tarde.
transcription_failedLa transcripción de voz a texto falló después de varios intentos.Puedes probar de nuevo más tarde.

Si la transcripción falla o la cancelas, no pagas nada. Si ya se habían descontado minutos, vuelven a tu saldo.

Última actualización 19 de octubre de 2026