阡陌 API 开发者中心

使用教程

查看模型可用性与自助检测

这里是 newapi.julai.xyz 的调用说明。你可以用 OpenAI 兼容格式接入 GPT、Claude、Gemini、图片生成和 Seedance 视频生成模型,所有 API Key 都在控制台创建和管理。

Base URLhttps://newapi.julai.xyz/v1
更新时间2026-05-17 CST

API 信息

1

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密钥
2

Claude Code 原生接口

适用于官方 claude 命令行和支持 Anthropic 原生协议的工具。

Base URL: https://newapi.julai.xyz
API Key:  sk-你的ClaudeCode密钥
Header:   x-api-key: sk-你的ClaudeCode密钥
3

常用端点

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 中转站

C

环境变量

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密钥
T

图文教程

Codex 接入 GPT 中转站的图文教程:

https://mp.weixin.qq.com/s/3kRzcxhw2L6S96dpn3bmgg

Codex 只需要填写控制台创建的 API Key。

1

创建 API Key

打开 控制台,登录后进入令牌页面创建一个新令牌。令牌只会显示一次,请妥善保存。

这里填写控制台生成的 API Key。

2

PowerShell 临时变量

只在当前 PowerShell 窗口生效,适合先测试:

$env:OPENAI_BASE_URL = "https://newapi.julai.xyz/v1"
$env:OPENAI_API_KEY = "sk-你的API密钥"

运行 Codex 或其他 OpenAI-compatible 客户端前,先在同一个窗口执行上面两行。

3

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 或终端,设置后需要完全关闭并重新打开,程序才会读取新变量。

4

图形界面设置

不想用命令时,可以按这个路径操作:

Win + S 搜索 环境变量,打开 编辑系统环境变量,点击 环境变量,在 用户变量 中新建:

变量名: OPENAI_BASE_URL
变量值: https://newapi.julai.xyz/v1

变量名: OPENAI_API_KEY
变量值: sk-你的API密钥
5

验证变量和接口

重新打开 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_URLANTHROPIC_AUTH_TOKEN

1

创建 API Key

在控制台创建 API Key,并确认账号有可用余额和对应模型权限。

2

写入 Shell 环境

export OPENAI_BASE_URL="https://newapi.julai.xyz/v1"
export OPENAI_API_KEY="sk-你的API密钥"

可以把上面的两行加入 ~/.zshrc,然后执行 source ~/.zshrc

3

运行请求

curl "$OPENAI_BASE_URL/models"   -H "Authorization: Bearer $OPENAI_API_KEY"
1

准备密钥

从控制台复制自己的 API Key。

2

配置变量

export OPENAI_BASE_URL="https://newapi.julai.xyz/v1"
export OPENAI_API_KEY="sk-你的API密钥"
3

测试聊天接口

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":"你好"}]}'

接口示例

A

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);
PY

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)
B

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
  }'
C

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_jsondata[].url。图片额度/限制错误表示图片服务额度不足,不是 GPT 聊天推理额度不足。

D

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 显式关闭。

V

创建视频任务

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"}
    ]
  }'

推荐使用 referencesalias 字段不要带 @;提示词里用 @图片1@视频1@音频1 精确绑定。提示词引用了某个 @图片1,但 references 里没有同名素材时,接口会返回 400,避免生成时漏绑参考图。reference_derivation_enabled 默认就是 true,只对图片参考生效。

Q

查询结果

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"
  }
}
SSE

视频流式进度

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查询过程出错。
timeoutSSE 连接超时,客户端应重新订阅。

如果收到 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。如果提交了音频参考,必须至少再带一张图片或一个视频,不能只单独提交音频。

U

上传素材后复用

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 是数组,每个素材至少包含 typeurltype 可填 imagevideoaudioalias 用于在提示词中绑定素材,例如 @图片1@视频1@音频1

{
  "type": "image",
  "url": "https://example.com/person.png",
  "alias": "图片1",
  "name": "人物参考"
}
字段是否必填说明
type必填imagevideoaudio
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
progress0-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": ""
  }
}
字段说明
statusrunning / queued / pending 表示处理中;success 表示完成;failederrorcancelledcanceledtimeout 表示终态失败。
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_waitmaterial_compliance_waitgeneration_retryingfailed_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含义
401unauthorized缺少令牌、令牌无效或令牌已过期。
403forbidden用户/令牌禁用,或令牌未授权该模型。
404not_found模型不存在,或查询的任务 ID 不存在。
429insufficient_quota用户余额不足或令牌余额不足。
400newapi_video_error纯音频单独提交,或素材引用缺失。
400/500/502/503newapi_video_error参数、素材校验、上游临时异常等视频服务错误。
退款

失败、自动重试和退款规则

视频创建会先预扣本次费用。自动重试期间不会重复扣费。只有最终失败或提交阶段不可恢复失败时,系统才会把预扣费用退回。

场景任务状态是否退款
额度不足HTTP 429,未创建任务不扣费,也不需要退款。
提示词违规、素材明确不合规、参数错误failed已预扣则自动退回。
素材合规处理中runningstatus_detail.stage=material_compliance_wait等待期间不退款;超过等待上限后失败并退款。
提交阶段临时失败runningstatus_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 兼容地址。

Claude Code Base URLhttps://newapi.julai.xyz
认证变量ANTHROPIC_AUTH_TOKEN
推荐模型claude-sonnet-4-6-dawcode
Claude Code 原生模式需要 Claude Code 专用 API Key。OpenAI-compatible 客户端使用控制台 API Key 调用 https://newapi.julai.xyz/v1/chat/completions
1

安装 Node.js

打开 nodejs.org 下载 LTS 版本并安装。安装完成后重新打开 PowerShell,确认版本:

node --version
npm --version

也可以使用 Chocolatey 或 Scoop:choco install nodejs,或 scoop install nodejs

2

安装 Claude Code

npm install -g @anthropic-ai/claude-code
claude --version

建议使用 PowerShell。遇到权限问题时,关闭当前终端后重新打开再试。

3

配置环境变量

临时设置,仅当前 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 时,可额外设置同值。

4

开始使用

cd C:\path\to\your\project
claude --model claude-sonnet-4-6-dawcode
1

安装 Node.js

推荐使用官网 LTS 安装包,或使用 Homebrew:

brew install node
node --version
npm --version
2

安装 Claude Code

npm install -g @anthropic-ai/claude-code
claude --version
3

配置环境变量

export ANTHROPIC_BASE_URL="https://newapi.julai.xyz"
export ANTHROPIC_AUTH_TOKEN="sk-你的ClaudeCode密钥"

需要长期生效时,把上面两行加入 ~/.zshrc,再执行 source ~/.zshrc

4

开始使用

cd /path/to/your/project
claude --model claude-sonnet-4-6-dawcode
1

安装 Node.js

Ubuntu / Debian 可以使用 NodeSource 或发行版包管理器安装。安装后确认版本:

node --version
npm --version
2

安装 Claude Code

npm install -g @anthropic-ai/claude-code
claude --version
3

配置环境变量

export ANTHROPIC_BASE_URL="https://newapi.julai.xyz"
export ANTHROPIC_AUTH_TOKEN="sk-你的ClaudeCode密钥"

WSL2 同样使用这组命令。需要长期生效时写入 ~/.bashrc~/.zshrc

4

开始使用

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"}]
  }'
VS

VSCode Claude 插件

如果插件读取 Claude 配置文件,可以在用户目录创建或修改 .claude/config.json

{
  "primaryApiKey": "sk-你的ClaudeCode密钥"
}

不同插件对 Base URL 的支持不完全一致。如果插件提供自定义 Anthropic Base URL,请填 https://newapi.julai.xyz

客户端接入

1

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密钥
2

Cherry Studio / Chatbox

供应商选择 OpenAI 或 OpenAI Compatible;API 地址填 https://newapi.julai.xyz/v1;模型可以手动填写下方实测可用模型 ID。

3

Cline / Continue / Cursor 类工具

Provider 选择 OpenAI Compatible。Claude、Gemini、Codex 名称在这里都作为 OpenAI 兼容模型 ID 使用,只需要填写控制台创建的 API Key。

4

Open WebUI / LibreChat

把连接类型设为 OpenAI API,Base URL 使用 https://newapi.julai.xyz/v1。如果客户端有模型自动拉取功能,可调用 /v1/models 获取模型列表。

常用请求参数

S

流式输出

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":"写一段介绍"}]}'
R

推理强度

-low-medium-high-xhigh 后缀的模型已经封装了对应推理强度。优先直接选模型 ID,而不是额外传复杂参数。

I

图片生成

gpt-image-2 只支持图片接口,不支持 /v1/chat/completions。图片生成使用 /v1/images/generations,编辑图片使用 /v1/images/edits

M

模型列表

curl https://newapi.julai.xyz/v1/models \
  -H "Authorization: Bearer sk-你的API密钥"

实测可用模型

当前模型列表已上线并完成基础连通性检测。点击模型名可复制。

Claude Code / DawCode

Claude / Kiro / 自营

Gemini

GPT / Codex

图片生成

故障排查

401

Unauthorized

检查 Authorization: Bearer sk-... 是否存在,令牌是否属于阡陌,是否复制了空格或换行。

404

模型不存在

先调用 /v1/models 确认模型 ID。不要把显示名和模型 ID 混用。

429

额度不足

检查账号余额、模型权限和可用额度。视频接口会返回 {"error":{"code":"insufficient_quota","message":"余额不足..."}}令牌余额不足...;可先调用 GET /v1/videos/account 查看 available_cny

500

服务暂不可用

通常是对应模型临时不可用或容量不足。可临时切换到上方可用的同类模型。

模型列表

GET https://newapi.julai.xyz/v1/models
Authorization: Bearer sk-你的API密钥
¥

倍率与余额

价格倍率以控制台展示为准。不同模型和分组可能有不同倍率。