阡陌 API 开发者中心
使用教程
这里是 newapi.julai.xyz 的调用说明。你可以用 OpenAI 兼容格式接入 GPT、Claude、Gemini、图片生成和 Seedance 视频生成模型,所有 API Key 都在控制台创建和管理。
API 信息
OpenAI 兼容接口
适用于 OpenAI SDK、Cherry Studio、Chatbox、Open WebUI、LibreChat 等客户端。
Base URL: https://newapi.julai.xyz/v1
API Key: sk-你的API密钥
Header: Authorization: Bearer sk-你的API密钥
Claude Code 原生接口
适用于官方 claude 命令行和支持 Anthropic 原生协议的工具。
Base URL: https://newapi.julai.xyz
API Key: sk-你的ClaudeCode密钥
Header: x-api-key: sk-你的ClaudeCode密钥
常用端点
GET /v1/models
POST /v1/chat/completions
POST /v1/images/generations
POST /v1/images/edits
POST /v1/videos/generations
POST /v1/messages?beta=true # Claude Code / Anthropic Messages
调用接口时只需要使用控制台创建的 API Key。Claude Code 原生协议请使用单独发放的 Claude Code 专用 API Key。
Codex 使用 GPT 中转站
环境变量
Codex 和 OpenAI SDK 一样走 OpenAI-compatible。Base URL 固定填 https://newapi.julai.xyz/v1,API Key 使用控制台创建的令牌。
Windows PowerShell 当前窗口:
$env:OPENAI_BASE_URL = "https://newapi.julai.xyz/v1"
$env:OPENAI_API_KEY = "sk-你的API密钥".env / macOS / Linux:
OPENAI_BASE_URL=https://newapi.julai.xyz/v1
OPENAI_API_KEY=sk-你的API密钥图文教程
Codex 接入 GPT 中转站的图文教程:
https://mp.weixin.qq.com/s/3kRzcxhw2L6S96dpn3bmgg
Codex 只需要填写控制台创建的 API Key。
PowerShell 临时变量
只在当前 PowerShell 窗口生效,适合先测试:
$env:OPENAI_BASE_URL = "https://newapi.julai.xyz/v1"
$env:OPENAI_API_KEY = "sk-你的API密钥"运行 Codex 或其他 OpenAI-compatible 客户端前,先在同一个窗口执行上面两行。
PowerShell 永久变量
写入当前 Windows 用户变量,重新打开 PowerShell 后生效:
[Environment]::SetEnvironmentVariable(
"OPENAI_BASE_URL",
"https://newapi.julai.xyz/v1",
"User"
)
[Environment]::SetEnvironmentVariable(
"OPENAI_API_KEY",
"sk-你的API密钥",
"User"
)如果你已经打开了 VS Code、Codex 或终端,设置后需要完全关闭并重新打开,程序才会读取新变量。
图形界面设置
不想用命令时,可以按这个路径操作:
Win + S 搜索 环境变量,打开 编辑系统环境变量,点击 环境变量,在 用户变量 中新建:
变量名: OPENAI_BASE_URL
变量值: https://newapi.julai.xyz/v1
变量名: OPENAI_API_KEY
变量值: sk-你的API密钥验证变量和接口
重新打开 PowerShell 后先确认变量能读到:
$env:OPENAI_BASE_URL
$env:OPENAI_API_KEY再测试接口:
curl https://newapi.julai.xyz/v1/chat/completions `
-H "Authorization: Bearer $env:OPENAI_API_KEY" `
-H "Content-Type: application/json" `
-d '{"model":"gpt-5.5","messages":[{"role":"user","content":"ping"}]}'Claude Code 原生协议不使用这两个变量,见下方 Claude Code 章节的 ANTHROPIC_BASE_URL 和 ANTHROPIC_AUTH_TOKEN。
创建 API Key
在控制台创建 API Key,并确认账号有可用余额和对应模型权限。
写入 Shell 环境
export OPENAI_BASE_URL="https://newapi.julai.xyz/v1"
export OPENAI_API_KEY="sk-你的API密钥"可以把上面的两行加入 ~/.zshrc,然后执行 source ~/.zshrc。
运行请求
curl "$OPENAI_BASE_URL/models" -H "Authorization: Bearer $OPENAI_API_KEY"准备密钥
从控制台复制自己的 API Key。
配置变量
export OPENAI_BASE_URL="https://newapi.julai.xyz/v1"
export OPENAI_API_KEY="sk-你的API密钥"测试聊天接口
curl "$OPENAI_BASE_URL/chat/completions" -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d '{"model":"gemini-3-flash","messages":[{"role":"user","content":"你好"}]}'接口示例
Node.js SDK
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://newapi.julai.xyz/v1"
});
const res = await client.chat.completions.create({
model: "gpt-5.5",
messages: [{ role: "user", content: "写一个简短介绍" }]
});
console.log(res.choices[0].message.content);Python 完整示例
安装依赖:
pip install openai requests聊天模型调用:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENAI_API_KEY"],
base_url=os.getenv("OPENAI_BASE_URL", "https://newapi.julai.xyz/v1"),
)
resp = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "你好,写一句测试回复"}],
stream=False,
)
print(resp.choices[0].message.content)图片文生图:
import base64
import os
import requests
BASE = os.getenv("OPENAI_BASE_URL", "https://newapi.julai.xyz/v1")
KEY = os.environ["OPENAI_API_KEY"]
res = requests.post(
f"{BASE}/images/generations",
headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"},
json={
"model": "gpt-image-2",
"prompt": "一个蓝色科技图标,白色背景",
"size": "1792x1024", # 16:9 横屏;其它可选值见图片 API 章节
},
timeout=180,
)
res.raise_for_status()
item = res.json()["data"][0]
if item.get("b64_json"):
open("image.png", "wb").write(base64.b64decode(item["b64_json"]))
else:
print(item.get("url"))参考图编辑:
import os
import requests
BASE = os.getenv("OPENAI_BASE_URL", "https://newapi.julai.xyz/v1")
KEY = os.environ["OPENAI_API_KEY"]
with open("ref.png", "rb") as f:
res = requests.post(
f"{BASE}/images/edits",
headers={"Authorization": f"Bearer {KEY}"},
data={
"model": "gpt-image-2",
"prompt": "参考原图,改成电商主图风格",
"size": "1024x1792", # 9:16 竖屏,参考图编辑同样支持 size
},
files={"image": ("ref.png", f, "image/png")},
timeout=180,
)
res.raise_for_status()
print(res.json())视频生成和轮询:
import os
import time
import requests
BASE = os.getenv("OPENAI_BASE_URL", "https://newapi.julai.xyz/v1")
KEY = os.environ["OPENAI_API_KEY"]
headers = {"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"}
# 本地参考图先上传;如果你已有公网图片 URL,可以跳过这一步。
with open("person.png", "rb") as f:
uploaded = requests.post(
f"{BASE}/videos/uploads",
headers={"Authorization": f"Bearer {KEY}"},
files={"file": ("person.png", f, "image/png")},
timeout=240,
)
uploaded.raise_for_status()
image_asset = uploaded.json()
image_ref = {
"type": "image",
"url": image_asset["url"],
"alias": "图片1",
"name": "人物参考",
}
for key in ("asset_id", "asset_cache_key", "content_sha256", "seedance_compliance"):
if image_asset.get(key):
image_ref[key] = image_asset[key]
payload = {
"model": "seedance-2.0-full",
"prompt": "参考 @图片1 的人物和 @视频1 的动作节奏,生成 9:16 写实短视频",
"duration": 8,
"ratio": "9:16",
"references": [
image_ref,
{"type": "video", "url": "https://example.com/motion.mp4", "alias": "视频1"},
],
}
created = requests.post(f"{BASE}/videos/generations", headers=headers, json=payload, timeout=60)
created.raise_for_status()
job = created.json()
task_id = job["id"]
print("task_id =", task_id, "status =", job.get("status"), "progress =", job.get("progress"))
while True:
res = requests.get(f"{BASE}/videos/generations/{task_id}", headers={"Authorization": f"Bearer {KEY}"}, timeout=60)
res.raise_for_status()
data = res.json()
status = str(data.get("status", "")).lower()
retry = data.get("generation_retry") or {}
detail = data.get("status_detail") or {}
print(status, data.get("progress"), data.get("message", ""), retry, detail)
if status in {"success", "succeeded", "completed"}:
print("video_url =", data.get("video_url") or data["data"][0]["url"])
break
if status in {"failed", "error", "cancelled", "canceled", "timeout"}:
refunded = detail.get("stage") == "failed_refunded" or "退回" in str(data.get("message", ""))
raise RuntimeError(f"{data.get('message') or 'video generation failed'} refunded={refunded}")
time.sleep(10)Chat Completions
curl https://newapi.julai.xyz/v1/chat/completions -H "Authorization: Bearer sk-你的API密钥" -H "Content-Type: application/json" -d '{
"model": "claude-sonnet-4-6",
"messages": [{"role":"user","content":"ping"}],
"stream": false
}'Images
gpt-image-2 走图片专用接口:文生图用 /v1/images/generations,参考图编辑用 /v1/images/edits。
size 同时适用于网页生图、异步任务、文生图 API 和参考图编辑 API。可选值:1024x1024 1:1 方图、1792x1024 16:9 横屏、1024x1792 9:16 竖屏、1536x1024 3:2 横图、1024x1536 2:3 竖图、512x512 1:1 快速。
curl https://newapi.julai.xyz/v1/images/generations \
-H "Authorization: Bearer sk-你的API密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2",
"prompt": "一张干净的产品海报,白色背景,高级科技感",
"size": "1792x1024"
}'带参考图时使用 multipart:
curl https://newapi.julai.xyz/v1/images/edits \
-H "Authorization: Bearer sk-你的API密钥" \
-F model=gpt-image-2 \
-F prompt="参考这张图,改成电商主图风格" \
-F size=1024x1792 \
-F image=@ref.png返回兼容 data[].b64_json 或 data[].url。图片额度/限制错误表示图片服务额度不足,不是 GPT 聊天推理额度不足。
Claude、Gemini、Codex 类模型
当前服务对外统一走 OpenAI 兼容格式。Claude、Gemini 等模型在这里作为 /v1/chat/completions 模型调用,客户端只填写控制台创建的 API Key。
OPENAI_BASE_URL=https://newapi.julai.xyz/v1
OPENAI_API_KEY=sk-你的API密钥视频生成 API
请求模型参数:seedance-2.0-full。固定 720p,按模型广场当前价格 / 15 秒折算,最低 4 秒、最高 15 秒。支持图片、视频、音频参考,以及多素材组合。
dreamina-intl 分组:与 seedance2.0 分组使用同一套 /v1/videos/generations 调用方式;客户只需要使用 dreamina-intl 分组 API key。当前 dreamina-intl 已支持文生视频、图片参考、视频参考,以及图片+音频 / 视频+音频混合参考;唯一限制是不能只单独提交音频。图片参考默认开启“素材派生 / 不卡人脸”,可通过 reference_derivation_enabled=false 显式关闭。
创建视频任务
curl https://newapi.julai.xyz/v1/videos/generations \
-H "Authorization: Bearer sk-你的API密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2.0-full",
"prompt": "参考 @图片1 的人物和 @音频1 的口播,生成 9:16 写实短视频",
"duration": 8,
"ratio": "9:16",
"reference_derivation_enabled": true,
"references": [
{"type":"image", "url":"https://example.com/person.png", "alias":"图片1"},
{"type":"audio", "url":"https://example.com/bgm.mp3", "alias":"音频1"}
]
}'推荐使用 references。alias 字段不要带 @;提示词里用 @图片1、@视频1、@音频1 精确绑定。提示词引用了某个 @图片1,但 references 里没有同名素材时,接口会返回 400,避免生成时漏绑参考图。reference_derivation_enabled 默认就是 true,只对图片参考生效。
查询结果
curl https://newapi.julai.xyz/v1/videos/generations/julai-video:本地任务ID \
-H "Authorization: Bearer sk-你的API密钥"创建接口返回的 id 是本地任务 ID,例如 julai-video:...。查询只使用这个 ID。成功后优先读取 video_url,它是本站下载地址;也兼容 data[0].url。如果视频已完成生成、但结果文件还在同步中,接口会继续返回 running + 99%,而不会直接误报成功。
{
"status": "running",
"progress": 99,
"message": "视频已生成,正在同步下载文件,页面会继续自动查询。",
"progress_detail": {
"stage": "result_sync",
"status_text": "同步视频结果",
"progress_percent": 99,
"progress_sync": "waiting_download_url"
}
}视频流式进度
curl -N https://newapi.julai.xyz/v1/videos/generations/julai-video:本地任务ID/stream \
-H "Authorization: Bearer sk-你的API密钥"返回类型为 text/event-stream。常见事件:
| event | 说明 |
|---|---|
task | 处理中状态快照。 |
done | 任务完成,通常会带最终 video_url。 |
error | 查询过程出错。 |
timeout | SSE 连接超时,客户端应重新订阅。 |
如果收到 done 事件但仍然没有 video_url,客户端应继续调用普通查询接口轮询,直到真正同步出视频结果。
提示词绑定参考素材
绑定参考素材分两步:先在 references 里附上素材,再在 prompt 里写同名 @别名。例如让第一张图当人物、第二张图当场景:
{
"model": "seedance-2.0-full",
"prompt": "让 @图片1 的人物站在 @图片2 的场景里,镜头缓慢推进",
"duration": 6,
"ratio": "9:16",
"references": [
{"type": "image", "url": "https://example.com/person.png", "alias": "图片1", "name": "人物参考"},
{"type": "image", "url": "https://example.com/scene.png", "alias": "图片2", "name": "场景参考"}
]
}| 写法 | 说明 |
|---|---|
alias: "图片1" | alias 只写名字,不写 @。 |
prompt: "参考 @图片1" | 提示词里必须带 @alias 才是明确绑定。只说“参考图片”但没有 @图片1,效果不如明确绑定稳定。 |
references[].url | 可以是公网可访问 URL,也可以是上传接口返回的 asset://...。 |
| 多个素材 | 图片、视频、音频都用同一套写法,例如 @图片1、@视频1、@音频1。如果不写 alias,系统会按顺序自动补 图片1、视频1、音频1。 |
本地文件路径不能直接写进 url。本地图片、视频、音频需要先调用 /v1/videos/uploads 上传,再把返回的 url 放入 references。如果提交了音频参考,必须至少再带一张图片或一个视频,不能只单独提交音频。
上传素材后复用
curl https://newapi.julai.xyz/v1/videos/uploads \
-H "Authorization: Bearer sk-你的API密钥" \
-F file=@reference.png上传成功返回关键字段:
{
"object": "video.asset",
"type": "image",
"url": "asset://素材ID或公网素材地址",
"asset_id": "素材ID",
"asset_cache_key": "user:...",
"content_sha256": "...",
"upload_stage": "ready",
"seedance_compliance": {"status": "passed"}
}创建视频时把上传结果带回 references:
{
"model": "seedance-2.0-full",
"prompt": "参考 @图片1 的人物生成短视频",
"duration": 6,
"ratio": "9:16",
"references": [
{
"type": "image",
"url": "asset://素材ID或公网素材地址",
"alias": "图片1",
"asset_id": "素材ID",
"asset_cache_key": "user:...",
"seedance_compliance": {"status": "passed"}
}
]
}同一用户重复上传同一文件时,系统会按文件 hash 尽量复用缓存。上传返回 upload_stage=compliance_pending 时,可稍后用 /v1/videos/uploads/status?cache_key=... 查询素材状态,或直接创建任务让后台等待并自动重试。
素材派生 / 不卡人脸
当任务里有图片参考时,服务端默认会先对图片做一次素材派生,再把派生图提交到视频链路。这个能力对外字段名是 reference_derivation_enabled。
{
"model": "seedance-2.0-full",
"prompt": "让 @图片1 的人物自然说话",
"duration": 5,
"ratio": "16:9",
"references": [
{"type": "image", "url": "https://example.com/person.png", "alias": "图片1"}
],
"reference_derivation_enabled": true
}| 字段 | 说明 |
|---|---|
reference_derivation_enabled | 可选,默认 true。只对图片参考生效。 |
| 额外费用 | 每张成功派生的图片额外扣 0.04 CNY,即 20000 quota。 |
| 失败回退 | 如果派生失败,会自动回退原图继续提交,并退回这笔派生费用。 |
查询任务详情时,可在 status_detail.reference_derivation 查看是否派生成功、派生图 URL、出图尺寸和额外扣费。
查询视频额度
curl https://newapi.julai.xyz/v1/videos/account \
-H "Authorization: Bearer sk-你的API密钥"成功返回示例:
{
"object": "video.account",
"user_id": 120,
"username": "yyb",
"token_id": 34235,
"token_name": "视频接口",
"group": "seedance2.0",
"quota": 368000,
"balance_cny": 0.736,
"token_remain_quota": 5000000,
"token_remain_cny": 10,
"token_unlimited": false,
"available_quota": 368000,
"available_cny": 0.736,
"price_15s_cny": 5.52,
"price_per_second_cny": 0.368,
"min_duration": 4,
"max_duration": 15,
"billing_rule": "5.52 CNY/15s, linear by duration"
}available_cny 是本次令牌实际可用金额;如果令牌不是无限额度,会取用户余额和令牌余额中较小的值。视频创建前会先预扣本次费用。管理员调用 GET /v1/videos/account 时,还会额外拿到 reference_derivation_config,用于查看当前素材派生提示词和派生出图尺寸。
curl https://newapi.julai.xyz/v1/videos/admin/reference-derivation-config \
-H "Authorization: Bearer sk-管理员API密钥" \
-H "Content-Type: application/json" \
-d '{
"reference_derivation_prompt": "新的素材派生提示词",
"reference_derivation_openai_size": "1536x1024"
}'这个接口是管理员接口,不是普通用户接口。需要使用管理员 API Key,等价要求是调用方账户具备管理员权限(通常 role >= 10)。普通用户 / 普通 token 调用会返回 403。
视频 references 字段说明
references 是数组,每个素材至少包含 type 和 url。type 可填 image、video、audio;alias 用于在提示词中绑定素材,例如 @图片1、@视频1、@音频1。
{
"type": "image",
"url": "https://example.com/person.png",
"alias": "图片1",
"name": "人物参考"
}| 字段 | 是否必填 | 说明 |
|---|---|---|
type | 必填 | image、video、audio。 |
url | 必填 | 公网素材 URL,或 /v1/videos/uploads 返回的 url。 |
alias | 推荐 | 提示词绑定名,不带 @。例如 alias="图片1",提示词写 @图片1。 |
name | 可选 | 给素材起一个便于自己识别的名字。 |
asset_id / asset_cache_key | 可选 | 上传接口返回的缓存字段。原样带回可减少重复上传和等待。 |
seedance_compliance | 可选 | 上传接口返回的素材状态。原样带回可复用已通过状态。 |
图片、视频、音频及混合组合都使用同一套 references 写法;但纯音频单独提交不支持,必须至少同时有一张图片或一个视频。创建任务返回本地任务 ID,后续只用这个 ID 轮询结果。
创建任务返回字段
{
"id": "julai-video:xxxxxxxx",
"object": "video.generation",
"created": 1778923000,
"status": "running",
"progress": 3,
"message": "任务已接收,正在提交到视频服务。",
"duration": 8,
"billing": {
"price_cny": 2.944,
"price_15s_cny": 5.52,
"quota": 1472000,
"rule": "5.52 CNY/15s, linear by duration, min 4s"
},
"request_id": "seedance-..."
}| 字段 | 说明 |
|---|---|
id | 本地任务 ID。后续查询、下载、排查都用这个 ID。 |
status | 创建后通常是 running。 |
progress | 0-100 的进度值。刚创建通常是 3。 |
billing.price_cny | 本次预扣金额,按时长线性折算。 |
billing.quota | 内部额度单位。当前 500000 quota = 1 元。 |
创建和查询响应只返回客户需要的任务字段,不返回上游模型名、内部 provider、内部路径和上游实际分辨率。
查询任务返回字段
{
"id": "julai-video:xxxxxxxx",
"object": "video.generation",
"status": "success",
"progress": 100,
"message": "",
"data": [
{"url": "https://newapi.julai.xyz/v1/videos/download?task_id=julai-video%3Axxxxxxxx&index=0&inline=1", "type": "mp4"}
],
"url": "https://newapi.julai.xyz/v1/videos/download?task_id=julai-video%3Axxxxxxxx&index=0&inline=1",
"video_url": "https://newapi.julai.xyz/v1/videos/download?task_id=julai-video%3Axxxxxxxx&index=0&inline=1",
"video_urls": [
"https://newapi.julai.xyz/v1/videos/download?task_id=julai-video%3Axxxxxxxx&index=0&inline=1"
],
"prompt": "参考 @图片1 生成短视频",
"input_references": [
{
"type": "image",
"asset_id": "...",
"display_url": "已上传到官方素材库",
"alias": "图片1",
"name": "人物参考",
"binding_status": "bound",
"asset_cache_key": "...",
"compliance_status": "passed"
}
],
"status_detail": {
"stage": "running",
"message": "",
"reference_derivation": {
"enabled": true,
"image_total": 1,
"success_count": 1,
"fallback_count": 0,
"status": "success"
}
},
"generation_retry": {
"attempt": 0,
"max": 5,
"in_progress": false,
"next_retry_at": 0,
"last_error": ""
}
}| 字段 | 说明 |
|---|---|
status | running / queued / pending 表示处理中;success 表示完成;failed、error、cancelled、canceled、timeout 表示终态失败。 |
video_url | 推荐读取的视频下载地址。现在返回完整的本站代理地址,例如 https://newapi.julai.xyz/v1/videos/download?...。 |
data[].url | 兼容字段,和 video_url 指向同一个本站下载地址。没有这个字段时不要当成成功。 |
input_references | 本任务实际绑定的图片、视频、音频参考素材。若开启素材派生并成功,图片的 display_url / source_url 会是派生后的图片地址。 |
status_detail.reference_derivation | 图片派生结果摘要,包括成功数、回退数、派生图地址、额外扣费和出图尺寸。 |
status_detail.stage | 更细的任务阶段,例如 submit_retry_wait、material_compliance_wait、generation_retrying、failed_refunded。 |
generation_retry | 自动重试信息。next_retry_at 是 Unix 时间戳,表示预计下次自动重试时间。 |
curl https://newapi.julai.xyz/v1/videos/history?limit=20 \
-H "Authorization: Bearer sk-你的API密钥"历史接口返回当前令牌所属用户最近的视频任务,适合客户端恢复历史任务列表。
额度不足和错误返回
如果创建任务时用户余额或令牌余额不足,接口返回 HTTP 429,不会创建任务,也不会扣费。
{
"error": {
"code": "insufficient_quota",
"message": "余额不足,本次需要 2.944000 元,当前余额 0.736000 元"
}
}如果是令牌自身额度不足,message 会是:
{
"error": {
"code": "insufficient_quota",
"message": "令牌余额不足,本次需要 2.944000 元,当前令牌余额 1.000000 元"
}
}| HTTP 状态 | code | 含义 |
|---|---|---|
401 | unauthorized | 缺少令牌、令牌无效或令牌已过期。 |
403 | forbidden | 用户/令牌禁用,或令牌未授权该模型。 |
404 | not_found | 模型不存在,或查询的任务 ID 不存在。 |
429 | insufficient_quota | 用户余额不足或令牌余额不足。 |
400 | newapi_video_error | 纯音频单独提交,或素材引用缺失。 |
400/500/502/503 | newapi_video_error | 参数、素材校验、上游临时异常等视频服务错误。 |
失败、自动重试和退款规则
视频创建会先预扣本次费用。自动重试期间不会重复扣费。只有最终失败或提交阶段不可恢复失败时,系统才会把预扣费用退回。
| 场景 | 任务状态 | 是否退款 |
|---|---|---|
| 额度不足 | HTTP 429,未创建任务 | 不扣费,也不需要退款。 |
| 提示词违规、素材明确不合规、参数错误 | failed | 已预扣则自动退回。 |
| 素材合规处理中 | running,status_detail.stage=material_compliance_wait | 等待期间不退款;超过等待上限后失败并退款。 |
| 提交阶段临时失败 | running,status_detail.stage=submit_retry_wait | 最多自动重试 5 次;全部失败后退款。 |
| 已提交后生成失败 | running 并进入 generation_retrying | 最多自动重试 5 次,不重复扣费;最终失败后退款。 |
| 手动重新提交 | 创建一个新任务 | 按新任务重新扣费;原失败任务如果已退款,会保留退款状态。 |
查询结果中如果 status_detail.stage=failed_refunded,或 message 包含“预扣费用已退回”,表示该任务已经触发退款。退款会回到用户余额;如果令牌不是无限额度,也会回到令牌余额。
Claude Code 原生教程
如果使用官方 claude 命令行,请使用 Claude Code 原生接入。这个模式不是 OpenAI 格式,Base URL 使用 https://newapi.julai.xyz;如果使用 OpenAI SDK、Cherry Studio、Chatbox,则继续使用上方 OpenAI 兼容地址。
https://newapi.julai.xyzANTHROPIC_AUTH_TOKENclaude-sonnet-4-6-dawcodehttps://newapi.julai.xyz/v1/chat/completions。安装 Node.js
打开 nodejs.org 下载 LTS 版本并安装。安装完成后重新打开 PowerShell,确认版本:
node --version
npm --version也可以使用 Chocolatey 或 Scoop:choco install nodejs,或 scoop install nodejs。
安装 Claude Code
npm install -g @anthropic-ai/claude-code
claude --version建议使用 PowerShell。遇到权限问题时,关闭当前终端后重新打开再试。
配置环境变量
临时设置,仅当前 PowerShell 窗口生效:
$env:ANTHROPIC_BASE_URL = "https://newapi.julai.xyz"
$env:ANTHROPIC_AUTH_TOKEN = "sk-你的ClaudeCode密钥"永久设置,用户级变量:
[System.Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://newapi.julai.xyz", [System.EnvironmentVariableTarget]::User)
[System.Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "sk-你的ClaudeCode密钥", [System.EnvironmentVariableTarget]::User)永久设置后需要重新打开 PowerShell 窗口。少数客户端只识别 ANTHROPIC_API_KEY 时,可额外设置同值。
开始使用
cd C:\path\to\your\project
claude --model claude-sonnet-4-6-dawcode安装 Node.js
推荐使用官网 LTS 安装包,或使用 Homebrew:
brew install node
node --version
npm --version安装 Claude Code
npm install -g @anthropic-ai/claude-code
claude --version配置环境变量
export ANTHROPIC_BASE_URL="https://newapi.julai.xyz"
export ANTHROPIC_AUTH_TOKEN="sk-你的ClaudeCode密钥"需要长期生效时,把上面两行加入 ~/.zshrc,再执行 source ~/.zshrc。
开始使用
cd /path/to/your/project
claude --model claude-sonnet-4-6-dawcode安装 Node.js
Ubuntu / Debian 可以使用 NodeSource 或发行版包管理器安装。安装后确认版本:
node --version
npm --version安装 Claude Code
npm install -g @anthropic-ai/claude-code
claude --version配置环境变量
export ANTHROPIC_BASE_URL="https://newapi.julai.xyz"
export ANTHROPIC_AUTH_TOKEN="sk-你的ClaudeCode密钥"WSL2 同样使用这组命令。需要长期生效时写入 ~/.bashrc 或 ~/.zshrc。
开始使用
cd /path/to/your/project
claude --model claude-sonnet-4-6-dawcode验证 Claude Code 接口
如果要先用接口验证密钥,可以发 Anthropic Messages 请求:
curl https://newapi.julai.xyz/v1/messages?beta=true -H "x-api-key: sk-你的ClaudeCode密钥" -H "anthropic-version: 2023-06-01" -H "content-type: application/json" -d '{
"model": "claude-sonnet-4-6-dawcode",
"max_tokens": 64,
"messages": [{"role":"user","content":"ping"}]
}'VSCode Claude 插件
如果插件读取 Claude 配置文件,可以在用户目录创建或修改 .claude/config.json:
{
"primaryApiKey": "sk-你的ClaudeCode密钥"
}不同插件对 Base URL 的支持不完全一致。如果插件提供自定义 Anthropic Base URL,请填 https://newapi.julai.xyz。
客户端接入
OpenAI SDK 通用配置
任何支持 OpenAI-compatible 的客户端都只需要两个值:Base URL 填 https://newapi.julai.xyz/v1,API Key 填控制台创建的令牌。
OPENAI_BASE_URL=https://newapi.julai.xyz/v1
OPENAI_API_KEY=sk-你的API密钥Cherry Studio / Chatbox
供应商选择 OpenAI 或 OpenAI Compatible;API 地址填 https://newapi.julai.xyz/v1;模型可以手动填写下方实测可用模型 ID。
Cline / Continue / Cursor 类工具
Provider 选择 OpenAI Compatible。Claude、Gemini、Codex 名称在这里都作为 OpenAI 兼容模型 ID 使用,只需要填写控制台创建的 API Key。
Open WebUI / LibreChat
把连接类型设为 OpenAI API,Base URL 使用 https://newapi.julai.xyz/v1。如果客户端有模型自动拉取功能,可调用 /v1/models 获取模型列表。
常用请求参数
流式输出
curl https://newapi.julai.xyz/v1/chat/completions \
-H "Authorization: Bearer sk-你的API密钥" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.5","stream":true,"messages":[{"role":"user","content":"写一段介绍"}]}'推理强度
带 -low、-medium、-high、-xhigh 后缀的模型已经封装了对应推理强度。优先直接选模型 ID,而不是额外传复杂参数。
图片生成
gpt-image-2 只支持图片接口,不支持 /v1/chat/completions。图片生成使用 /v1/images/generations,编辑图片使用 /v1/images/edits。
模型列表
curl https://newapi.julai.xyz/v1/models \
-H "Authorization: Bearer sk-你的API密钥"实测可用模型
当前模型列表已上线并完成基础连通性检测。点击模型名可复制。
Claude Code / DawCode
Claude / Kiro / 自营
Gemini
GPT / Codex
图片生成
故障排查
Unauthorized
检查 Authorization: Bearer sk-... 是否存在,令牌是否属于阡陌,是否复制了空格或换行。
模型不存在
先调用 /v1/models 确认模型 ID。不要把显示名和模型 ID 混用。
额度不足
检查账号余额、模型权限和可用额度。视频接口会返回 {"error":{"code":"insufficient_quota","message":"余额不足..."}} 或 令牌余额不足...;可先调用 GET /v1/videos/account 查看 available_cny。
服务暂不可用
通常是对应模型临时不可用或容量不足。可临时切换到上方可用的同类模型。
模型列表
GET https://newapi.julai.xyz/v1/models
Authorization: Bearer sk-你的API密钥倍率与余额
价格倍率以控制台展示为准。不同模型和分组可能有不同倍率。