Add Router One to Chatbox as a custom provider
Chatbox is an open-source AI chat client for desktop and mobile. A custom provider in Chatbox has a name, an API mode (OpenAI API Compatible, OpenAI Responses API Compatible, Claude API Compatible or Google Gemini API Compatible), an API host and a key, which maps onto Router One's endpoint families: OpenAI API Compatible reaches every chat model in the catalog, and the Responses and Claude modes suit the families Router One serves on those APIs. One key then gives Chatbox the Claude, GPT, Gemini, Grok and DeepSeek chat models, with each request in Dashboard → Logs. Checked against Chatbox 1.23.5 (released 2026-09-24), its source and its model configuration guide on 2026-09-29.
Before you add the provider: which API mode for which model
Chatbox sends every model of a provider through that provider's API mode, so the mode decides which Router One IDs work. OpenAI API Compatible uses Chat Completions and covers every chat model, which makes it the only provider most people need. Add a second provider only when you want another wire format: OpenAI Responses API Compatible for GPT-family, DeepSeek V4 and Grok chat IDs, or Claude API Compatible for Claude-family and DeepSeek V4 IDs. Google Gemini API Compatible speaks Gemini's native API, which Router One does not serve; Gemini IDs work in OpenAI API Compatible mode. Create a key for Chatbox in Dashboard → API Keys with Create Key and give it a maxSpend cap; several Chatbox providers can share it.
| API mode | API Host | Preview (request URL) | Router One model IDs |
|---|---|---|---|
| OpenAI API Compatible | https://api.router.one/v1 | https://api.router.one/v1/chat/completions | Every chat model: Claude, GPT, Gemini, Grok and DeepSeek IDs |
| OpenAI Responses API Compatible | https://api.router.one/v1 | https://api.router.one/v1/responses | GPT-family, DeepSeek V4 and Grok chat IDs |
| Claude API Compatible | https://api.router.one/v1 (the /v1 is required) | https://api.router.one/v1/messages | Claude-family IDs, aws/claude-… and vertex/claude-… channel IDs included, plus deepseek-v4.1-flash and deepseek-v4-flash |
| Google Gemini API Compatible | Not supported | — | Router One does not serve Gemini's native API |
Add Router One as a custom provider in Chatbox
Open Settings → Model Provider (设置 → 模型提供方 in the Chinese interface), click Add at the bottom of the provider list and choose Add Custom Provider. In the Add provider dialog, enter Router One as Name, choose OpenAI API Compatible as API Mode and click Add. On the provider page, enter https://api.router.one/v1 as API Host and leave API Path empty: Chatbox fills in /chat/completions, and the Preview line under the fields shows the full URL it will call, https://api.router.one/v1/chat/completions. In this mode Chatbox also adds /v1 to a bare host and moves a pasted /chat/completions into the path, so both mistakes correct themselves. Paste the dedicated key into API Key, then add models: Fetch loads GET /v1/models with your key, and New adds an exact ID by hand. The finished provider looks like this:
- API 主机 / API Host
- https://api.router.one/v1
# Chatbox:设置 → 模型提供方 → 添加 → 添加自定义提供商 # Chatbox: Settings → Model Provider → Add → Add Custom Provider 名称 / Name: Router One API 模式 / API Mode: OpenAI API 兼容 / OpenAI API Compatible API 主机 / API Host: https://api.router.one/v1 API 路径 / API Path: 留空 / empty → 预览 / Preview: …/v1/chat/completions API 密钥 / API Key: sk-your-router-one-key 模型 / Models: 获取 / Fetch,或新建 / New: anthropic/claude-sonnet-5 # Claude API 兼容 / Claude API Compatible(Claude 与 DeepSeek V4 的 ID) API 主机 / API Host: https://api.router.one/v1 → …/v1/messages(必须带 /v1 / /v1 is required)
Claude API Compatible mode: keep /v1 in the API host
In Claude API Compatible mode, Chatbox adds /v1 only when the host is exactly https://api.anthropic.com; for any other host it appends /messages to the host as entered. So enter https://api.router.one/v1, and the Preview line reads https://api.router.one/v1/messages. With the host root, Chatbox would call https://api.router.one/messages, which returns 404. That 404 message says Anthropic clients need the bare host, advice meant for Anthropic's SDKs, which add /v1 themselves; Chatbox's Claude mode does not, so keep /v1. Use this mode only for Claude-family and DeepSeek V4 IDs; another chat ID gets HTTP 400 with must be called via /v1/chat/completions. Fetch does not help here: in this mode Chatbox keeps only list entries marked with Anthropic's model type, which Router One's OpenAI-style model list does not carry, so add each ID with New.
Fetch, New and Check: what each button sends
In the two OpenAI modes, Fetch calls GET /v1/models with your key and lists the whole catalog, including image-generation models and IDs whose model page lists no capabilities. Add only the chat models you will use, or type an exact ID from /models with New, such as anthropic/claude-sonnet-5, openai/gpt-5.6-sol or deepseek-v4.1-flash. Check runs up to three real requests against a model: a plain one and, if that passes, one with an image and one with a tool call. All of them are billed and appear in Dashboard → Logs, and a failed image or tool test on a text-only or tool-less model is expected. Per Chatbox's guide, a model with no capabilities ticked is treated as text-only.
Model settings: capabilities, context window and output cap
Open a model's settings (Edit Model) to set what Chatbox may send it. Test Model runs the same checks and ticks Vision and Tool use when those requests succeed; you can also tick them yourself from the model page. Tool use matters beyond chat: per Chatbox's source, it attaches its tools for Agent Mode (MCP, skills, code execution), web browsing, knowledge bases and file reading only to models with Tool use ticked, and Agent Mode refuses a model without it (This model does not support Agent Mode). Set Context Window from the model page as a whole number, rounded down (1.05M becomes 1000000 for anthropic/claude-sonnet-5, and deepseek-v4.1-flash takes 1000000), leave Max Output Tokens empty unless you want a cap of your own, and tick Reasoning only for models that think.
Knowledge bases and images stay with other providers
A Chatbox knowledge base needs an embedding model to index files, and Router One serves no /v1/embeddings, so pick another provider's embedding model when you create one; the chat model that answers from it can still be a Router One model with Tool use ticked. Per Chatbox 1.23.5 source, custom OpenAI-compatible providers offer no image model, so the image-generation IDs that Fetch lists, such as gpt-image-2, cannot generate images in Chatbox; call them through /v1/images/generations from code or another client instead.
What Chatbox sends, and how to read its 4xx errors
Each message is one request, and with tools on, a reply can take several rounds, each billed; Check and Test Model add their own test requests. Filter Dashboard → Logs by the Chatbox key: each record shows the model, tokens, cost, status, total time and, for streamed requests that produced output, time to first token (TTFT). 401 means the key is missing or wrong; 404 usually means the API host does not fit the mode, most often the host root in Claude API Compatible mode; 400 with must be called via means the mode's endpoint does not serve that ID; 402 means the wallet balance or the key's maxSpend is used up.
Which model ID should Chatbox send?
Copy the exact model ID from /models, preserving case, hyphens, and version suffixes; do not substitute a display name. Open its detail page and match the supported API endpoints, context window, and capabilities such as tool calling to the provider and features selected in Chatbox. A catalog listing does not mean the client can use every feature of that model. Give each client or application a dedicated API key with a maxSpend cap.
Which API protocol is Chatbox using?
OpenAI-compatible describes an interface format; it does not make Chat Completions (/v1/chat/completions), Responses (/v1/responses), and Anthropic Messages (/v1/messages) interchangeable. Check the installed client version, provider configuration, and actual request path against the model detail page and API compatibility fact sheet. A successful plain-text chat does not establish support for hosted tools, conversation state, or file-editing features.
Verify the Chatbox call in your request trace
Send a simple text request from Chatbox, then match its trace in Dashboard → Logs by time, model, and request_id: tokens, cost, latency, and status. Next, test streaming, tool calls, and multi-turn history separately. For failures, retain the actual request path, full error message, and request_id. If there is no matching log, check client configuration and connectivity before attributing the error to the gateway or upstream.
FAQ
Which API mode should I choose for Router One in Chatbox?
OpenAI API Compatible, with API Host https://api.router.one/v1. It uses Chat Completions, which Router One serves for every chat model, so one provider covers Claude, GPT, Gemini, Grok and DeepSeek IDs. Add a Claude API Compatible provider, with the same API host, only if you want Anthropic Messages for Claude or DeepSeek V4 IDs, or an OpenAI Responses API Compatible provider for GPT, DeepSeek V4 and Grok IDs. Google Gemini API Compatible does not work with Router One.
Claude API Compatible returns 404. What is wrong?
Almost always the API host. In this mode Chatbox adds /v1 only for https://api.anthropic.com, so a host of https://api.router.one makes it call https://api.router.one/messages, a path Router One does not serve. Set the API host to https://api.router.one/v1 and check that the Preview line reads https://api.router.one/v1/messages. The 404 message says Anthropic clients need the bare host; that advice is for SDKs that add /v1 themselves, which Chatbox does not.
Fetch returns no models in Claude API Compatible mode. Why?
In that mode Chatbox requests the model list with Anthropic headers and keeps only entries marked with Anthropic's model type. Router One's GET /v1/models returns an OpenAI-style list without that marker, so nothing is kept. Add each ID with New instead, using exact IDs from /models such as anthropic/claude-sonnet-5 or deepseek-v4.1-flash.
Agent Mode greys out my Router One model. How do I enable it?
Chatbox offers Agent Mode, MCP tools, web browsing and knowledge-base tools only to models with Tool use ticked, and models added with Fetch or New start with no capabilities. Open the model's settings and run Test Model, which ticks Tool use when a tool call succeeds, or tick it yourself for an ID whose page on /models lists tool calling.
Should the API host be the host root or /v1?
Use https://api.router.one/v1 in every mode. In OpenAI API Compatible mode Chatbox would add /v1 to the host root anyway, and OpenAI Responses API Compatible mode follows the same rule with /responses as the path; in Claude API Compatible mode the /v1 is required.
Which models can Chatbox use through the gateway?
Choose a current catalog model that supports both the endpoint and the features Chatbox uses. Check /models and the model detail page for the exact ID, current rates, and capabilities; a family name such as GPT or Claude is not a compatibility guarantee. A client that lists a model has only read the ID, from its own configuration or from GET /v1/models; verify an actual request too.
Models are listed, but requests fail with 400 or 404. What should I check?
Record the actual request path and error message, then check the exact model ID. A 400 can indicate invalid parameters, unsupported tools, or a model/endpoint mismatch; a 404 can indicate an incorrect path or missing resource, so it does not by itself establish that a model was retired. If the error says must be called via, use the named endpoint or select a model supported on the current endpoint. Do not add or remove /v1 or /chat/completions across all clients indiscriminately.
Does this work from Mainland China?
Yes. The gateway is reachable from Mainland China without a VPN, and the configuration is identical to the global setup.
How do I debug a 401/402/403/429?
Match the request and error message in Dashboard → Logs. For 401, check whether the key was sent and is valid; for 402, check wallet balance and maxSpend; for 403, check key permissions and access restrictions. For 429, distinguish request/token limits from upstream throttling using the error details. Keep the request_id and follow the error-codes reference.