◈neottsDEVELOPERS OpenAPI 3.0 ↓
DEVELOPER PLATFORM / VERSION 1

Integra voz nativa
en tu producto.

Genera audio con Neo TTS mediante una API JSON estable, consulta créditos y recibe PCM en vivo mientras el motor C++17 sintetiza.

REST + SSE PCM16 / WAV Bearer API Key
01 — PRIMEROS PASOS

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.

1. Consultar voces
curl -s https://TU-DOMINIO/api/v1/models
2. Crear generación
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.

3. Descargar el resultado
curl -L -H 'Authorization: Bearer neo_sk_TU_CLAVE' \
  -o voz.wav https://TU-DOMINIO/api/v1/generations/ID/download
02 — ACCESO

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.

03 — VOCES

Descubrir modelos

GET/api/v1/modelsPúblico

Devuelve 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.

GET/api/v1/models/{id}Público
GET/api/v1/models/{id}/coverOpcional
04 — SÍNTESIS

Generaciones

POST/api/v1/generationsBearer

Cuerpo 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.

GET/api/v1/generationsBearer

Recupera hasta 40 trabajos recientes de tu cuenta.

GET/api/v1/generations/{id}Bearer

Responde con status (running, complete, canceled, exhausted, failed o interrupted), frames y sample_rate.

POST/api/v1/generations/{id}/cancelBearer

Detiene la generación y conserva las muestras ya producidas. El archivo final puede descargarse cuando su estado sea terminal.

05 — AUDIO

Reproducción progresiva

GET/api/v1/generations/{id}/eventsSSE

Entrega eventos progress con status, frames y sample_rate. Máximo tres conexiones SSE simultáneas por cuenta.

GET/api/v1/generations/{id}/pcm?offset=0&frames=11025PCM16 LE

Devuelve 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.

GET/api/v1/generations/{id}/metricsJSON privado

Incluye 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.

GET/api/v1/generations/{id}/segmentsJSON

Consulta 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.

GET/api/v1/generations/{id}/waveform?bins=180JSON

Consulta picos de amplitud normalizados para dibujar una forma de onda. Se recalcula sobre las muestras ya cobradas sin entregar audio de otra cuenta.

GET/api/v1/generations/{id}/clip?start=0&end=22050WAV

Descarga solo el tramo indicado, hasta 180 segundos, incluso si el resto del audio todavía está en proceso.

GET/api/v1/generations/{id}/audioWAV + Range

WAV parcial válido incluso mientras se genera. Admite cabecera Range: bytes=44-... y devuelve 206 Partial Content cuando corresponde.

GET/api/v1/generations/{id}/downloadWAV final
06 — CUOTAS

Créditos en tiempo real

GET/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.

07 — WEB / INVITADOS

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.

GET/api/v1/rewardsPúblico
GET/api/v1/rewards/pendingCookie invitado
POST/api/v1/rewards/startCookie invitado

Genera 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.

08 — PRÁCTICAS RECOMENDADAS

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.

09 — ESPECIFICACIÓN

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.