YingTu Logo
Google ログインを確認しています…
Seedance ワークスペースへ戻る
REST API リファレンス

バーチャル人物素材 API

非公開 AIGC 素材を作成します。ステータスが Active になった後、返却された asset:// URI を動画生成で利用できます。

エンドポイント

Base URL

https://yingtu.ai
POST /api/seedance-assets/virtual-humans
GET /api/seedance-assets/virtual-humans/{id}

認証

YingTu または Google へのログインは不要です。LaoZhang API Key を Authorization: Bearer <LAOZHANG_API_KEY> で送信します。

ヘッダー必須説明
AuthorizationBearer 認証で送信する LaoZhang API Key。
Content-TypePOST のみ作成操作は application/json を使用します。

リクエスト

フィールド必須説明
name不可任意。素材名、最大64文字。
image_url必須の公開 HTTPS 画像 URL。公式 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 ステータスエラーコード説明再試行
400invalid_requestリクエスト本文、フィールド、または値が無効です。不可
401invalid_api_keyAPI Key がない、無効、または停止されています。不可
403resource_not_owned認証または素材がこの API Key に属していないか、公開 ID が無効です。不可
403capability_unavailableサービスアカウントで非公開人物素材の権限が有効ではありません。不可
413payload_too_largeJSON リクエスト本文が 16 KB を超えています。不可
415unsupported_media_typePOST リクエストが application/json ではありません。不可
429rate_limit_exceededAPI Key の呼び出し上限に達しました。
500internal_errorサービスがリクエストを完了できませんでした。不可
502upstream_error上流の素材または認証サービスでエラーが発生しました。
503authentication_unavailableAPI Key 検証サービスが一時的に利用できません。
503service_unavailable素材 API のサーバー設定が一時的に利用できません。
Error object
{
  "error": {
    "code": "invalid_request",
	    "message": "image_url is required.",
    "request_id": "req_01JZEXAMPLE",
    "retryable": false
  }
}

レート制限と追跡

API Key ごとに作成系 POST は1時間あたり最大12回です。GET の状態照会はカウントされません。上流権限による追加制限があります。制限時は 429 と Retry-After(秒)を返します。

成功・エラー応答には request_id が含まれます。問い合わせ時はこの値を提示し、完全な API Key は送信しないでください。

X-RateLimit-Limit: <limit>
X-RateLimit-Remaining: <remaining>
X-RateLimit-Reset: <unix-seconds>
Retry-After: <seconds>