OpenRouter API 接入:获取 Key、模型 ID 与最小调用
2026-07-07 · 更新于 2026-10-13
先完成三件事:从OpenRouter控制台创建 API Key;复制当前账户能调用的完整模型 ID;用下面的单次请求核对返回。接口与参数于 2026-10-13 按官方接入文档核对,模型、价格和账户额度以控制台当时显示为准。
接入参数先对齐
| 项目 | 本文使用的配置 |
|---|---|
| 完整请求地址 | https://openrouter.ai/api/v1/chat/completions |
| SDK 的 Base URL | https://openrouter.ai/api/v1,不是完整请求路径 |
| 鉴权 | 本平台 Key,使用 Bearer 头 |
| 模型 | 环境变量 API_MODEL,填账户当前可用的完整 ID |
| 返回形态 | Chat Completions 的 choices |
模型 slug 从当前目录复制,不把网页显示名称当成 API ID。免费变体与付费变体应按各自详情确认,不在本文写死每日请求数或承诺长期免费。
设置环境变量
下面适用于 PowerShell 当前窗口。把两个占位值换成自己的配置;密钥不要写进网页脚本或仓库。
$env:MODEL_API_KEY = '替换为本平台API Key'
$env:API_MODEL = '替换为当前可用模型ID'
python -m pip install requests
macOS 或 Linux 对应使用 export MODEL_API_KEY='自己的Key' 和 export API_MODEL='模型ID'。然后把下列内容保存为 first-call.py,在同一个终端运行 python first-call.py。这是一笔真实 API 调用,请先选控制台里适合小规模验证的模型。
Python 最小调用
import os
import requests
response = requests.post(
"https://openrouter.ai/api/v1/chat/completions",
headers={"Authorization": "Bearer " + os.environ["MODEL_API_KEY"]},
json={"model": os.environ["API_MODEL"], "messages": [{"role": "user", "content": "用一句话介绍你能做什么。"}], "stream": False},
timeout=120,
)
print("HTTP 状态:", response.status_code)
response.raise_for_status()
data = response.json()
choices = data.get("choices", [])
if choices:
print(choices[0].get("message", {}).get("content"))
print("结束原因:", choices[0].get("finish_reason"))
print("用量:", data.get("usage"))
成功时应看到 HTTP 200 和返回正文。只看到 200、却没有文字时,先核对返回结构与结束状态,不能据此认定这笔请求没发生。
出错时按顺序排查
- 请求到达哪一层:记录时间、HTTP 状态和响应中的错误码。连接超时与平台返回错误是两条不同的排查路径;给上游支持提供脱敏后的请求 ID,不发 Key。
- Key 与端点是否同平台:把其他平台的 Key 填过来,即使接口长得一样也不能使用。SDK 的 Base URL 若又追加了一遍接口路径,也会请求错地址。
- 模型 ID 与权限:从控制台重新复制 ID,核对所选账号、项目和模型,不把营销名称当成代码。
- 余额与速率:余额、请求速率和模型可用性分别检查。余额存在不保证当前请求一定放行,重复提交也不是修复限流的办法。
先用这份单次调用跑通,再加流式、工具调用和长上下文。每次只改一项,保存一个可用配置作对照,这样才能区分应用代码问题与端点问题。
官方接口与第三方服务怎样选
需要 OpenRouter 当前目录里的特定模型,就沿本文的官方平台配置与条款走。若只是想把国内 DeepSeek 接进程序,可以另外了解力达云的独立服务;它不是 OpenRouter 的 Key,也不保证提供相同模型。
继续核对
- 当前接口的官方说明
- API 价格与调用成本对比
- OpenRouter 接入与硅基流动接入:换平台时重新核对端点和模型 ID。
留言讨论
评论发布后会被人工复核,违规内容将被删除。
如果发表没有反应,可以前往联系我们告诉我们。