OpenCode Console 的推理服务在
https://opencode.ai/inference 提供与 OpenAI、Anthropic 和 Gemini 兼容的 API。请向与模型所属 API 系列匹配的端点发送 JSON POST 请求。curl -X POST "https://opencode.ai/inference/openai/v1/chat/completions" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"model": "kimi-k3",
"messages": [{ "role": "user", "content": "Say hi" }]
}'
认证
将
<token> 替换为在 OpenCode Console 中创建的个人 API 密钥或服务账户密钥。付费模型需要该请求头。免费层级的聊天模型仅可在 OpenCode 内部使用;其他客户端即使带有 API 密钥也会收到 HTTP 403。若要从其他客户端使用,请改用付费模型或 Go 订阅。Authorization: Bearer <token>
端点
| API | 路径 |
| --------------- | --------------------------------------------------------- |
| OpenAI 聊天补全 |
/inference/openai/v1/chat/completions |
| OpenAI 响应 | /inference/openai/v1/responses |
| Anthropic 消息 | /inference/anthropic/v1/messages |
| Gemini | /inference/google/v1beta/models/<model>:generateContent |每个模型由一个 API 系列提供服务。参见模型端点表,或获取实时列表:
curl https://opencode.ai/inference/v1/models
OpenAI 聊天补全
kimi-k3、glm-5.3、minimax-m3 等开放模型以及免费模型使用聊天补全 API。curl -X POST "https://opencode.ai/inference/openai/v1/chat/completions" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"model": "glm-5.3",
"messages": [{ "role": "user", "content": "Say hi" }]
}'
OpenAI 响应
GPT 模型使用响应 API。
curl -X POST "https://opencode.ai/inference/openai/v1/responses" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6.1-sol",
"input": "Say hi"
}'
Anthropic 消息
Claude 和 Qwen 模型使用消息 API。
max_tokens 为必填。curl -X POST "https://opencode.ai/inference/anthropic/v1/messages" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Say hi" }]
}'
Gemini
Gemini 模型在路径中指定模型与方法。将
:generateContent 替换为 :streamGenerateContent 可对响应进行流式传输。curl -X POST "https://opencode.ai/inference/google/v1beta/models/gemini-4-argon:generateContent" \
-H "Authorization: Bearer <token>" \
-H "Content-Type: application/json" \
-d '{
"contents": [{ "parts": [{ "text": "Say hi" }] }]
}'
费用
每个响应都会在各 API 已返回的用量信息之外,报告本次请求的花费:OpenAI 和 Anthropic 位于
usage 中,Gemini 位于 usageMetadata 中。流式响应在携带最终用量的事件上报告该金额:启用了 stream_options.include_usage 的聊天补全为最终用量分块,响应 API 为 response.completed,消息 API 为 message_delta,Gemini 为最后一个分块。"usage": {
"prompt_tokens": 1200,
"completion_tokens": 300,
"cost": 0.00412,
"opencode": {
"billing_source": "balance",
"list_cost": 0.00412,
"tokens": { "input": 1200, "output": 300, "reasoning": 120, "cache_read": 8000, "cache_write_5m": 0, "cache_write_1h": 0 }
}
}
| 字段 | 含义 |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
cost | 以美元从你的余额中扣除的费用。免费模型以及限额内的 Go 用量为 0。使用你自己的提供商密钥时,为提供商收费的估算值(除非提供商自行上报);模型无定价时该字段缺失。 |
| opencode.billing_source | free、balance、go、go-plus 或 byok(你自己的提供商密钥)。 |
| opencode.list_cost | 按模型标价计算的美元金额,含高峰时段与长上下文定价。 |
| opencode.estimated | 当 cost 是按模型标价估算而非 OpenCode 实际收取的金额时为 true。仅在使用你自己的提供商密钥时设置。 |
| opencode.allowance | 仅限 Go:本次请求计入用量限制的额度,以套餐月度限额的美元金额表示。 |
| opencode.tokens | 计费所依据的 token 数。input 不含缓存读写;output 含 reasoning。 |图像生成会在响应上报告相同的字段;在流式响应中,每个已完成的图像会附带截至当时的累计费用。费用在响应结束时即已确定,早于余额或 Go 用量的更新。若余额或 Go 限额在请求过程中耗尽,实际扣费可能低于报告金额,但绝不会更高。