Ir al contenido

Referencia de la API

Endpoints publicos de la API para cargas, tareas de transcripcion, modos de transcripcion y respuestas.

Base URL:

https://api.videototext.dev

Las respuestas correctas usan:

{
"data": {},
"meta": {}
}

Los errores usan Problem Details:

{
"type": "VALIDATION_ERROR",
"title": "Validation failed",
"status": 400,
"detail": "Invalid request",
"errorCode": "VALIDATION_ERROR"
}
ModoCreditosNotas
balanced1 credito por minutoModo predeterminado
precision2 creditos por minutoOpcion de mayor precision
EstadoSignificado
QUEUEDLa tarea esta esperando capacidad de procesamiento.
PROCESSINGLa tarea se esta transcribiendo.
SUCCEEDEDLa transcripcion esta lista.
FAILEDLa tarea fallo y puede incluir showError.
CANCELEDLa tarea fue cancelada.

Crea una URL de carga firmada.

Solicitud:

{
"filename": "meeting.mp4",
"mimetype": "video/mp4"
}

Respuesta:

{
"data": {
"uploadUrl": "https://storage.example.com/signed-upload-url",
"fileKey": "uploads/example.mp4",
"fileUrl": "https://static.example.com/uploads/example.mp4",
"uploadId": "00000000-0000-0000-0000-000000000000",
"expiresAt": "2026-06-06T10:00:00.000Z"
},
"meta": {}
}

POST /v1/uploads/{uploadId}/operations/complete

Sección titulada «POST /v1/uploads/{uploadId}/operations/complete»

Valida el objeto subido, lee la duracion del archivo multimedia y crea un asset.

Parametros de ruta:

NombreTipoDescripcion
uploadIdUUIDID de la sesion de carga devuelto por POST /v1/uploads.

Solicitud:

{
"fileKey": "uploads/example.mp4",
"fileUrl": "https://static.example.com/uploads/example.mp4",
"filename": "meeting.mp4",
"mimetype": "video/mp4",
"fileSize": 10485760
}

Respuesta:

{
"data": {
"assetId": "00000000-0000-0000-0000-000000000000"
},
"meta": {}
}

Los errores comunes incluyen UPLOAD_SESSION_NOT_FOUND, UPLOAD_SESSION_EXPIRED, UPLOAD_SIZE_MISMATCH, UPLOAD_MIMETYPE_MISMATCH y UPLOAD_DURATION_UNREADABLE.

Crea una tarea de transcripcion a partir de un asset subido.

Para crear tareas de forma segura ante reintentos, consulta Idempotencia.

Solicitud:

{
"assetId": "00000000-0000-0000-0000-000000000000",
"language": "Auto",
"timestampMode": "CHUNK",
"transcriptionMode": "balanced"
}

Campos:

CampoTipoObligatorioNotas
assetIdUUIDSiAsset devuelto al completar la carga.
languagestringNoEl valor predeterminado es Auto. Los idiomas compatibles usan nombres en minusculas, como english, spanish o chinese.
timestampModestringNoCHUNK o WORD. El valor predeterminado es CHUNK.
transcriptionModestringNoClave publica del modo: balanced o precision. El valor predeterminado es balanced.

Respuesta:

{
"data": {
"task": {
"transcriptId": "00000000-0000-0000-0000-000000000000",
"status": "QUEUED",
"language": "Auto",
"timestampMode": "CHUNK",
"transcriptionMode": "balanced",
"billedCredits": "1.500000000000"
}
},
"meta": {
"pollAfterMs": 1500
}
}

Las respuestas de creación y detalle de tareas siempre incluyen transcriptionMode con la clave pública del modo usada para facturación y procesamiento del resultado.

Devuelve el estado actual de la tarea y los campos de resultado de transcripcion que necesitan los clientes.

Parametros de ruta:

NombreTipoDescripcion
taskIdUUIDdata.task.transcriptId devuelto por POST /v1/tasks.

Respuesta:

{
"data": {
"task": {
"transcriptId": "00000000-0000-0000-0000-000000000000",
"status": "SUCCEEDED",
"showError": null,
"fullText": "Welcome to the meeting.",
"chunks": [
{
"seq": 0,
"startMs": 0,
"endMs": 2200,
"text": "Welcome to the meeting.",
"speakerKey": null,
"speakerName": null,
"wordStartIndex": 0,
"wordEndIndex": 1
}
],
"words": [
{
"text": "Welcome",
"startMs": 0,
"endMs": 600
}
],
"sourceDurationMs": 90400,
"language": "Auto",
"resultLanguage": "english",
"timestampMode": "CHUNK",
"transcriptionMode": "balanced",
"billedCredits": "1.500000000000",
"createdAt": "2026-06-06T09:00:00.000Z"
}
},
"meta": {}
}