9router

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

9Router

9Router

Local/remote AI gateway exposing OpenAI-compatible REST. One key, many providers, auto-fallback.
本地/远程AI网关,提供兼容OpenAI的REST接口。一键接入多服务商,自动故障切换。

Setup

设置

bash
export NINEROUTER_URL="http://localhost:20128"      # or VPS / tunnel URL
export NINEROUTER_KEY="sk-..."                      # from Dashboard → Keys (only if requireApiKey=true)
All requests:
${NINEROUTER_URL}/v1/...
with header
Authorization: Bearer ${NINEROUTER_KEY}
(omit if auth disabled).
Verify:
curl $NINEROUTER_URL/api/health
{"ok":true}
bash
export NINEROUTER_URL="http://localhost:20128"      # 或VPS / 隧道URL
export NINEROUTER_KEY="sk-..."                      # 从控制台→密钥获取(仅当requireApiKey=true时需要)
所有请求地址:
${NINEROUTER_URL}/v1/...
,请求头需携带
Authorization: Bearer ${NINEROUTER_KEY}
(若禁用认证可省略)。
验证方式:
curl $NINEROUTER_URL/api/health
→ 返回
{"ok":true}

Discover models

发现模型

bash
curl $NINEROUTER_URL/v1/models                  # chat/LLM (default)
curl $NINEROUTER_URL/v1/models/image            # image-gen
curl $NINEROUTER_URL/v1/models/tts              # text-to-speech
curl $NINEROUTER_URL/v1/models/embedding        # embeddings
curl $NINEROUTER_URL/v1/models/web              # web search + fetch (entries have `kind` field)
curl $NINEROUTER_URL/v1/models/stt              # speech-to-text
curl $NINEROUTER_URL/v1/models/image-to-text    # vision
Use
data[].id
as
model
field in requests. Combos appear with
owned_by:"combo"
.
Response shape:
json
{ "object": "list", "data": [
  { "id": "openai/gpt-5", "object": "model", "owned_by": "openai", "created": 1735000000 },
  { "id": "tavily/search", "object": "model", "kind": "webSearch", "owned_by": "tavily", "created": 1735000000 }
]}
bash
curl $NINEROUTER_URL/v1/models                  # 聊天/大语言模型(默认)
curl $NINEROUTER_URL/v1/models/image            # 图像生成模型
curl $NINEROUTER_URL/v1/models/tts              # 文本转语音模型
curl $NINEROUTER_URL/v1/models/embedding        # 嵌入模型
curl $NINEROUTER_URL/v1/models/web              # 网页搜索+抓取(返回结果含`kind`字段)
curl $NINEROUTER_URL/v1/models/stt              # 语音转文本模型
curl $NINEROUTER_URL/v1/models/image-to-text    # 视觉模型
使用
data[].id
作为请求中的
model
字段。组合模型会标记
owned_by:"combo"
响应格式:
json
{ "object": "list", "data": [
  { "id": "openai/gpt-5", "object": "model", "owned_by": "openai", "created": 1735000000 },
  { "id": "tavily/search", "object": "model", "kind": "webSearch", "owned_by": "tavily", "created": 1735000000 }
]}

Capability skills

功能技能

Errors

错误说明

  • 401 → set/refresh
    NINEROUTER_KEY
    (Dashboard → Keys)
  • 400
    Invalid model format
    → check
    model
    exists in
    /v1/models/<kind>
  • 503
    All accounts unavailable
    → wait
    retry-after
    or add another provider account
  • 401 → 设置/刷新
    NINEROUTER_KEY
    (控制台→密钥)
  • 400
    Invalid model format
    → 检查
    model
    是否存在于
    /v1/models/<kind>
  • 503
    All accounts unavailable
    → 等待
    retry-after
    时间,或添加其他服务商账号