Grok API 怎么接入?xAI 密钥申请、SDK 与国内访问前提
数据截至 2026-07,价格与限额以各官网为准。
接入 Grok API 在代码层面几乎没有难度——它直接兼容 OpenAI SDK,改一个 base_url 就能跑通;真正需要提前想清楚的,是 xAI 目前没有面向中国大陆的官方开放渠道,这一点必须在动手写代码之前就诚实面对,免得走到一半才发现整条路线走不通。
很多人一看到”兼容 OpenAI SDK”就觉得接入没什么好讲的,直接抄个示例改改 key 就完事。这个判断在代码层面没错,但容易漏掉两件事:一是 xAI 自己有好几个域名分工不同,第一次接触容易点错地方;二是国内访问这件事,官方压根没有开放,不是”网络不稳定”这种技术问题,而是政策层面就没有这条路。这篇按真实接入顺序走一遍。
第一步:分清楚四个域名,别点错门
xAI 的产品线拆得比较细,第一次接触很容易在域名上绕晕,这里先说清楚各自是干什么的:
accounts.x.ai:注册入口,打开后会跳转到云控制台完成账号创建。console.x.ai:开发者控制台,账单管理、API Key 的创建和查看都在这里,具体路径是console.x.ai/team/default/api-keys。api.x.ai:真正发起 API 调用的 endpoint,代码里base_url要填的是这个域名,不是 console。grok.com:面向普通消费者的聊天产品,跟 API 调用完全是两回事——如果你是想接入自己的应用做开发,不需要也不应该往这个域名上找入口。
记住这个分工,后面步骤就不会出现”我在 grok.com 上怎么找不到 API key”这种低级卡壳。
第二步:申请 API 密钥
打开 accounts.x.ai/sign-up 完成注册,跳转进云控制台之后,进入 console.x.ai/team/default/api-keys 这个页面创建密钥。跟大多数 API 平台一样,光注册完账号大概率还发不出正式请求,绑定支付方式这一步通常是绕不开的,具体扣费和账单规则以你登录控制台当时看到的页面为准,这篇不替官方下承诺性结论。
密钥创建后同样建议只显示一次就存好,放进环境变量而不是硬编码到代码里。这篇统一用 XAI_API_KEY 这个变量名做示例,你也可以自己命名,只要跟代码里读取的地方对上就行。
第三步:两种调用方式,选一种顺手的
Grok API 支持两条调用路径,各有适用场景,不用纠结哪个”更正宗”,实际上是同一套后端服务的两层封装。
方式一:OpenAI 兼容 SDK(上手最快)
如果你的项目已经在用 openai 这个 Python 包(哪怕之前是接的 OpenAI 或者别的兼容服务),迁移到 Grok 只需要改两处:base_url 指向 https://api.x.ai/v1,api_key 换成你的 xAI key,模型名换成 Grok 系列。
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("XAI_API_KEY"),
base_url="https://api.x.ai/v1",
)
response = client.chat.completions.create(
model="grok-4.3",
messages=[{"role": "user", "content": "你好,Grok"}],
)
print(response.choices[0].message.content)
先 pip install openai,跟平时用 OpenAI SDK 没有任何额外依赖。鉴权走标准的 Authorization: Bearer xai-... 头,SDK 会自动帮你拼好,不用手写 HTTP 请求。
这里值得提一句:xAI 除了标准的 /v1/chat/completions 路径,也支持 /v1/responses,也就是同样能用 OpenAI SDK 里较新的 client.responses.create() 写法。如果你的项目已经按 Responses API 的风格在写新代码,切到 Grok 时不需要退回旧接口。
方式二:官方原生 xai-sdk(更贴近底层能力)
如果你想用到一些 xAI 特有的能力、或者不想依赖 OpenAI 这层兼容封装,官方也提供了原生 SDK:
import os
from xai_sdk import Client
from xai_sdk.chat import user
client = Client(api_key=os.getenv("XAI_API_KEY"))
chat = client.chat.create(model="grok-4.3")
chat.append(user("你好,Grok"))
print(chat.sample().content)
先 pip install xai-sdk。两种方式跑出来的核心对话能力是一样的,选哪个纯粹看你的项目习惯——已经有 OpenAI 兼容层基础设施的,直接用方式一改起来最省事;从零开始搭、想更贴近官方原生能力的,用 xai-sdk 也不复杂。
另外 xAI 还单独提供一个面向 IDE agent / 代码生成场景的专用模型(grok-build-0.1),走的是 xai-sdk 调用方式而不是通用 chat 接口,如果你是想做代码生成类的集成,这个模型值得留意,但接口形态和上面两个通用示例不完全一样,具体参数以官方文档当次页面为准。
常见报错怎么排查
跑通 demo 前后,新手最容易撞上下面几类报错,先把排查方向记住,省得对着一行英文报错干瞪眼:
- 鉴权失败(401 / invalid api key 之类):先确认
base_url用的是不是https://api.x.ai/v1,而不是 OpenAI 的地址——如果你是从 OpenAI 代码改过来的,很容易漏改 base_url,结果拿着 xAI 的 key 去撞 OpenAI 的端点,当然认不出来。再确认环境变量真的读到了,可以先打印一下os.getenv("XAI_API_KEY")看它是不是None,很多所谓”鉴权失败”其实是变量名拼错或者根本没导入当前进程。 - 模型名不存在(model not found 之类):xAI 今年内模型清单调整过多次,如果你抄的是几个月前的教程,里面写的旧模型名可能已经收敛或改了别名。稳妥做法是用官方推荐的别名化名字,比如
grok-4.3-latest或grok-latest,这样能自动指向当前版本,不用每次追着版本号改代码;具体哪些名字当前可用,以docs.x.ai/developers/models页面为准。 - 连接超时 / 被拒绝这类网络层错误:如果报的不是明确的鉴权或参数错误,而是连不上端点,那大概率是访问链路问题,跟下一节讲的大陆访问现实直接相关,不是改代码能解决的。
排查顺序建议从外往里剥:先看网络能不能连通端点,再看 key 对不对,最后才怀疑请求参数和模型名,别一上来就怀疑自己的业务代码逻辑。
流式调用与密钥管理
流式调用跟 OpenAI SDK 完全一致:在 chat.completions.create 里加上 stream=True,然后遍历返回的 chunk,从每个 chunk 的 choices[0].delta.content 里取增量文本拼起来。做聊天类交互建议开流式,首字延迟的体感会好很多;但要留意流式模式下 token 用量的统计口径可能跟一次性返回的非流式不完全一样,如果你要精确记账,具体字段以实际返回内容为准,别默认两种模式一模一样。
密钥安全这块也顺带强调一下:xAI 的 key 以 xai- 开头,一旦泄露别人就能拿去消耗你的额度,所以务必只放在服务端的环境变量或密钥管理服务里,绝对不要写进前端代码,也不要提交进代码仓库。如果一个项目要区分开发和生产环境,建议各用各的 key,出问题时能单独吊销一把,不至于一处泄露就得全盘更换。
中国大陆访问的现实情况(诚实说明)
这一节是最该认真看的部分,因为它跟代码写得对不对没关系,是纯粹的准入问题。
先说结论:截至 2026-07,xAI 没有面向中国大陆的官方开放渠道,账号注册、控制台 console.x.ai、API 调用 api.x.ai 全部托管在海外基础设施上,这跟 OpenAI API 长期以来对中国大陆的访问限制情形是类似的处境。
实际影响是什么样的?在大陆网络环境下直连 accounts.x.ai、console.x.ai、api.x.ai 大概率会遇到连接不稳定甚至被拦截的问题;就算通过合规的网络访问方式连通了,注册环节可能还涉及手机号、地区校验之类的限制,具体会遇到什么提示以你实际操作当时页面显示的为准,这篇不做绝对保证。
必须说清楚的是:不应该认为”官方支持国内直接访问”,市面上如果有宣传说 Grok API 国内可以无障碍直连,这跟目前的事实不符,别被这类说法误导去做生产环境的技术选型依据。
那对于确实需要用起来的人,客观地说,市面上存在第三方 API 中转、聚合平台,声称提供国内可直连的转发服务。这类服务的合法性、计费是否透明、数据隐私怎么处理,都需要用户自己去核实和承担风险,这篇不做背书、也不推荐具体渠道名——不是信息不透明,而是这类服务变化很快、良莠不齐,与其推荐一个可能过阵子就出问题的渠道,不如把现实情况讲清楚,怎么选留给你自己判断。官方渠道目前仍然只是”通过合规的网络访问方式连接 xAI 海外服务器”这一条路。
常见坑 / 注意
- 别在 grok.com 上找 API 入口:那是消费者聊天产品,API Key 的创建在
console.x.ai。 - base_url 要填 api.x.ai,不是 console.x.ai:两个域名分工不同,填错会直接连不上。
- 密钥只显示一次:创建后立刻存进环境变量,关掉弹窗就找不回明文了。
- 两种 SDK 选一种就行,不用都接:OpenAI 兼容层上手最快,
xai-sdk更贴近原生能力,功能核心是一致的。 - 旧模型名不建议再查具体价格:官方当前页面主推 grok-4.3 / grok-4.20 系列,旧版本条目已经不在当前页面明确列出。
- 大陆无官方直连渠道:这是准入层面的现实,不是网络慢的问题,别把时间耗在”怎么让官方认我是支持地区”上。