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ónPOSTaima.business/api/ami{"message": "…","history": […],"pagina": "…"}Respuesta{"reply": "…"}// piensa y responde Claude, con el contexto de marca ya dentro
IEl í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.
IIEl 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 rutasDiscontinuo: 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
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
IIILo 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í
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
EntradaGET/api/contexto-bot// ninguna — solo la cabecera con la claveSalida// contexto de marca, índice de páginas, fecha de hoySin la clave"no autorizado"
IVEl 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
EntradaGET/api/ami?estado=memoria// ningunaSalida// 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.
VTexto 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
EntradaPOST/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
EntradaPOST/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.
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
EntradaPOST/api/agentes{cliente_slug,agente_id,titulo,contenido}Salida{ok: true }Sin la clave"no autorizado"
VIIEl techo del plan
Lo que no está aquí
Dónde acaba AMI y empieza el resto del sitio.
ami
contexto-bot
gemini-token
voz
ami-entrevista
agentes
cuenta
panel
lead
social
auth/login
catalogo-acceso
+1no cabe
De AMI · esta páginaDel resto del sitioLa decimotercera: no hay sitio12 / 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.