Apunta NextChat a un endpoint personalizado compatible con OpenAI.

Updated 2026-07-29

NextChat anula su host de API con una sola variable de entorno BASE_URL en despliegues de servidor, o un endpoint personalizado dentro de la app en Settings en los clientes. Añade ids del catálogo a través de CUSTOM_MODELS con el sufijo @OpenAI y Claude, Gemini y DeepSeek aparecen en el mismo selector de modelo bajo una sola clave.

Respuesta rápida: BASE_URL, una clave, y una lista de modelos.

En un despliegue de servidor (Vercel, Docker, o Node normal), tres variables de entorno hacen todo el trabajo. BASE_URL anula a dónde van las peticiones de API; el README lo describe como "override openai api request base url" con un valor por defecto de https://api.openai.com, y el valor se introduce sin /v1 porque NextChat añade la ruta de la petición por sí mismo. OPENAI_API_KEY lleva la clave del gateway. CUSTOM_MODELS controla el selector de modelo: más añade un modelo, menos oculta uno, -all limpia la lista por defecto, y name=displayName renombra una entrada. El detalle que hace funcionar los ids multi-proveedor es el sufijo de proveedor. NextChat incluye rutas de código de cliente separadas para varios proveedores, así que un id de claude desnudo añadido a CUSTOM_MODELS puede aparecer bajo la ruta de Anthropic, que espera una clave y un formato de petición distintos. Añadir @OpenAI al id, como en +claude-sonnet-4-6@OpenAI, fija el modelo a la ruta compatible con OpenAI para que la petición vaya a tu BASE_URL en formato estándar de chat-completions sin importar qué proveedor entrenó el modelo.

BASE_URL=https://api.apisrouter.com        # no /v1
OPENAI_API_KEY=sk-APIsRouter-...
CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI,+deepseek-v4-pro@OpenAI
DEFAULT_MODEL=claude-sonnet-4-6

Cómo resuelve NextChat su endpoint.

NextChat (ChatGPTNextWeb en GitHub, unas 88K estrellas) es una de las interfaces de chat más desplegadas que existen: una app web ligera con despliegue de un clic en Vercel más clientes empaquetados para iOS, macOS, Android, Windows y Linux. Su popularidad viene exactamente del mecanismo que usa esta página, todo es una superficie de configuración, y el endpoint es solo otro ajuste más. Hay dos de esas superficies. Los despliegues de servidor leen variables de entorno al construir y arrancar: BASE_URL decide el host, OPENAI_API_KEY autentica, y CUSTOM_MODELS moldea el selector para cada usuario de ese despliegue. Los clientes y la interfaz web además exponen una ruta dentro de la app: Settings, Model Provider, elige OpenAI, luego rellena los campos de endpoint y clave y lista ids adicionales en el campo de nombres de modelo personalizados. La ruta dentro de la app guarda los valores localmente por dispositivo, lo que la convierte en la superficie correcta para un cliente personal, mientras que las variables de entorno son la superficie correcta para un despliegue que usa otra gente. De cualquier forma, la petición que sale de NextChat es una chat completion estándar contra tu endpoint con el id del modelo como un string simple. Con un gateway multi-proveedor detrás de BASE_URL, el mismo despliegue sirve Claude para respuestas largas, un id rápido de Gemini para preguntas rápidas, y DeepSeek o GLM para tráfico bilingüe, todo a través de una sola clave.

Configuración completa: despliegue de servidor o ajustes dentro de la app.

Para un despliegue en Vercel, configura las variables en los ajustes de entorno del proyecto y redespliega; Vercel incrusta los valores de entorno en el momento de construir, así que editar una variable sin redesplegar no cambia nada. Para Docker, pasa las mismas variables con flags -e o un archivo de entorno. La variable CODE merece configurarse en cualquier despliegue público, protege el acceso con una contraseña para que extraños no gasten tu clave. La ruta dentro de la app no necesita despliegue en absoluto. En Settings, elige el proveedor OpenAI, reemplaza el endpoint con https://api.apisrouter.com, pega la clave, y añade ids en el campo de nombres de modelo personalizados usando la misma sintaxis que la variable de entorno. Así es como funcionan los clientes de escritorio y móvil con un gateway, y también es la forma más rápida de probar valores antes de confirmarlos en un despliegue de servidor. DEFAULT_MODEL elige con qué empiezan los chats nuevos, que importa más de lo que suena en un despliegue compartido: la mayoría de los usuarios nunca cambia el modelo, así que el id por defecto es donde aterriza la mayor parte del gasto. Configúralo deliberadamente al modelo que quieres que lleve el tráfico casual.

docker run -d -p 3000:3000 \
  -e BASE_URL=https://api.apisrouter.com \
  -e OPENAI_API_KEY=$APISROUTER_API_KEY \
  -e CUSTOM_MODELS="-all,+claude-sonnet-4-6@OpenAI,+claude-haiku-4-5-20251001@OpenAI,+gemini-3.5-flash@OpenAI" \
  -e DEFAULT_MODEL=claude-haiku-4-5-20251001 \
  -e CODE=your-access-password \
  yidadaa/chatgpt-next-web

Elegir modelos para el selector.

Como todo el selector factura a través de una clave, el bucle de ajuste es observacional: corre una semana, lee el uso por modelo en la consola, y remodela CUSTOM_MODELS alrededor de lo que la gente realmente hizo clic en lugar de lo que predijiste.

  • Empieza la lista con -all. El selector de fábrica es un menú largo solo de OpenAI; limpiarlo y añadir cuatro o cinco ids deliberados da a los usuarios un selector donde cada opción es una que tasaste.
  • El modelo por defecto lleva el despliegue. claude-haiku-4-5-20251001 o gemini-3.5-flash como DEFAULT_MODEL mantiene la mayoría casual de los turnos rápida y barata, con ids más fuertes a un clic de distancia.
  • El trabajo de formato largo merece un slot de vanguardia. claude-sonnet-4-6 y gpt-5.5 son las elecciones a las que recurren los usuarios cuando un borrador o un análisis importa.
  • Los despliegues bilingües deberían incluir deepseek-v4-pro o glm-5.2; NextChat tiene una base de instalación de habla china enorme y esos ids encajan con ese tráfico de forma nativa.
  • Los renombres son documentación gratis: entradas al estilo claude-sonnet-4-6=Sonnet (redacción) hacen el selector auto-explicativo para usuarios no técnicos.

Pago por uso · por debajo del precio oficial

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModeloPrecio oficialNuestro precio
Claude Sonnet 4.6$3.00 / $15.00 per M$2.40 / $12.00 per M
Claude Haiku 4.5 20251001$1.00 / $5.00 per M$0.80 / $4.00 per M
GPT-5.5$5.00 / $30.00 per M$4.00 / $24.00 per M
Gemini 3.5 Flash$1.50 / $9.00 per M$1.20 / $7.20 per M
GLM-5.2$1.14 / $4.00 per M$1.10 / $4.00 per M

Modos de fallo específicos de NextChat.

El error del /v1 va en dirección opuesta a la de la mayoría de las herramientas. NextChat añade la ruta de la petición al BASE_URL por sí mismo, así que el valor va sin /v1; pegar https://api.apisrouter.com/v1 produce rutas duplicadas que dan 404. Herramientas como LibreChat esperan el /v1 incluido, que es exactamente por qué la gente arrastra el hábito equivocado en ambas direcciones. Un id de Claude que da error sobre claves o headers es el sufijo @OpenAI faltante. Sin él, NextChat puede enrutar el id a través de su ruta nativa de Anthropic, que nunca consulta BASE_URL para tu gateway y espera autenticación en formato de proveedor. Fija cada id de gateway con @OpenAI y todas las peticiones toman la ruta compatible. Las ediciones de entorno que no cambian nada son un problema de redespliegue. En Vercel las variables se leen al construir; en Docker el contenedor necesita recrearse. Los ajustes dentro de la app, en cambio, se aplican de inmediato pero solo en ese dispositivo, que es la otra mitad de la misma confusión. CODE y OPENAI_API_KEY se intercambian sorprendentemente a menudo. CODE es la contraseña de acceso que los usuarios escriben en la interfaz; la clave es lo que gasta el servidor. Si los usuarios reportan una página no autorizada antes de que ocurra cualquier chat, eso es CODE; si los chats fallan contra el endpoint, eso es la clave.

Quién enruta NextChat a través de un gateway.

  • Gente que ejecuta un despliegue personal en Vercel y quiere una clave medida detrás en lugar de una suscripción por proveedor.
  • Equipos pequeños que comparten una instancia de NextChat, usando CODE para control de acceso y una clave de gateway para que el log de uso duplique como informe de coste.
  • Usuarios de clientes de escritorio y móvil que apuntan el endpoint dentro de la app a un gateway para alcanzar Claude, Gemini y DeepSeek desde un selector en cada dispositivo.
  • Usuarios bilingües que mezclan ids de GLM y DeepSeek con Claude y GPT en un despliegue, algo que los silos nativos de proveedor hacen incómodo.
  • Desarrolladores sin acceso a la facturación de un proveedor concreto. El acceso mediante recarga sin necesidad de tarjeta elimina la dependencia de registrarse en cada proveedor.

Verifica el endpoint y depura el primer chat.

Prueba el endpoint antes de desplegar: lista los modelos con la clave y confirma que cada id que planeas poner en CUSTOM_MODELS aparece, escrito exactamente. Los ids se reenvían como strings, así que la salida de /v1/models es la ortografía autorizada. Luego despliega y envía un mensaje por modelo en el selector. Un 404 en todo es el error de /v1 en BASE_URL. Un 401 es la clave, incorrecta o ausente en el entorno que realmente usó la construcción. Un error solo en ids de Claude es el sufijo @OpenAI faltante. Un selector que muestra modelos que nunca añadiste significa que CUSTOM_MODELS perdió su prefijo -all o la variable no llegó a la construcción. Una vez que los chats fluyen, la consola de APIsRouter muestra el modelo por petición, el recuento de tokens y el gasto. Para un despliegue con más de un usuario, esa vista responde la pregunta que todo administrador de NextChat acaba haciéndose, qué modelo se está comiendo el saldo silenciosamente, con datos en lugar de suposiciones.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

Preguntas frecuentes

¿El BASE_URL de NextChat debe incluir /v1?

No. NextChat añade la ruta de la petición por sí mismo, así que configura BASE_URL=https://api.apisrouter.com sin /v1. Incluirlo produce rutas duplicadas que dan 404. Esta es la convención opuesta a herramientas como LibreChat, que esperan el /v1 en la base URL.

¿Cómo añado modelos de Claude o Gemini a NextChat a través de un endpoint?

Añádelos en CUSTOM_MODELS con el sufijo @OpenAI, por ejemplo +claude-sonnet-4-6@OpenAI. El sufijo fija el id a la ruta de petición compatible con OpenAI para que vaya a tu BASE_URL, en lugar de las rutas de cliente nativas de Anthropic o Google de NextChat.

¿Cuál es la diferencia entre las variables de entorno y los ajustes dentro de la app?

Las variables de entorno configuran un despliegue de servidor para cada usuario y requieren un redespliegue para cambiar. El endpoint personalizado dentro de la app en Settings guarda los valores localmente por dispositivo y se aplica de inmediato, lo que conviene a clientes de escritorio y móvil personales.

¿Cómo elimino la lista de modelos de OpenAI por defecto del selector?

Empieza CUSTOM_MODELS con -all, y luego añade ids explícitamente: CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI. Los usuarios entonces solo ven los modelos que listaste y tasaste deliberadamente.

¿Qué hace la variable CODE?

Configura una o más contraseñas de acceso para el despliegue. Los visitantes deben introducir un código antes de chatear, lo que evita que una URL pública de Vercel gaste tu clave. No tiene relación con la clave de API en sí.

¿Por qué cambiar una variable de entorno no tuvo efecto?

NextChat lee los valores de entorno al construir o al arrancar el contenedor. En Vercel, edita la variable y redespliega; en Docker, recrea el contenedor. Solo los ajustes dentro de la app se aplican sin un reinicio, y esos viven por dispositivo.