Use DaoXE in NextChat

NextChat (the project formerly known as ChatGPT-Next-Web) is a self-hostable chat UI whose OpenAI provider takes a custom endpoint. Point it at DaoXE and one key fills its picker with your whole catalogue.

Updated 2026-09-15

NextChat speaks OpenAI-compatible HTTP, so DaoXE is an endpoint swap — in the Settings UI or via OPENAI_BASE_URL when you self-host. Its CUSTOM_MODELS list then shapes exactly which account-scoped IDs appear (cheapest APIs guide).

Why route NextChat through DaoXE#

  • Self-hosted in minutes. Docker + two env vars; your conversations live on your server.
  • The picker is your catalogue. CUSTOM_MODELS whitelists (or --prefixes away) real IDs from GET /v1/models.
  • One key for the whole instance. Every user of your NextChat deployment shares the DaoXE balance.

Set it up in NextChat#

  1. Hosted app: Settings. Open Settings → Model Provider → OpenAI, paste the DaoXE key, and set the API endpoint to https://daoxe.com/v1.
  2. Self-hosted: env. Set OPENAI_API_KEY and OPENAI_BASE_URL=https://daoxe.com/v1 in docker-compose / Vercel env.
  3. Shape the model list. Use CUSTOM_MODELS to list exact IDs (prefix - to hide built-ins you can't call).
  4. Send a test message. Then check the response's model field — it should echo the ID you picked.
bash
# self-hosted: docker-compose env
OPENAI_API_KEY=sk-you…-key
OPENAI_BASE_URL=https://daoxe.com/v1
CUSTOM_MODELS=glm-5.3-flash,-gpt-4o

Caveats worth knowing

OPENAI_BASE_URL ends at /v1 — NextChat appends /chat/completions; a missing suffix is the classic 404. Built-in model names that your key can't call must be hidden via CUSTOM_MODELS=-name or the picker will offer dead entries. Server-side vs client-side API mode changes where the key lives — keep it server-side for shared deployments. More clients: client setup notes.

Verify you actually get the model#

Prove the endpoint works before blaming the client — if this fails, no setting will fix it:

bash
export DAOXE_API_KEY="your_api_key"

# List the exact model IDs your account can call
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/models \
  -H "Authorization: Bearer ${DAOXE_API_KEY}"

Verify the endpoint before wiring the UI, then diff a hard prompt against the official API at temperature 0:

bash
curl --fail-with-body --show-error --silent \
  https://daoxe.com/v1/chat/completions \
  -H "Authorization: Bearer ${DAOXE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "YOUR_EXACT_MODEL_ID",
    "max_tokens": 64,
    "messages": [{"role": "user", "content": "Say hello in one sentence."}]
  }'

Verify us — don't trust us

Point the open benchmark at DaoXE and at the official API and compare at temperature 0. Then learn to detect model swapping so a cheaper endpoint can't quietly swap you to a smaller model.

Frequently asked questions#

Does NextChat work with DaoXE?

Yes — it's an OpenAI-compatible endpoint swap: key + https://daoxe.com/v1, in Settings or via OPENAI_BASE_URL.

Why do some picker models error?

They're built-in names your key can't call. Hide them: CUSTOM_MODELS=-gpt-4o,… and list only IDs from GET /v1/models.

Self-hosted or Vercel?

Both take the same env vars. For shared deployments keep the key server-side (API mode), not in visitors' browsers.

What does it cost?

Per-model, account-scoped — live pricing; top-up is a flat 1 RMB = $1 of credit on every payment method.

Try DaoXE — and benchmark it yourself

One key for GPT, Claude, Gemini, DeepSeek and more. Point the open benchmark at us and compare — don't take our word for it.