curl --request POST \
--url https://api.tokenlab.sh/v1/videos/assets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"asset_url": "https://example.com/reference.png",
"asset_name": "Front view",
"asset_type": "Image",
"library_type": "aigc_avatar",
"group_id": "group-20260720123456-vrt01"
}
'{
"id": "asset-20260720123456-qn7wr",
"object": "seedance.material_asset",
"group_id": "group-20260720123456-vrt01",
"library_type": "aigc_avatar",
"asset_name": "Front view",
"asset_type": "Image",
"status": "PROCESSING",
"ready": false,
"error_message": null,
"metadata": null,
"created_at": 1782998400000
}{
"error": {
"message": "model: Model is required",
"type": "invalid_request_error",
"param": "model"
},
"validation_errors": [
{
"field": "model",
"message": "Model is required"
}
]
}{
"error": {
"message": "Invalid API key provided",
"type": "invalid_api_key"
}
}{
"error": {
"message": "<string>",
"type": "unauthorized",
"code": "<string>",
"param": "<string>",
"model": "<string>",
"did_you_mean": "<string>",
"suggestions": [
{
"id": "<string>"
}
],
"alternatives": [
{
"id": "<string>",
"status": "<string>",
"tags": [
"<string>"
]
}
],
"hint": "<string>",
"retry_after": 123,
"retryable": true,
"balance_usd": 123,
"estimated_cost_usd": 123,
"supported_operations": [
"<string>"
],
"supported_parameters": [
"<string>"
],
"required_selectors": [
"<string>"
],
"optional_selectors": [
"<string>"
],
"allowed_resolutions": [
"<string>"
],
"allowed_durations": [
"<string>"
],
"allowed_aspect_ratios": [
"<string>"
],
"prompt_max_characters": 123,
"recommended_request": {},
"request_endpoint": "<string>",
"request_shape_mode": "<string>",
"status_mode": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "An internal error occurred",
"type": "server_error"
}
}{
"error": {
"message": "Seedance material library request failed",
"type": "server_error",
"code": "seedance_material_library_request_failed"
}
}Crear activo de material
Sube un activo de material de Seedance a un grupo de materiales de TokenLab.
curl --request POST \
--url https://api.tokenlab.sh/v1/videos/assets \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"asset_url": "https://example.com/reference.png",
"asset_name": "Front view",
"asset_type": "Image",
"library_type": "aigc_avatar",
"group_id": "group-20260720123456-vrt01"
}
'{
"id": "asset-20260720123456-qn7wr",
"object": "seedance.material_asset",
"group_id": "group-20260720123456-vrt01",
"library_type": "aigc_avatar",
"asset_name": "Front view",
"asset_type": "Image",
"status": "PROCESSING",
"ready": false,
"error_message": null,
"metadata": null,
"created_at": 1782998400000
}{
"error": {
"message": "model: Model is required",
"type": "invalid_request_error",
"param": "model"
},
"validation_errors": [
{
"field": "model",
"message": "Model is required"
}
]
}{
"error": {
"message": "Invalid API key provided",
"type": "invalid_api_key"
}
}{
"error": {
"message": "<string>",
"type": "unauthorized",
"code": "<string>",
"param": "<string>",
"model": "<string>",
"did_you_mean": "<string>",
"suggestions": [
{
"id": "<string>"
}
],
"alternatives": [
{
"id": "<string>",
"status": "<string>",
"tags": [
"<string>"
]
}
],
"hint": "<string>",
"retry_after": 123,
"retryable": true,
"balance_usd": 123,
"estimated_cost_usd": 123,
"supported_operations": [
"<string>"
],
"supported_parameters": [
"<string>"
],
"required_selectors": [
"<string>"
],
"optional_selectors": [
"<string>"
],
"allowed_resolutions": [
"<string>"
],
"allowed_durations": [
"<string>"
],
"allowed_aspect_ratios": [
"<string>"
],
"prompt_max_characters": 123,
"recommended_request": {},
"request_endpoint": "<string>",
"request_shape_mode": "<string>",
"status_mode": "<string>",
"request_id": "<string>"
}
}{
"error": {
"message": "An internal error occurred",
"type": "server_error"
}
}{
"error": {
"message": "Seedance material library request failed",
"type": "server_error",
"code": "seedance_material_library_request_failed"
}
}id del activo de material devuelto para la generación, no la URL de origen.
Para library_type: "aigc_avatar", group_id es opcional; TokenLab utiliza o crea el grupo de avatares virtuales predeterminado de la organización. Para library_type: "liveness_face", group_id es obligatorio y debe ser el grupo de TokenLab devuelto por Obtener resultado de validación visual.
| Tipo | Entrada admitida |
|---|---|
| Imagen | jpeg, jpg, png, webp, bmp, tiff, gif, heic, heif; ≤30 MiB; ancho y alto [300, 6000] px; relación de aspecto [0.4, 2.5]. |
| Video | mp4, mov; ≤200 MiB. |
| Audio | aac, wav, mp3; ≤15 MiB. |
ACTIVE y consulte error_message si falla el procesamiento. Las demás condiciones de medios y rostros se verifican durante el procesamiento.
La creación es asíncrona. Realice consultas a Obtener activo de material hasta que el status sea ACTIVE. Para grupos de personas reales, un grupo se asigna a una persona verificada; las subidas con múltiples rostros o un rostro que no coincida con la persona verificada pueden fallar.
project_name aísla recursos dentro de la organización autenticada. El valor predeterminado es default; use el mismo valor, respetando mayúsculas y minúsculas, para los grupos y activos relacionados. Envíelo en el cuerpo JSON para POST/PUT y en la consulta para GET/DELETE.
Ejemplo de solicitud
curl https://api.tokenlab.sh/v1/videos/assets \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-d '{"library_type":"aigc_avatar","group_id":"group-20260720123456-vrt01","asset_url":"https://example.com/reference.png","asset_type":"Image","asset_name":"Front view","project_name":"default"}'
Ejemplo de respuesta
{
"id": "asset-20260720123456-qn7wr",
"object": "seedance.material_asset",
"project_name": "default",
"group_id": "group-20260720123456-vrt01",
"library_type": "aigc_avatar",
"asset_name": "Front view",
"asset_type": "Image",
"status": "PROCESSING",
"ready": false,
"error_message": null,
"metadata": null,
"created_at": 1782998400000
}
Autorizaciones
Autenticación con API Key. Cree o gestione API keys en Dashboard > API > API Keys.
Cuerpo
URL de origen accesible públicamente para importar. TokenLab almacena el material para su uso posterior; no confíe en esta URL como la dirección de material a largo plazo.
Nombre para mostrar opcional almacenado con el activo de material.
1 - 128Image, Video, Audio Clase de biblioteca de materiales. aigc_avatar es para materiales de avatares virtuales. liveness_face es para materiales de personas reales verificadas.
aigc_avatar, liveness_face ID de grupo de materiales de TokenLab. Requerido para materiales liveness_face; opcional para aigc_avatar.
Alcance del proyecto para el activo de material. Los activos y grupos están aislados por proyecto dentro de la organización autenticada.
1 - 128Metadatos de cliente opcionales almacenados con el activo de material.
Respuesta
Activo de material creado
ID de activo de material de TokenLab. Utilice esto como material_asset_id después de que el activo se vuelva ACTIVE.
seedance.material_asset aigc_avatar, liveness_face Image, Video, Audio PROCESSING, ACTIVE, FAILED, DELETED True cuando el activo está activo y no eliminado.
ID de grupo de materiales de TokenLab que posee este activo de material.
Alcance del proyecto para este activo de material.
Error de procesamiento terminal seguro para el público. Los fallos permanentes de validación de origen incluyen la restricción de dimensión rechazada.
Marca de tiempo Unix de cuando se creó el registro del activo de material.
Marca de tiempo Unix de cuando se actualizó por última vez el registro del activo de material.