REST API 参考
虚拟人素材 API
创建私域 AIGC 虚拟人素材。成功后返回 asset:// URI,素材变为 Active 后才能用于视频生成。
端点
Base URL
https://yingtu.aiPOST /api/seedance-assets/virtual-humansGET /api/seedance-assets/virtual-humans/{id}认证
调用者无需登录 YingTu 或 Google。接口使用 LaoZhang API Key,并仅接受 Authorization: Bearer <LAOZHANG_API_KEY>。
| 请求头 | 必填 | 说明 |
|---|---|---|
Authorization | 是 | LaoZhang API Key,使用 Bearer 认证。 |
Content-Type | 仅 POST | 创建类 POST 请求固定使用 application/json。 |
请求
| 字段 | 必填 | 说明 |
|---|---|---|
name | 否 | 可选。素材名称,最多 64 个字符。 |
image_url | 是 | 必填。可公开访问的 HTTPS 图片;官方 CreateAsset 只接收 URL。 |
创建请求
cURL
curl --request POST \
--url https://yingtu.ai/api/seedance-assets/virtual-humans \
--header "Authorization: Bearer $LAOZHANG_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"image_url": "https://cdn.example.com/avatar.webp",
"name": "brand-avatar"
}'HTTP request
POST /api/seedance-assets/virtual-humans
Content-Type: application/json
Authorization: Bearer $LAOZHANG_API_KEY
{
"image_url": "https://cdn.example.com/avatar.webp",
"name": "brand-avatar"
}响应示例
HTTP/1.1 202 Accepted
Content-Type: application/json
{
"request_id": "req_01JZEXAMPLE",
"id": "ast_eyJvcGFxdWUiOiJleGFtcGxlIn0",
"object": "seedance.asset",
"kind": "virtual_human",
"name": "brand-avatar",
"status": "Processing",
"uri": "asset://asset-20260729-example"
}代码示例
JavaScript · Node.js
const response = await fetch("https://yingtu.ai/api/seedance-assets/virtual-humans", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.LAOZHANG_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
image_url: "https://cdn.example.com/avatar.webp",
name: "brand-avatar",
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());Python · requests
import os
import requests
response = requests.post(
"https://yingtu.ai/api/seedance-assets/virtual-humans",
headers={"Authorization": f"Bearer {os.environ['LAOZHANG_API_KEY']}"},
json={
"image_url": "https://cdn.example.com/avatar.webp",
"name": "brand-avatar",
},
timeout=60,
)
response.raise_for_status()
print(response.json())查询素材状态
curl --request GET \
--url https://yingtu.ai/api/seedance-assets/virtual-humans/ast_eyJvcGFxdWUiOiJleGFtcGxlIn0 \
--header "Authorization: Bearer $LAOZHANG_API_KEY"状态响应
HTTP/1.1 200 OK
Content-Type: application/json
{
"request_id": "req_01JZEXAMPLE",
"id": "ast_eyJvcGFxdWUiOiJleGFtcGxlIn0",
"object": "seedance.asset",
"kind": "virtual_human",
"status": "Active",
"uri": "asset://asset-20260729-example",
"created_at": "2026-07-29T05:00:00Z",
"updated_at": "2026-07-29T05:01:00Z"
}Failed · HTTP 200
{
"request_id": "req_01JZEXAMPLE",
"id": "ast_eyJvcGFxdWUiOiJleGFtcGxlIn0",
"object": "seedance.asset",
"kind": "virtual_human",
"status": "Failed",
"uri": "asset://asset-20260729-example",
"failure": {
"code": "InvalidImage",
"message": "The image did not pass upstream validation."
}
}错误码
| HTTP 状态 | 错误代码 | 说明 | 可重试 |
|---|---|---|---|
| 400 | invalid_request | 请求体、字段或参数值无效。 | 否 |
| 401 | invalid_api_key | API Key 缺失、无效或已停用。 | 否 |
| 403 | resource_not_owned | 认证或素材不属于当前 API Key,或公开 ID 无效。 | 否 |
| 403 | capability_unavailable | 当前服务账号尚未开通私域人物素材权益。 | 否 |
| 413 | payload_too_large | JSON 请求体超过 16 KB。 | 否 |
| 415 | unsupported_media_type | POST 请求的 Content-Type 不是 application/json。 | 否 |
| 429 | rate_limit_exceeded | 当前 API Key 已达到调用限制。 | 是 |
| 500 | internal_error | 服务无法完成当前请求。 | 否 |
| 502 | upstream_error | 上游素材或认证服务返回错误。 | 是 |
| 503 | authentication_unavailable | API Key 验证服务暂时不可用。 | 是 |
| 503 | service_unavailable | 素材 API 的服务端配置暂时不可用。 | 是 |
Error object
{
"error": {
"code": "invalid_request",
"message": "image_url is required.",
"request_id": "req_01JZEXAMPLE",
"retryable": false
}
}限流与追踪
每个 API Key 每小时最多 12 次创建类 POST 请求;GET 查询不计入。上游权益可能另有限制。达到限制时返回 429,并通过 Retry-After 指示建议等待秒数。
所有成功和错误响应都返回 request_id。向技术支持反馈问题时请提供该值,不要提供完整 API Key。
X-RateLimit-Limit: <limit>
X-RateLimit-Remaining: <remaining>
X-RateLimit-Reset: <unix-seconds>
Retry-After: <seconds>