API 文档
兼容 OpenAI。将 base_url 设为 https://api.eastx.ai/v1,即可直接复用现有 SDK 代码。
在找商户管理 API?
本页介绍的是 终端用户推理 API —— 即对 /v1/* — 通过任意兼容 OpenAI 的 SDK 调用。若您是白标租户管理员,希望以编程方式管理品牌、定价、财务或自定义域名,请使用独立的 商户管理 API:token 前缀 sk-mgmt-*,base path /api/v1/merchant/*。请在 Console 的 API 密钥 中签发 token;可浏览的 OpenAPI 文档位于 admin.eastx.ai/api/v1/merchant/docs。
快速开始
一个 chat completions 调用 —— 选择您熟悉的客户端。
curl https://api.eastx.ai/v1/chat/completions \
-H "Authorization: Bearer $EASTX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "Hello!"}
]
}'鉴权
所有端点均要求在 Authorization 请求头中携带 API 密钥:
Authorization: Bearer sk-eastx-<your-key>- • 密钥在 /keys 页面创建,且仅展示一次 —— 请妥善保存。
- • 创建密钥时可选配置单密钥消费上限与 RPM 速率限制。
- • 若密钥泄漏,在同一页面立即吊销;吊销即时生效。
/v1/models列出模型
返回当前账户可调用的模型目录。即将上线和已停用的模型会被过滤掉。
示例
curl https://api.eastx.ai/v1/models \
-H "Authorization: Bearer $EASTX_API_KEY"- • 每条记录都带有 OpenAI 风格的字段(id、object、created、owned_by),并额外包含 display_name、input_price_per_1m、output_price_per_1m。大多数 OpenAI SDK 会忽略未知字段。
/v1/models/{id}获取单个模型
按 id 查询单个模型。部分 SDK 会在客户端初始化时调用此端点校验模型名是否有效。
示例
curl https://api.eastx.ai/v1/models/claude-sonnet-4-6 \
-H "Authorization: Bearer $EASTX_API_KEY"- • 若 id 未知或已停用,返回 404 model_not_found。
/v1/chat/completions对话补全
兼容 OpenAI 的 chat completions 端点。支持流式(SSE)与非流式两种模式。token 用量在上游计费,您的余额会在每次请求结束时扣减。
请求体
{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "system", "content": "You are concise."},
{"role": "user", "content": "Explain JWT in one sentence."}
],
"max_tokens": 256,
"temperature": 0.2,
"stream": false
}示例
curl https://api.eastx.ai/v1/chat/completions \
-H "Authorization: Bearer $EASTX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"messages": [{"role":"user","content":"hi"}],
"max_tokens": 32
}'- • 如需流式响应,请设置 "stream": true。每个 SSE 事件形如 "data: {...}",承载一个 OpenAI 风格的 chunk,其中 "choices[0].delta.content" 为增量文本,最后一个非 DONE chunk 会带上 "choices[0].finish_reason"。请持续消费,直到读到 "data: [DONE]"。
- • Vision 与 tool / function calling 会透传到支持这些能力的上游模型(如 Claude、qwen-vl-*、GPT 系列)。详见下方示例。
- • 在调用前会按最坏情况(input + max_tokens × output 价格)预扣余额。余额不足返回 402。
- • 推理模型(如 gpt-5.5)会将思维链按 output_tokens 计费 —— 您看到的 usage.completion_tokens 可能超过可见消息的长度。思维链本身不会在响应中暴露,与 OpenAI o 系列保持一致。
Tool / function calling
请求体
{
"model": "claude-sonnet-4-6",
"messages": [
{"role": "user", "content": "What's the weather in Paris?"}
],
"tools": [{
"type": "function",
"function": {
"name": "get_weather",
"description": "Get the current weather for a city.",
"parameters": {
"type": "object",
"properties": {"city": {"type": "string"}},
"required": ["city"]
}
}
}]
}- • 由模型自主决定是否调用工具。一旦调用,响应的 "choices[0].message.tool_calls" 会列出函数名与 JSON 参数,"finish_reason" 为 "tool_calls"。请将工具执行结果以 {"role":"tool", ...} 的消息形式继续发起后续请求。
- • 并非所有上游都支持工具调用。当前 Anthropic Claude、Qwen 系列以及大多数 OpenAI 兼容模型支持;小型开源模型往往不支持。
Vision(图像输入)
请求体
{
"model": "claude-sonnet-4-6",
"messages": [{
"role": "user",
"content": [
{"type": "text", "text": "What is in this image?"},
{"type": "image_url", "image_url": {"url": "https://example.com/cat.jpg"}}
]
}]
}- • 将每条 user 消息的 "content" 由字符串改为分段数组。"image_url" 同时接受 HTTPS URL 与 "data:image/<mime>;base64,<...>" 形式的 data URL。
- • 请选用支持视觉的模型(如 claude-sonnet-4-6、qwen-vl-plus)。向纯文本模型发送图像的行为取决于上游 —— 可能返回 400,也可能静默丢弃图像。
/v1/embeddings向量
为一个或多个字符串生成向量。此端点仅接受 modality=embedding 的模型(对话模型会返回 400 wrong_endpoint)。
请求体
{
"model": "text-embedding-v3",
"input": "Hello, world."
}示例
curl https://api.eastx.ai/v1/embeddings \
-H "Authorization: Bearer $EASTX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "text-embedding-v3",
"input": ["hello", "world"]
}'- • input 支持单个字符串或字符串数组。
- • 仅按 input token 计费(output_tokens = 0)。
/v1/images/generations图像生成
根据文本提示词生成图像。EastX 封装了阿里云的异步任务 API,因此客户端看到的是同步响应 —— 典型延迟 3-10 秒。按张计费,与分辨率无关。
请求体
{
"model": "qwen-image-plus",
"prompt": "a red apple on a wooden table",
"n": 1,
"size": "1024x1024"
}示例
curl https://api.eastx.ai/v1/images/generations \
-H "Authorization: Bearer $EASTX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen-image-plus",
"prompt": "a red apple on a wooden table",
"n": 1,
"size": "1024x1024"
}'- • 响应结构:{"created":<ts>,"data":[{"url":"<signed-oss-url>","revised_prompt":"..."}]}。
- • n 最多为 4。可选尺寸取决于具体模型;1024x1024 各模型均支持。
- • URL 是临时签名的 OSS 链接 —— 请在约 1 小时内下载并自行托管。
- • 内部轮询超时为 90 秒;过长的任务返回 504 upstream_timeout。
错误码
所有错误均以以下 JSON 结构返回:{"error":{"code":"...","message":"...","type":"..."}}。HTTP 状态码与 error.code 的对应关系如下表。
type 字段按家族对错误码归类,便于您据此分支处理,而无需逐个匹配名称:auth_error(密钥问题)、invalid_request_error(请求输入)、rate_limit(RPM 上限)、billing_error(余额 / 上限)、upstream_error(上游服务商)、server_error(少见 —— EastX 自身问题)。
| HTTP | error.code | 触发场景 |
|---|---|---|
| 400 | bad_request | 缺少必填字段,或请求体格式有误。请查看 error.message 获取详情。 |
| 400 | wrong_endpoint | 模型 modality 与端点不匹配(例如把对话模型用于 /v1/embeddings)。 |
| 401 | missing_key | 缺少 Authorization 请求头。请发送 "Authorization: Bearer sk-eastx-..."。 |
| 401 | invalid_key | 密钥不存在或已吊销。请到 /keys 重新创建。 |
| 402 | insufficient_balance | 最坏情况成本超过账户余额。请前往 /recharge 充值。 |
| 402 | cap_reached | 已达到单密钥消费上限(balanceCapUsd)。请调高上限或更换新密钥。 |
| 403 | disabled | API 密钥被管理员停用。 |
| 403 | expired | API 密钥的 expiresAt 已过期。 |
| 404 | model_not_found | 未知的模型 id。请调用 /v1/models 查看可用列表。 |
| 429 | rate_limit_exceeded | 触发了单密钥的 RPM 速率限制。请降低请求速率或拆分到多个密钥。 |
| 429 | tenant_rate_limit_exceeded | 触发了租户级 RPM 上限 —— 该上限是租户下所有密钥的合计。与上方单密钥 429 不同。请联系租户管理员调高上限。 |
| 500 | pricing_misconfigured | 该模型在 EastX 侧缺少价格配置(少见的管理端 bug)。请稍后重试;如持续出现,请将模型 id 告知支持。 |
| 502 | upstream_unreachable | 无法连接上游服务商。通常是临时性问题 —— 请配合退避策略重试。 |
| 502 | upstream_error | 上游返回错误。响应 message 中包含上游详情及 upstream_status。 |
| 502 | image_generation_failed | 上游图像任务未成功(返回 FAILED 或为空)。请重试、调整提示词,或更换图像模型。 |
| 503 | upstream_unavailable | 该渠道下所有上游 token 均处于冷却或停用状态。EastX 已感知到该问题。 |
| 504 | upstream_timeout | 图像生成耗时超过 90 秒。可再次提交,相同提示词可能成功。 |
速率限制与配额
- • 单密钥 RPM:每个 API 密钥都有每分钟请求数上限(默认 60)。超出后返回 429 rate_limit_exceeded。可在 /keys 页面调整单密钥的上限。
- • 租户级 RPM 上限:在白标租户中,租户管理员可设置租户级 RPM 上限,作用于该租户下所有密钥的合计请求。触发时返回 429 并附带
tenant_rate_limit_exceeded—— 与单密钥 429 区分开,便于您在重试逻辑中分别处理。此时增加密钥数无法绕过;请联系租户管理员调高上限。 - • 账户余额:每次成功请求都会从您的 USD 余额扣费。余额不足返回 402;请前往 /recharge 充值。
- • 单密钥消费上限:可选的 balanceCapUsd 在累计消费达到上限后停用该密钥。适合在客户端 App 中嵌入短期密钥的场景。
- • 上游冷却:若某渠道下所有上游 token 都处于冷却或异常状态,gateway 将返回 503 upstream_unavailable。请配合退避策略重试。