Archivos de Audio

Gestiona archivos de audio: listar, subir, descargar e iniciar procesamiento IA.

Endpoints

MetodoEndpointAlcanceDescripcion
GET/api/v1/audio-filesaudio:readListar archivos de audio con filtros
GET/api/v1/audio-files/{id}audio:readObtener archivo de audio por ID
GET/api/v1/audio-files/{id}/download-urlaudio:downloadGenerar URL de descarga SAS (expira en 15 min)
GET/api/v1/audio-files/{id}/transcriptaudio:readObtener transcripcion
POST/api/v1/audio-files/upload-urlaudio:writeSolicitar URL de carga
POST/api/v1/audio-files/{id}/processaudio:writeIniciar procesamiento IA
GET/api/v1/audio-files/{id}/processing-statusaudio:readVerificar estado de procesamiento

Parametros de Consulta (Endpoint de Listado)

ParametroTipoDescripcion
campaignIdstringFiltrar por campana
isAICallboolFiltrar llamadas IA vs humanas
engagementIdstringFiltrar por engagement
dateFromdatetimeInicio del rango de fechas
dateTodatetimeFin del rango de fechas
pageintNumero de pagina (por defecto: 1)
pageSizeintResultados por pagina (por defecto: 50, max: 100)

Flujo de Descarga

Como descargar archivos de audio

  1. Lista los archivos de audio usando GET /api/v1/audio-files con los filtros deseados.
  2. Llama a GET /api/v1/audio-files/{id}/download-url para obtener una URL SAS con tiempo limitado (expira en 15 min).
  3. Realiza un GET a la URL SAS directamente -- no se necesita encabezado de autenticacion, la firma esta embebida en la URL.

Flujo de Carga

Paso 1: Solicitar una URL de carga

POST /api/v1/audio-files/upload-url
Authorization: Bearer <token>
Content-Type: application/json

{
  "fileName": "call-2026-03-30.wav",
  "engagementId": "eng_abc123",
  "campaignId": "camp_xyz"   // optional
}
// Response
{
  "audioFileId": "af_98765",
  "uploadUrl": "https://storage.blob.core.windows.net/audio/...?sv=2023&sp=w&sig=...",
  "expiresAt": "2026-03-30T12:15:00Z"
}

Paso 2: Subir el archivo a la URL SAS

PUT <uploadUrl>
x-ms-blob-type: BlockBlob
Content-Type: audio/wav

<binary file content>

El encabezado x-ms-blob-type: BlockBlob es requerido por Azure Blob Storage. Omitirlo resultara en un error 400.

Paso 3: Iniciar procesamiento IA

POST /api/v1/audio-files/af_98765/process
Authorization: Bearer <token>

// Response
{
  "status": "pending",
  "message": "Processing queued successfully"
}

Valores de Estado de Procesamiento

EstadoDescripcion
pendingArchivo subido, esperando ser procesado
processingTranscripcion en progreso
evaluatingEvaluacion IA ejecutandose sobre la transcripcion
completedProcesamiento finalizado exitosamente
failedOcurrio un error durante el procesamiento

Consulta de estado

Despues de iniciar el procesamiento, consulta GET /api/v1/audio-files/{id}/processing-status cada pocos segundos hasta que el estado alcance completed o failed. Alternativamente, configura un webhook analysis.completed para ser notificado automaticamente.