Volver a desarrolladores

Zona técnica · API

API de AMI

Los endpoints que ya corren hoy en /api y le dan de comer al asistente: qué hacen, quién puede llamarlos y qué entra y sale de cada uno. Documentación interna — no hace falta llave para leerla, pero tampoco está pensada para el público.

7
rutas del asistente
6
ficheros que las sirven
12/12
funciones del plan: no cabe una más
AIMA · terminal
Petición POST aima.business/api/ami { "message": "…", "history": […], "pagina": "…" } Respuesta { "reply": "…" } // piensa y responde Claude, con el contexto de marca ya dentro
El índice

Las siete rutas

Todo lo que sigue, de un vistazo. El candado marca lo que pide llave.

Siete rutas sobre seis ficheros — /api/ami sirve el chat y el diagnóstico de memoria por la misma puerta. Son seis de las doce funciones que se despliegan: las otras seis corren el resto del sitio y no son de AMI.

El mapa

Quién llama a qué

De dónde llega cada petición y qué hay al otro lado. Pasa por encima de una pieza y se queda encendido solo lo suyo.

/api · siete rutas Discontinuo: pide llave
Quién llama
La web públicael chat de AMI en cada página
El bot de WhatsAppcorre fuera de esta web, vía n8n
El catálogo de identidadel «Modo AMI», detrás de contraseña
Los flujos de n8nel chivato de salud y el de análisis
Al otro lado
Claude · Anthropicpiensa y responde
El contexto de marcaprecios, tono, packs y el mapa de páginas
La memoria de AMIqué ficheros hay cargados, no lo que dicen
Gemini · Googlesolo habla: no piensa ni responde
La voz de respaldola de más calidad, para el catálogo
El panel del clientedonde se enseñan los resultados
Lo que sabe antes de contestar

Contexto de marca

De dónde saca AMI lo que sabe de AIMA antes de contestar.

POST/api/amiAbierto

Motor del chat general de AMI en toda la web pública: recibe el mensaje del visitante y el historial de la conversación, y devuelve la respuesta ya con el contexto de marca — precios, tono, packs — incorporado. Quien piensa y responde es Claude (Anthropic), también en la búsqueda y en cualquier tema; con voz:true contesta corto y sin símbolos, pensado para oírse en voz alta.

Límitepeticiones por día, por IP y en total — cifras no publicadas aquí
Entrada y salida
Entrada POST /api/ami { message, history, pagina, voz // opcional } Salida { reply }
GET/api/contexto-botClave de servidor

Expone ese mismo contexto de marca, más el mapa de páginas, para que el bot de WhatsApp — que corre fuera de esta web, vía n8n — lo consulte al arrancar cada conversación. No es para llamarlo desde el navegador: sin la clave compartida responde "no autorizado".

Entrada y salida
Entrada GET /api/contexto-bot // ninguna — solo la cabecera con la clave Salida // contexto de marca, índice de páginas, fecha de hoy Sin la clave "no autorizado"
El diagnóstico

Memoria de conversación

Diagnóstico de qué recuerda AMI ahora mismo — nunca el contenido, solo el estado.

GET/api/ami?estado=memoriaAbierto

El mismo endpoint del chat, en modo diagnóstico: informa de qué ficheros de memoria están cargados y cuánto ocupan — nunca su contenido.

Entrada y salida
Entrada GET /api/ami?estado=memoria // ninguna Salida // lista de ficheros cargados y su porcentaje de ocupación

Hubo un endpoint aparte, /api/memoria-estado, con esta misma función. Se fusionó aquí por el límite de 12 funciones del plan de hosting (Vercel, plan Hobby) y el fichero ya no se despliega por separado — sigue en el repositorio solo como referencia.

Texto que se oye

Voz

Todo lo que convierte texto en audio, en tres sabores distintos.

POST/api/gemini-tokenAbierto

La voz de AMI. Recibe el texto de la respuesta (que ya escribió Claude) y devuelve el audio, generado con Gemini (Google). Gemini solo habla: no piensa ni responde. La clave del proveedor vive en el servidor y nunca viaja al navegador. Desde el 9 de octubre de 2026 ya no existe la voz en vivo de Gemini: quien contesta es siempre Claude, y si esta ruta falla el navegador usa su propia voz.

Límitepeticiones por día, por IP y en total
Entrada y salida
Entrada POST /api/gemini-token { modo:'voz', texto, voz, estilo } Salida { audio, modelo, hz } // PCM de 16 bits a 24 kHz, en base64
POST/api/vozAbierto

Respaldo de voz de mayor calidad para el «Modo AMI» del catálogo de identidad: si este proveedor falla o no está configurado, el catálogo cae de vuelta a la voz nativa del navegador.

Entrada y salida
Entrada POST /api/voz { texto } Salida // audio (mp3), servido directo — no JSON
POST/api/ami-entrevistaSolo desde el catálogo

El backend por voz del «Modo AMI» dentro del catálogo de identidad — herramienta interna, detrás de contraseña en herramientas.html. Entrevista al cliente hablando (pregunta y piensa Claude) y, al terminar, extrae lo dicho para autorrellenar el catálogo.

Entrada y salida
Conversación { messages, cliente, empresa, pregunta } → { reply } Extracción { modo:'extraer', transcripcion, preguntas } → { respuestas }
Lo que llega de fuera

Agentes de automatización

La entrada de los resultados que llegan desde fuera y acaban en el panel del cliente.

POST/api/agentesClave de servidor

Recibe los resultados que genera el flujo de automatización externo — resumen semanal, estado de campañas, próximas acciones — y los guarda para que el panel de cada cliente los muestre. Sin la clave compartida responde "no autorizado".

Entrada y salida
Entrada POST /api/agentes { cliente_slug, agente_id, titulo, contenido } Salida { ok: true } Sin la clave "no autorizado"
El techo del plan

Lo que no está aquí

Dónde acaba AMI y empieza el resto del sitio.

  1. ami
  2. contexto-bot
  3. gemini-token
  4. voz
  5. ami-entrevista
  6. agentes
  7. cuenta
  8. panel
  9. lead
  10. social
  11. auth/login
  12. catalogo-acceso
De AMI · esta página Del resto del sitio La decimotercera: no hay sitio 12 / 12

Las otras seis funciones que se despliegan corren el resto del sitio y no el asistente: /api/cuenta, /api/panel, /api/lead, /api/social, /api/auth/login y /api/catalogo-acceso. Quedan fuera de esta página a propósito.

Y hay cinco ficheros que siguen en el repositorio pero ya no se despliegan, retirados en .vercelignore por el límite de doce funciones del plan de hosting: api/auth/entrar.js, api/auth/registro.js y api/auth/yo.js, cuyo trabajo hace hoy /api/cuenta; api/memoria-estado.js, que se fusionó en /api/ami?estado=memoria; y api/locucion-voz.js.