Grok API

Grok API 中转怎么选?自建反代与第三方网关接入指南

更新于 2026-10-23 · grokified.cyou

简答:有官方 API Key、只是直连接口不稳定,可以自建服务端转发层;没有官方支付条件,则应评估第三方网关,但自建转发不能替你完成官方充值。无论选择哪条路径,都先请求模型列表,再核对 Base URL、API Key、Model Name 和真实响应,最后用小额请求验证流式、用量与错误码。

定义:Grok API 中转,是在客户端与官方 API 之间增加一个转发层,由转发层接收请求、保存或代管上游密钥,并向客户端提供兼容 OpenAI SDK 的接口入口。

30 秒先判断:你应该选哪条中转路径

截至2026年10月23日,本站为第三方指南,非相关 API 官方,模型、账单、可用区域和使用条款均应以官方资料为准。官方 REST API 使用 https://api.x.ai 作为推理接口基础地址,并通过 Authorization: Bearer <API key> 鉴权,接口兼容 OpenAI REST API,详情可查看官方 REST API 参考。

你的情况优先考虑能解决不能解决
已有官方 API Key,只是本地到官方接口超时或不稳定自建服务端反向代理更换客户端连接入口、隐藏上游 Key、转发普通响应和 SSE不能改变官方账户权限、模型资格、账单或额度
没有官方 API Key,或无法完成官方账户充值第三方 API 网关可能提供另一套账户、充值方式和兼容接口不能把第三方账户变成官方账户;模型、价格、限速、退款和数据处理需单独核实
需要调用区域端点核对官方区域文档按官方要求选择可用的处理区域不能保证改善你本地到端点之间的网络路径

官方账单文档列出预付额度和月结发票两种计费方式,并说明预付额度可以通过信用卡或银行转账等流程购买;银行转账到账需要处理时间,具体支付选项、资格和审核结果仍以你的账单页面为准,可查看官方 API 账单与充值说明。因此,自建转发层只能解决请求转发问题,不能解决官方账户的支付问题。

最小接入流程:先列模型,再改三项配置

  1. 先请求模型列表。官方 /v1/models 会返回当前 API Key 可见的模型 ID、别名和部分价格信息;语言模型接口还能返回能力、指纹和更完整的模型字段。不要直接照抄搜索结果里的旧模型名,先查看官方模型列表接口。
  2. 确认 Base URL。官方基础地址是 https://api.x.ai,客户端通常把版本路径放在请求路径中,例如 /v1/models 或 /v1/chat/completions。第三方网关可能要求完整的兼容根路径,避免重复拼接 /v1。
  3. 只修改三项。把 Base URL、API Key 和 Model Name 分开检查。模型字段填写模型列表返回的 id 或允许使用的 aliases,不要把未验证的版本号写死。
  4. 密钥只放服务端或环境变量。Bash 的 export 和 PowerShell 的 $env: 都适合做临时验证,但 PowerShell 的环境变量只对当前会话生效,不要把真实 Key 提交到仓库。

Bash:先列模型,再发最小请求

export XAI_API_KEY="你的密钥"
export XAI_MODEL="从 /v1/models 返回的模型 ID"

curl -i "https://api.x.ai/v1/models" \
  -H "Authorization: Bearer $XAI_API_KEY"

curl -i "https://api.x.ai/v1/chat/completions" \
  -H "Authorization: Bearer $XAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"model\":\"$XAI_MODEL\",\"messages\":[{\"role\":\"user\",\"content\":\"Reply with OK\"}]}"

PowerShell:使用 Invoke-RestMethod

$env:XAI_API_KEY = "你的密钥"
$env:XAI_MODEL = "从 /v1/models 返回的模型 ID"

$headers = @{
  Authorization = "Bearer $env:XAI_API_KEY"
  "Content-Type" = "application/json"
}

Invoke-RestMethod `
  -Method Get `
  -Uri "https://api.x.ai/v1/models" `
  -Headers $headers

$body = @{
  model = $env:XAI_MODEL
  messages = @(
    @{
      role = "user"
      content = "Reply with OK"
    }
  )
} | ConvertTo-Json -Depth 5

Invoke-RestMethod `
  -Method Post `
  -Uri "https://api.x.ai/v1/chat/completions" `
  -Headers $headers `
  -Body $body

如果使用第三方网关,把请求地址替换成其公开的完整兼容端点,并使用该网关要求的 Key。验证时保存 HTTP 状态码、响应中的 model、usage、错误正文和流式结束事件,不要只看是否返回了文本。

最小 Cloudflare Worker:按路径透传并保留 SSE

下面的示例不是公开生产网关,而是一个用于验证思路的最小转发层:它按原始路径透传 /v1/models、/v1/language-models、/v1/chat/completions 和 /v1/responses,因此不会因为固定到单一路径而阻断模型列表或 Responses API。Cloudflare Workers 的 fetch() 可发起上游请求并返回响应体;响应体直接转交时,可以保留 SSE 流式传输,参考Cloudflare Workers Fetch 文档。

const ALLOWED_PATHS = new Set([
  "/v1/models",
  "/v1/language-models",
  "/v1/chat/completions",
  "/v1/responses"
]);

export default {
  async fetch(request, env) {
    const url = new URL(request.url);

    if (!ALLOWED_PATHS.has(url.pathname)) {
      return new Response("Not Found", { status: 404 });
    }

    if (env.ACCESS_TOKEN) {
      const token = request.headers.get("X-Gateway-Token");
      if (token !== env.ACCESS_TOKEN) {
        return new Response("Unauthorized", { status: 401 });
      }
    }

    const upstream = new URL(
      `https://api.x.ai${url.pathname}${url.search}`
    );

    const headers = new Headers(request.headers);
    headers.set("Authorization", `Bearer ${env.XAI_API_KEY}`);
    headers.delete("X-Gateway-Token");
    headers.delete("Host");

    const init = {
      method: request.method,
      headers,
      redirect: "follow"
    };

    if (request.method !== "GET" && request.method !== "HEAD") {
      init.body = request.body;
    }

    const response = await fetch(upstream, init);

    return new Response(response.body, {
      status: response.status,
      statusText: response.statusText,
      headers: response.headers
    });
  }
};
  1. 创建 Worker,并将代码部署到服务端。
  2. 使用 Secret 保存 XAI_API_KEY;如果要限制访问,再设置 ACCESS_TOKEN。Cloudflare 文档明确建议敏感值使用 Secrets,不要放在普通配置变量或代码中,详见Cloudflare Workers Secrets 文档。
  3. 客户端把 Base URL 指向 Worker 的兼容入口,并按你的路由设计发送 /v1/models 或推理请求。
  4. 先测试非流式请求,再将请求体中的 stream 改为 true。官方文档说明流式输出使用 SSE,推理时间较长时还应适当增加客户端读取超时,参考官方流式输出说明。

workers.dev 是便于开始使用的默认子域名,Cloudflare 建议生产 Worker 使用 Route 或 Custom Domain。若默认域名访问不稳定,可绑定自有域名,具体配置以Cloudflare Routes and domains 文档为准。示例没有加入完整的访问控制、限流、日志脱敏、CORS 和请求大小限制,不应直接作为公开生产网关。

模型验真:字段只能排除明显错配,不能证明没有替换

第三方网关完全控制它返回给客户端的响应体,因此 model 和 usage 都可能被改写。这些字段只能排除明显的模型错配,不能单独证明网关没有替换模型,也不能证明响应一定来自官方上游。

一次回答的文风、速度或常识题表现都不能作为模型身份的充分证明,因为提示词、缓存、路由、并发和流式实现都会影响结果。更稳妥的做法是先小额验证,再逐步放量。

第三方中转 6 项核对清单

不要只看“兼容 OpenAI”或“支持某模型”的宣传语。下面这张表适合在注册、充值或迁移生产流量前逐项检查。

检查项怎么查不合格信号
接口文档确认 Base URL、路径、请求字段、响应示例和错误格式只有一个网页登录地址,没有可复制的 API 示例
模型标识请求模型列表或查看公开模型 ID,并用最小请求验证只写“全模型支持”,不公布具体 ID
用量明细查看单次请求、token、余额、并发和失败记录只能看到笼统余额,无法定位异常消耗
密钥与日志确认 Key 由谁保管、请求是否记录、日志保存多久、是否支持删除隐私和日志规则完全不说明
充值与退出查看小额测试、退款、到期、账户关闭和余额处理规则付款规则只在私聊中说明,公开页面无法核对
服务条款同时查看官方 API 条款和网关自身条款,确认数据用途与责任边界把“兼容接口”表述成官方授权或官方计费

官方条款要求用户遵守适用法律、可接受使用政策及其他公开规则,并保留限制、暂停或终止服务的权利。通过转发层调用是否符合你的业务、地区和数据处理要求,应由你自行查阅官方服务条款及相关政策,不能把中转服务的承诺当作官方豁免。

常见错误排查:400、401、404、429 和流式中断

现象常见原因先做什么
400 Bad RequestJSON、字段或 URL 参数无效保留最小字段,检查 JSON、Content-Type 和模型名
unsupported_parameter当前接口或模型不支持某个参数逐个删除高级参数,不要直接照搬其他平台参数
401 UnauthorizedKey 缺失、格式错误、Secret 不存在或上游鉴权未透传检查 Bearer 格式、服务端 Secret 和团队归属
403 Forbidden账户、团队或模型权限受限确认登录团队、模型权限和账户状态
404 Not Found路径拼错、重复添加 /v1 或模型 ID 不存在先请求 /v1/models,再逐段检查 Base URL 和路径
429 Too Many Requests请求频率、token 或并发达到限制降低并发,按指数退避;不要无条件重试 400、401、403、404
超时或流式中断客户端读取超时、网关超时或 SSE 未透传先关闭 stream 验证普通响应,再检查 Worker 和客户端超时

官方排错文档将 415 与空请求体或缺少 Content-Type: application/json 联系起来,将 422 与字段格式问题联系起来,并将 429 与请求过于频繁、达到限流有关。可查看官方错误排查文档。重试前先判断错误是否可恢复:429、部分网络超时可以退避重试;400、401、403、404 和 unsupported_parameter 通常应先修正请求或权限。

结论:中转的核心是责任边界,不是一个固定产品名

已有官方 Key 的用户,可以把自建 Worker 作为网络入口和密钥隔离层,但仍需自行承担官方账户的支付、额度、权限和运维责任;没有官方付款条件的用户,只能评估第三方网关的账户、充值、模型、数据处理和退出规则。两种路径都不能仅凭一次成功响应证明长期可用。

如果你要接入 Cursor、Cline、Codex 或其他支持 OpenAI 兼容接口的工具,先确认客户端是否自动追加版本路径,再填写 Base URL、API Key 和已核验的 Model Name。Claude Code 使用 Anthropic Messages 兼容接口,不能直接按 OpenAI Chat Completions 的三项配置照搬,需使用对应的 Anthropic 兼容入口。

常见问题

Grok API 中转能解决没有海外信用卡的问题吗?

自建反向代理不能解决。它只转发你已有的官方 API 请求,官方账户的充值和付款仍由官方账单系统决定。第三方网关可能提供另一套充值方式,但账户归属、模型、价格、数据处理和退款规则必须单独核验,查不到的内容按未核实处理。

Grok API 中转的 Base URL 应该怎么填?

先确认服务商给出的是主机地址还是完整兼容根路径。官方基础地址是 <code>https://api.x.ai</code>,请求路径通常另加 <code>/v1/models</code> 或 <code>/v1/chat/completions</code>。如果客户端会自动追加路径,就不要手动再拼接完整请求路径;重复添加 <code>/v1</code> 是常见的 404 原因。

如何确认中转返回的是真实模型?

不能只看一眼 <code>model</code> 字段,因为第三方网关可以改写响应。应使用固定请求对比官方和网关的 <code>model</code>、<code>usage</code>、流式结束事件,并结合官方控制台用量与网关计费记录。即使字段一致,也只能排除明显错配,不能单独证明没有替换。

为什么 Grok API 中转返回 401?

检查三层:客户端是否发送 Key,Worker 或网关是否设置了正确的 <code>Authorization: Bearer ...</code>,上游 Key 是否属于正确团队且仍有效。服务端转发时应使用 Secret 或环境变量保存上游 Key,不要把它放进浏览器代码。

429 之后可以一直重试吗?

不建议无条件重试。429 通常表示请求频率、token 或并发达到限制,应降低并发并使用指数退避;400、401、403、404 和 unsupported_parameter 通常不是重复发送能够解决的问题。

Cloudflare Worker 默认地址访问不稳定怎么办?

先确认 Worker 路由、Secret、路径白名单和上游响应是否正常。若默认 <code>workers.dev</code> 地址在你的网络环境中访问不稳定,可按照 Cloudflare 文档绑定自定义域名;这只能改变入口域名,不能保证上游 API 或本地网络一定稳定。

相关阅读

参考资料

  1. 官方 REST API 参考(docs.x.ai)
  2. 官方 API 账单与充值说明(docs.x.ai)
  3. 官方模型列表接口(docs.x.ai)
  4. 官方流式输出说明(docs.x.ai)
  5. 官方错误排查文档(docs.x.ai)
  6. 官方 Usage Explorer 说明(docs.x.ai)
  7. 官方服务条款(x.ai)
  8. Cloudflare Workers Fetch 文档
  9. Cloudflare Workers Secrets 文档
  10. Cloudflare Routes and domains 文档