Ir al contenido principal

API de recurso de personaje virtual

Crea un recurso AIGC privado. El URI asset:// puede usarse en vídeo cuando el estado sea Active.

Endpoint

Base URL

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

Autenticación

El cliente no inicia sesión en YingTu ni Google. Envía la API Key de LaoZhang mediante Authorization: Bearer <LAOZHANG_API_KEY>.

CabeceraObligatorioDescripción
AuthorizationSíAPI Key de LaoZhang mediante autenticación Bearer.
Content-TypeSolo POSTLas operaciones de creación usan application/json.

Solicitud

CampoObligatorioDescripción
nameNoNombre opcional, hasta 64 caracteres.
image_urlSíURL HTTPS pública obligatoria. CreateAsset oficial solo acepta URL.

Solicitud de creación

ShellcURL
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"
  }'
HTTPHTTP 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"
}

Ejemplo de respuesta

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

Ejemplos de código

Node.jsJavaScript · 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());
PythonPython · 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())

Consultar estado del recurso

Shell
curl --request GET \
	  --url https://yingtu.ai/api/seedance-assets/virtual-humans/ast_eyJvcGFxdWUiOiJleGFtcGxlIn0 \
	  --header "Authorization: Bearer $LAOZHANG_API_KEY"
HTTPRespuesta de estado
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"
}
JSONFailed · 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."
  }
}

Errores

Estado HTTPCódigo de errorDescripciónReintentable
400invalid_requestEl cuerpo, un campo o un valor no son válidos.No
401invalid_api_keyLa API Key falta, no es válida o está deshabilitada.No
403resource_not_ownedLa verificación o el recurso no pertenece a esta API Key, o el ID público no es válido.No
403capability_unavailableLa cuenta de servicio no tiene habilitados los recursos privados de personas.No
413payload_too_largeEl cuerpo JSON supera los 16 KB.No
415unsupported_media_typeLa solicitud POST no usa application/json.No
429rate_limit_exceededLa API Key alcanzó su límite de solicitudes.Sí
500internal_errorEl servicio no pudo completar la solicitud.No
502upstream_errorEl servicio de recursos o verificación devolvió un error.Según retryable
503authentication_unavailableLa validación de la API Key no está disponible temporalmente.Sí
503service_unavailableLa configuración del servidor de la API de recursos no está disponible temporalmente.Sí
JSONError object
{
  "error": {
    "code": "invalid_request",
	    "message": "image_url is required.",
    "request_id": "req_01JZEXAMPLE",
    "retryable": false
  }
}

Límites y seguimiento

Cada API Key admite hasta 12 solicitudes POST por hora, sumando todos los endpoints e incluidas las rechazadas; las consultas GET no cuentan. Los derechos del proveedor pueden añadir límites. Al superar el límite se devuelve 429 con Retry-After en segundos.

Todas las respuestas incluyen request_id. Inclúyelo al contactar con soporte, pero nunca envíes la API Key completa.

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