Tu primera generación
Crea una API key en Credenciales y cuotas del administrador. La clave se muestra una sola vez; guárdala en el servidor de tu aplicación, nunca en código público.
curl -s https://TU-DOMINIO/api/v1/models
curl -X POST https://TU-DOMINIO/api/v1/generations \
-H 'Authorization: Bearer neo_sk_TU_CLAVE' \
-H 'Content-Type: application/json' \
-d '{"model":"claude_es_mx","text":"Hola desde mi aplicación."}'
El servidor devuelve 202 Accepted y un id. Consulta su estado o solicita PCM mientras se produce.
curl -L -H 'Authorization: Bearer neo_sk_TU_CLAVE' \
-o voz.wav https://TU-DOMINIO/api/v1/generations/ID/download
Autenticación segura
Para integraciones externas utiliza Authorization: Bearer neo_sk_…. Una API key revocada deja de dar acceso de inmediato. La cookie neo_browser_key sirve exclusivamente para una sesión web del mismo origen; no está diseñada como alternativa a Bearer en servicios externos.
Los resultados de audio y el estado de cada generación solo pueden consultarse desde la cuenta propietaria. No se admite CORS para credenciales de sitios externos: utiliza tu backend para llamar a la API si tu aplicación está en otro dominio.
Descubrir modelos
/api/v1/modelsPúblicoDevuelve models[] con id, nombre, idioma, descripción, imagen y guest_allowed. El administrador elige qué voces admiten invitados; las API keys pueden usar todas las instaladas.
/api/v1/models/{id}Público/api/v1/models/{id}/coverOpcionalGeneraciones
/api/v1/generationsBearerCuerpo JSON: {"model":"claude_es_mx","text":"Texto"}. El texto admite de 1 a 16.000 bytes UTF-8. Responde 202 con id, estado y rutas de consulta. Hay como máximo un trabajo en cola o activo por cuenta, incluso si se utiliza la misma API key en varios dispositivos. Hay seis inicios por minuto, colas diferenciadas para API e invitados y una concurrencia global acotada.
/api/v1/generationsBearerRecupera hasta 40 trabajos recientes de tu cuenta.
/api/v1/generations/{id}BearerResponde con status (running, complete, canceled, exhausted, failed o interrupted), frames y sample_rate.
/api/v1/generations/{id}/cancelBearerDetiene la generación y conserva las muestras ya producidas. El archivo final puede descargarse cuando su estado sea terminal.
Reproducción progresiva
/api/v1/generations/{id}/eventsSSEEntrega eventos progress con status, frames y sample_rate. Máximo tres conexiones SSE simultáneas por cuenta.
/api/v1/generations/{id}/pcm?offset=0&frames=11025PCM16 LEDevuelve PCM16 mono sin encabezado. offset es la muestra inicial; frames permite de 1 a 131.072 muestras. La respuesta incluye X-Sample-Rate. Si aún no existen muestras en ese offset, responde 204.
/api/v1/generations/{id}/metricsJSON privadoIncluye latencia hasta primer PCM, tiempo en cola, duración de proceso, factor de tiempo real (RTF) y si el motor reutilizó una sesión ONNX existente. Solo el propietario puede consultarlo.
/api/v1/generations/{id}/segmentsJSONConsulta los fragmentos inteligentes de la generación, su posición de inicio y fin y el estado de cada frase. El motor sintetiza tramos naturales cortos para empezar a entregar audio antes y conservar lo producido ante fallos.
/api/v1/generations/{id}/waveform?bins=180JSONConsulta picos de amplitud normalizados para dibujar una forma de onda. Se recalcula sobre las muestras ya cobradas sin entregar audio de otra cuenta.
/api/v1/generations/{id}/clip?start=0&end=22050WAVDescarga solo el tramo indicado, hasta 180 segundos, incluso si el resto del audio todavía está en proceso.
/api/v1/generations/{id}/audioWAV + RangeWAV parcial válido incluso mientras se genera. Admite cabecera Range: bytes=44-... y devuelve 206 Partial Content cuando corresponde.
/api/v1/generations/{id}/downloadWAV finalCréditos en tiempo real
/api/v1/account/creditsBearer{"balance_us":3600000000}
El saldo se expresa en microsegundos de audio generado: 60.000.000 unidades equivalen a un minuto. Los créditos se descuentan solo por muestras efectivamente producidas y confirmadas en la base de datos. Si se agotan, la generación se detiene y el audio anterior se conserva.
Sesiones gratuitas
El Studio utiliza POST /api/v1/session para emitir una cookie invitado de saldo inicial cero. Los modelos marcados con guest_allowed permiten generar audio solamente si esa sesión dispone de saldo.
/api/v1/rewardsPúblico/api/v1/rewards/pendingCookie invitado/api/v1/rewards/startCookie invitadoGenera o recupera un enlace promocional. Su ticket de canje dura 10 minutos y solo es válido para la sesión que lo creó. El canje tiene una espera mínima configurable (desde 2 segundos), después muestra un contador de cierre de 5 segundos. El retorno del enlace no demuestra que se hayan visto anuncios: este mecanismo no debe considerarse verificación de conversión.
La sesión de API key del navegador se gestiona por POST /api/v1/browser/login y POST /api/v1/browser/logout. No envíes contraseñas o API keys en parámetros URL.
Errores y seguridad
Los errores incluyen JSON {"error":"Descripción"}. Códigos habituales: 400 entrada incorrecta, 401 sin autenticación, 403 acceso restringido, 404 objeto ajeno o inexistente, 409 conflicto y 429 límite de solicitudes.
Usa HTTPS, conserva la clave en secretos del servidor y respeta 429 con reintentos escalonados. No intentes eludir las cuotas ni automatizar el sistema de anuncios: la API de síntesis aplica autorización, límites por cuenta y cobro en el backend.
Referencia OpenAPI
Descarga la definición OpenAPI 3.0 JSON para integrarla con herramientas compatibles. El enlace contiene documentación pública; no incluye credenciales.