安装指南

用 API 开发

Space Router API

Space Router 同时支持 OpenAI 与 Anthropic 两种协议格式,已有代码通常只需要改一处:base URL。本页面向的是把网关接进自己的应用,而不是接进某个现成工具。

网关:https://space.stationine.com · 最近核对:

请妥善保管你的 API key。 不要在截图、聊天、仓库、项目文件或任何公开文档中泄露真实 key。若已泄露,请在 Space Router 吊销或轮换并重新创建。

把 key 放进环境变量

下面所有示例都从环境变量读取 key。不要把 key 粘进源代码——key 正是这样进到仓库里的,而且一旦进了 git 历史,删掉那一行之后它依然在。

export SPACE_ROUTER_API_KEY=sk-your-space-router-key

Windows PowerShell 下:

$env:SPACE_ROUTER_API_KEY = 'sk-your-space-router-key'

端点与 key 分组

key 所属的分组决定了它能调用哪些模型,而端点要与你使用的库匹配。

端点格式适用于
POST /v1/messages Anthropic Messages Anthropic 官方 SDK,以及原生支持 Claude 的各类客户端。
POST /v1/chat/completions OpenAI Chat Completions OpenAI 官方 SDK,以及庞大的 OpenAI 兼容生态。
POST /v1/responses OpenAI Responses 按 Responses API 编写的较新 OpenAI SDK 代码。
Key 分组模型 slug
GPT(group 4) gpt-6-astra、gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、gpt-5.5、gpt-5.4、gpt-5.4-mini
Claude(group 3) claude-opus-5、claude-sonnet-5、claude-opus-4-8、claude-opus-4-7、claude-opus-4-6、claude-sonnet-4-6
Claude Fable 5(group 5) claude-fable-5

key 只在本分组内有效。用 Claude 分组的 key 去请求 gpt-5.5,或用它去请求 claude-fable-5,都会直接报错而不会自动降级——Fable 属于单独购买的分组。完整目录发布在 /models.json,可以在运行时拉取,不必把模型列表写死在代码里。

curl

写代码之前先发一次。如果 curl 能通而你的程序不能,问题就在程序里。

Anthropic Messages

curl https://space.stationine.com/v1/messages \
    -H "x-api-key: $SPACE_ROUTER_API_KEY" \
    -H "anthropic-version: 2023-06-01" \
    -H "content-type: application/json" \
    -d '{
      "model": "claude-sonnet-5",
      "max_tokens": 64,
      "messages": [{"role": "user", "content": "Reply with OK"}]
    }'

OpenAI Chat Completions

curl https://space.stationine.com/v1/chat/completions \
    -H "Authorization: Bearer $SPACE_ROUTER_API_KEY" \
    -H "content-type: application/json" \
    -d '{
      "model": "gpt-5.6-sol",
      "messages": [{"role": "user", "content": "Reply with OK"}]
    }'

OpenAI Responses

curl https://space.stationine.com/v1/responses \
    -H "Authorization: Bearer $SPACE_ROUTER_API_KEY" \
    -H "content-type: application/json" \
    -d '{
      "model": "gpt-5.6-sol",
      "input": "Reply with OK"
    }'

任意一个加上 "stream": true 即可使用 SSE 流式返回。

让 SDK 指向网关

两家官方 SDK 都支持覆盖 base URL,其余代码不用动。

OpenAI SDK —— Python

import os
  from openai import OpenAI

  client = OpenAI(
      api_key=os.environ["SPACE_ROUTER_API_KEY"],
      base_url="https://space.stationine.com/v1",
  )

  response = client.chat.completions.create(
      model="gpt-5.6-sol",
      messages=[{"role": "user", "content": "Reply with OK"}],
  )
  print(response.choices[0].message.content)

OpenAI SDK —— Node

import OpenAI from "openai";

  const client = new OpenAI({
    apiKey: process.env.SPACE_ROUTER_API_KEY,
    baseURL: "https://space.stationine.com/v1",
  });

  const response = await client.chat.completions.create({
    model: "gpt-5.6-sol",
    messages: [{ role: "user", content: "Reply with OK" }],
  });
  console.log(response.choices[0].message.content);

Anthropic SDK —— Python

Anthropic SDK 会自己拼上 /v1/messages,所以它的 base URL 填网关根地址,不带 /v1 后缀。

import os
  from anthropic import Anthropic

  client = Anthropic(
      api_key=os.environ["SPACE_ROUTER_API_KEY"],
      base_url="https://space.stationine.com",
  )

  message = client.messages.create(
      model="claude-sonnet-5",
      max_tokens=64,
      messages=[{"role": "user", "content": "Reply with OK"}],
  )
  print(message.content[0].text)

常见报错

你看到的含义
401 或 403 key 错误、已吊销或余额不足。确认环境变量在你实际运行的那个进程里确实生效了——已经打开的终端不会读到之后才 export 的变量。
404 /v1 多了或少了。OpenAI SDK 的 base URL 要止于 /v1,Anthropic SDK 要用不带后缀的根地址。
提示模型不存在 slug 拼错,或该模型不属于你 key 的分组。拉取 /models.json 对照。
curl 能通、程序不通 程序读到的不是同一个 key 或同一个 base URL。把它解析出来的 base URL 打印出来看看——但绝不要打印 key。

Space Router 是什么?

Space Router 是由 Station Nine 运营的 AI API 中转服务,Base URL 为 https://space.stationine.com。它在 POST /v1/messages 接收 Anthropic Messages 请求,在 POST /v1/chat/completions 接收 OpenAI Chat Completions 请求,在 POST /v1/responses 接收 OpenAI Responses 请求,提供 OpenAI GPT 与 Anthropic Claude 两大模型家族。服务与账户细节见 Space Router 总览。