Wijs NextChat naar een aangepast OpenAI-compatibel endpoint.

Updated 2026-07-29

NextChat overschrijft zijn API-host met één omgevingsvariabele BASE_URL op serverdeployments, of een in-app aangepast endpoint in Settings op de clients. Voeg catalogus-ID's toe via CUSTOM_MODELS met het @OpenAI-suffix en Claude, Gemini en DeepSeek verschijnen in dezelfde modelkiezer onder één sleutel.

Snel antwoord: BASE_URL, één sleutel, en een modellijst.

Op een serverdeployment (Vercel, Docker, of kaal Node) doen drie omgevingsvariabelen het hele werk. BASE_URL overschrijft waar API-verzoeken naartoe gaan; de README beschrijft het als "override openai api request base url" met een standaard van https://api.openai.com, en de waarde wordt ingevoerd zonder /v1, omdat NextChat het verzoekpad zelf toevoegt. OPENAI_API_KEY draagt de gatewaysleutel. CUSTOM_MODELS bestuurt de modelkiezer: plus voegt een model toe, min verbergt er een, -all wist de standaardlijst, en name=displayName hernoemt een vermelding. Het detail dat multi-vendor-ID's laat werken, is het providersuffix. NextChat levert aparte clientcodepaden voor verschillende leveranciers, dus een kaal claude-ID toegevoegd aan CUSTOM_MODELS kan verschijnen onder het Anthropic-pad, dat een andere sleutel en verzoekformaat verwacht. Door @OpenAI aan het ID toe te voegen, zoals in +claude-sonnet-4-6@OpenAI, pin je het model op het OpenAI-compatibele pad, zodat het verzoek naar je BASE_URL gaat in standaard chat-completions-formaat, ongeacht welke leverancier het model heeft getraind.

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

Hoe NextChat zijn endpoint oplost.

NextChat (ChatGPTNextWeb op GitHub, ruim 88K sterren) is een van de meest gedeployde chatfrontends die bestaat: een lichte webapp met one-click Vercel-deployment plus verpakte clients voor iOS, macOS, Android, Windows en Linux. Zijn populariteit komt precies uit het mechanisme dat deze pagina gebruikt, alles is een configuratieoppervlak, en het endpoint is gewoon een instelling. Er zijn twee van die oppervlakken. Serverdeployments lezen omgevingsvariabelen bij build en boot: BASE_URL bepaalt de host, OPENAI_API_KEY authenticeert, en CUSTOM_MODELS vormt de kiezer voor elke gebruiker van die deployment. De clients en de web-UI bieden daarnaast een in-app pad: Settings, Model Provider, kies OpenAI, vul dan de endpoint- en sleutelvelden in en vermeld extra ID's in het veld voor aangepaste modelnamen. Het in-app pad slaat waarden lokaal per apparaat op, wat het het juiste oppervlak maakt voor een persoonlijke client, terwijl omgevingsvariabelen het juiste oppervlak zijn voor een deployment die anderen gebruiken. Hoe dan ook, het verzoek dat NextChat verlaat is een standaard chat completion tegen je endpoint met het model-ID als platte string. Met een multi-vendor gateway achter BASE_URL bedient dezelfde deployment Claude voor lange antwoorden, een snel Gemini-ID voor snelle vragen, en DeepSeek of GLM voor tweetalig verkeer, allemaal via die ene sleutel.

Volledige instelling: serverdeployment of in-app instellingen.

Zet voor een Vercel-deployment de variabelen in de omgevingsinstellingen van het project en redeploy; Vercel bakt omgevingswaarden bij build in, dus een variabele bewerken zonder opnieuw te deployen verandert niets. Geef voor Docker dezelfde variabelen mee met -e-vlaggen of een env-bestand. De variabele CODE is het waard om in te stellen op elke publieke deployment; het beveiligt toegang met een wachtwoord zodat vreemden je sleutel niet kunnen uitgeven. Het in-app pad heeft geen deployment nodig. Kies in Settings de OpenAI-provider, vervang het endpoint door https://api.apisrouter.com, plak de sleutel, en voeg ID's toe in het veld voor aangepaste modelnamen met dezelfde syntax als de omgevingsvariabele. Zo werken de desktop- en mobiele clients met een gateway, en het is ook de snelste manier om waarden te testen voordat je ze vastlegt in een serverdeployment. DEFAULT_MODEL kiest waarmee nieuwe chats beginnen, wat meer telt dan het klinkt op een gedeelde deployment: de meeste gebruikers wisselen nooit van model, dus het standaard-ID is waar het meeste van de uitgaven landt. Stel het doelbewust in op het model dat je terloops verkeer wilt laten dragen.

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

Modellen kiezen voor de kiezer.

Omdat de hele kiezer via één sleutel factureert, is de afstemlus observationeel: draai een week, lees het gebruik per model in de console, en vorm CUSTOM_MODELS opnieuw rond wat mensen daadwerkelijk aanklikten in plaats van wat je voorspelde.

  • Begin de lijst met -all. De standaardkiezer is een lang OpenAI-only menu; hem wissen en er vier of vijf doelbewuste ID's aan toevoegen geeft gebruikers een kiezer waar elke keuze er een is die jij hebt geprijsd.
  • Het standaardmodel draagt de deployment. claude-haiku-4-5-20251001 of gemini-3.5-flash als DEFAULT_MODEL houdt de terloopse meerderheid van beurten snel en goedkoop, met sterkere ID's één klik verderop.
  • Langlopend werk verdient een frontier-slot. claude-sonnet-4-6 en gpt-5.5 zijn de keuzes die gebruikers pakken wanneer een concept of een analyse ertoe doet.
  • Tweetalige deployments moeten deepseek-v4-pro of glm-5.2 opnemen; NextChat heeft een enorme Chineestalige installatiebasis en die ID's passen natuurlijk bij dat verkeer.
  • Hernoemingen zijn gratis documentatie: vermeldingen in de stijl van claude-sonnet-4-6=Sonnet (schrijven) maken de kiezer zelfverklarend voor niet-technische gebruikers.

Betaal naar gebruik · onder officiële prijzen

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

ModelOfficiële prijsOnze prijs
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

Faalmodi specifiek voor NextChat.

De /v1-vergissing loopt de tegenovergestelde richting op dan bij de meeste tools. NextChat voegt het verzoekpad zelf toe aan BASE_URL, dus de waarde hoort er zonder /v1 in; het plakken van https://api.apisrouter.com/v1 produceert verdubbelde paden die 404 geven. Tools zoals LibreChat verwachten de /v1 juist wel inbegrepen, precies waarom mensen de verkeerde gewoonte in beide richtingen meedragen. Een Claude-ID dat fouten geeft over sleutels of headers is het ontbrekende @OpenAI-suffix. Zonder dat kan NextChat het ID via zijn native Anthropic-pad routeren, dat nooit BASE_URL raadpleegt voor jouw gateway en leveranciersformaat-authenticatie verwacht. Pin elk gateway-ID met @OpenAI en de verzoeken nemen allemaal het compatibele pad. Omgevingswijzigingen die niets veranderen zijn een redeployprobleem. Op Vercel worden de variabelen bij build gelezen; op Docker moet de container opnieuw worden aangemaakt. De in-app instellingen daarentegen worden onmiddellijk toegepast maar alleen op dat apparaat, wat de andere helft van dezelfde verwarring is. CODE en OPENAI_API_KEY worden verrassend vaak verwisseld. CODE is het toegangswachtwoord dat gebruikers in de UI typen; de sleutel is wat de server uitgeeft. Als gebruikers een unauthorized-pagina melden voordat er ook maar gechat is, is dat CODE; als chats falen tegen het endpoint, is dat de sleutel.

Wie routeert NextChat via een gateway.

  • Mensen die een persoonlijke deployment op Vercel draaien en één gemeten sleutel erachter willen in plaats van een abonnement per leverancier.
  • Kleine teams die een NextChat-instantie delen, met CODE voor toegangscontrole en één gatewaysleutel zodat het gebruikslogboek tevens het kostenrapport is.
  • Gebruikers van desktop- en mobiele clients die het in-app endpoint naar een gateway wijzen om Claude, Gemini en DeepSeek vanuit één kiezer op elk apparaat te bereiken.
  • Tweetalige gebruikers die GLM- en DeepSeek-ID's mixen met Claude en GPT in één deployment, wat native providersilo's onhandig maken.
  • Developers zonder toegang tot de facturering van een bepaalde leverancier. Toegang op basis van opwaarderen zonder kaartvereiste verwijdert de aanmeldingsafhankelijkheid per provider.

Verifieer het endpoint en debug de eerste chat.

Bewijs het endpoint voordat je deployt: lijst modellen op met de sleutel en bevestig dat elk ID dat je van plan bent in CUSTOM_MODELS te zetten, verschijnt, exact gespeld. De ID's worden als strings doorgestuurd, dus de /v1/models-output is de gezaghebbende spelling. Deploy dan en stuur één bericht per model in de kiezer. Een 404 op alles is de /v1-in-BASE_URL-vergissing. Een 401 is de sleutel, ofwel fout ofwel niet aanwezig in de omgeving die de build daadwerkelijk gebruikte. Een fout alleen bij Claude-ID's is het ontbrekende @OpenAI-suffix. Een kiezer die modellen toont die je nooit hebt toegevoegd, betekent dat CUSTOM_MODELS zijn -all-voorvoegsel kwijt is of dat de variabele de build niet bereikte. Zodra chats vloeien, toont de APIsRouter-console model per verzoek, tokenaantallen en uitgaven. Voor een deployment met meer dan één gebruiker beantwoordt die weergave de vraag die elke NextChat-admin uiteindelijk stelt, welk model stilletjes het saldo opeet, met data in plaats van gissingen.

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

Veelgestelde vragen

Moet de BASE_URL van NextChat /v1 bevatten?

Nee. NextChat voegt het verzoekpad zelf toe, dus zet BASE_URL=https://api.apisrouter.com zonder /v1. Het wel toevoegen produceert verdubbelde paden die 404 geven. Dit is de omgekeerde conventie van tools zoals LibreChat, die de /v1 juist wel in de base URL verwachten.

Hoe voeg ik Claude- of Gemini-modellen toe aan NextChat via één endpoint?

Voeg ze toe in CUSTOM_MODELS met het @OpenAI-suffix, bijvoorbeeld +claude-sonnet-4-6@OpenAI. Het suffix pint het ID op het OpenAI-compatibele verzoekpad zodat het naar je BASE_URL gaat, in plaats van de native Anthropic- of Google-clientpaden van NextChat.

Wat is het verschil tussen de omgevingsvariabelen en de in-app instellingen?

Omgevingsvariabelen configureren een serverdeployment voor elke gebruiker en vereisen een redeploy om te wijzigen. Het in-app aangepaste endpoint in Settings slaat waarden lokaal per apparaat op en past ze onmiddellijk toe, wat past bij persoonlijke desktop- en mobiele clients.

Hoe verwijder ik de standaard OpenAI-modellijst uit de kiezer?

Begin CUSTOM_MODELS met -all, voeg dan ID's expliciet toe: CUSTOM_MODELS=-all,+claude-sonnet-4-6@OpenAI,+gpt-5.5@OpenAI. Gebruikers zien dan alleen modellen die je doelbewust hebt vermeld en geprijsd.

Wat doet de variabele CODE?

Het stelt een of meer toegangswachtwoorden in voor de deployment. Bezoekers moeten een code invoeren voordat ze chatten, wat voorkomt dat een publieke Vercel-URL je sleutel uitgeeft. Het staat los van de API-sleutel zelf.

Waarom had het wijzigen van een omgevingsvariabele geen effect?

NextChat leest omgevingswaarden bij build of containerstart. Bewerk op Vercel de variabele en redeploy; op Docker maak de container opnieuw aan. Alleen de in-app instellingen worden zonder herstart toegepast, en die leven per apparaat.