Chat apps

Any chat client that lets you set a base URL and an API key can use LowRouter as a custom OpenAI-compatible provider. This page gives the pattern once, then walks through two popular desktop clients — Chatbox and Jan — end to end. Coding tools have their own pages (OpenCode, Cline, Goose); libraries, SDKs, and other non-chat tools are on generic OpenAI-compatible clients.

The pattern

SettingValue
Provider typeOpenAI Compatible (sometimes “Custom OpenAI” or “OpenAI API”)
Base URLhttps://api.lowrouter.ai/v1
API Keyyour sk-lr-... token
Path / endpoint/chat/completions (most clients handle this automatically)

Chat clients build their model picker from GET /v1/models on the base URL. LowRouter’s listing draws on the same catalogue as the model browser, so once the provider is saved the picker fills itself with everything currently routable — no model IDs to type.

Worked example: Chatbox

  1. Open Settings → Model Provider.
  2. Click Add custom provider.
  3. Fill in:
    • Name: LowRouter
    • API Mode: OpenAI API Compatible
    • API Host: https://api.lowrouter.ai/v1
    • API Path: /chat/completions
    • API Key: your sk-lr-... token
  4. Save.

Under Model, pick from the fetched list, or choose Custom model name and enter any LowRouter model ID — auto/mistralai/mistral-large-2512, openai/openai/gpt-4.1, anthropic/anthropic/claude-sonnet-4.5, etc.

Worked example: Jan

  1. Open Settings → Model Providers and click Add Provider.
  2. Choose the OpenAI-compatible API format.
  3. Fill in:
    • Provider name: LowRouter
    • Base URL: https://api.lowrouter.ai/v1 — the /v1 must be included, or every request 404s.
    • API key: your sk-lr-... token
  4. Save. Jan fetches the model list from the base URL and populates the provider’s Models section.

Two Jan quirks:

  • No free-form model input. The chat picker only offers what is in the provider’s Models list — there is nowhere to type an arbitrary ID mid-chat. If an ID you want is missing from the fetched list, add it with the + button in the provider’s Models section, entering the ID exactly as LowRouter expects it.
  • Capabilities are not auto-detected for custom providers. If you use vision or tools, enable those per model in the provider’s Models section.

Picking a model

The picker mirrors GET /v1/models and holds three kinds of ID:

  • Explicit IDs<provider>/<creator>/<model>, e.g. anthropic/anthropic/claude-sonnet-4.5. You choose who serves the request; the region is picked for you. See available models.
  • auto/<creator>/<model> — you name the model, the router picks the provider and region, preferring EU-sovereign routes. The right default for chat. See routing.
  • alias/<name> — your account’s aliases, listed for the account behind the API key. An alias is a named pointer to one exact (provider, model, region) route that you can repoint from the dashboard at any time — the client keeps its configuration.

Targeting a region from a chat app

Picker entries are not region-pinned, and chat apps have no field for a fourth /<locode> segment. To pin a region:

  1. In the dashboard, create an alias pointing at a region-pinned route — from Dashboard → Aliases, or the Alias button on any provider/region row in the model browser. Say eu-chatscaleway/mistralai/mistral-medium-3.5-128b/fr-par.
  2. In the chat app’s picker, select alias/eu-chat.

Every message now routes through that region. Change your mind later — repoint the alias in the dashboard and the very next message follows, with zero client reconfiguration. If alias/eu-chat is not in the client’s fetched list, don’t wait for it to appear: add it in Jan with the + button in the provider’s Models section, or enter it in Chatbox as a custom model name. Aliases resolve at request time whether or not the listing showed them.

These apply to any chat app, not just the two above:

  • Use a key dedicated to the app. A chat app’s key sits in a desktop config file, so treat it as leakable: give it its own name so its usage stays attributable, and revoke it on any doubt without touching the keys your other tools use. See API keys.
  • Stream replies on. The desktop UX expects streaming and LowRouter supports it the same way OpenAI does.
  • Check the client’s telemetry settings if you care about not exposing prompt content to the publisher’s analytics. The clients themselves do not see prompts in normal operation, but features like crash reporting can capture context.

Troubleshooting

  • 401 / Unauthorized: confirm the API key starts with sk-lr- and has not been revoked. Test with curl from the curl page using the same key.
  • 404 / Not Found: the base URL must end in /v1 and the path must be /chat/completions. Some Chatbox versions default the API Path to /v1/chat/completions, which becomes https://api.lowrouter.ai/v1/v1/chat/completions — drop the leading /v1/.
  • Model not available: look up the exact model ID on the model browser. Auto-complete in these clients is not always accurate, and a stale fetched list is refreshed by re-saving the provider.