asset_id. You can then directly reference this asset_id in any generation request without needing to pass the original file URL each time.
The Asset Library is divided into three types of assets for different scenarios:
| Type | Description | Who Can Use |
|---|---|---|
| Official Assets | Official assets provided by ByteDance, preloaded on the platform | Authorized customers only |
| Virtual Assets | User-created asset libraries with free upload and management | All users |
| Real Person Assets | Assets that require real-person verification before uploading | Users who have completed real-person verification |
Prerequisites
Before calling any Asset Library API, complete the following steps:- Sign up / Log in: Register and log in at powertokens.ai
- Get an API Key: Go to the API Keys management page, click to create a new key, copy and store it securely (it will not be visible again after closing the page)
- Enable Asset Library: Go to the Asset Library page, read and agree to the Asset Library User Agreement before using
Note: Using the Asset Library does not require a top-up — it’s free to use once enabled. However, if you need to call generation models like Seedance 2.0, you will need to top up first.
Authentication
All endpoints are authenticated via HTTP headers in the following format:Supported File Types
| Type | Format | Limits |
|---|---|---|
| Image | JPEG, PNG, WebP, BMP, TIFF, GIF, HEIC | < 30 MB, aspect ratio 0.4–2.5, single side 300–6000 px |
| Video | MP4, MOV | 480p or 720p, duration 2–15 seconds, ≤ 50 MB, 24–60 fps |
| Audio | WAV, MP3 | Duration 2–15 seconds, ≤ 15 MB |
1. Official Assets
Official Assets are provided by ByteDance and include high-quality assets preloaded on the platform. Official assets belong to the virtual asset type (group_type: 0), but are only visible to authorized customers — ordinary users will not see official asset groups when calling the API.
Workflow
1.1 Get Official Asset Groups
Endpoint:POST /v1/asset/groups/list
Official asset groups share group_type: 0 with user-created virtual asset groups. If you are not an authorized customer, the returned list will not include official asset groups.
1.2 Get Asset List Under a Group
After obtaining an officialgroup_id, query all assets under that group:
Endpoint: POST /v1/asset/groups/assets
asset_id, which can be used directly in generation requests.
Supported filter parameters:
| Parameter | Type | Description |
|---|---|---|
type | integer | Filter by type: 1=Image, 2=Video, 3=Audio |
status | integer | Filter by status: 1=Under review, 2=Succeeded, 3=Failed |
name | string | Fuzzy search by name |
asset_id | string | Exact search by asset ID |
2. Virtual Assets
Virtual Assets are user-created asset libraries where you can freely create asset groups, upload files, and manage assets.Workflow
2.1 Create a Virtual Asset Group
Endpoint:POST /v1/asset/groups/create
2.2 Upload a File to an Asset Group
Endpoint:POST /v1/asset/upload
Content-Type: multipart/form-data
You can also omitResponse:group_idand passgroup_nameinstead — the system will automatically create or reuse a virtual group with the same name.
2.3 Get Asset ID
Uploading is asynchronous. Use the returnedtask_id to poll and obtain a permanent asset_id:
Endpoint: GET /v1/asset/jobs/get-asset-id?task_id=<TASK_ID>
Note: This endpoint does not require authentication — no Authorization header is needed.
Tip: If the file is still processing, it’s recommended to poll every 2–3 seconds until an asset_id is returned. Small images usually complete within seconds; videos may take longer.
2.4 Manage Asset Groups
List virtual asset groups:POST /v1/asset/groups/rename
POST /v1/asset/groups/delete
3. Real Person Assets
Real Person Assets require completing real-person verification first. Only after successful verification can you upload assets of that real person. This ensures compliance and authorization for asset usage.Workflow
3.1 Get Real-Person Authorization URL
Endpoint:POST /v1/asset/get-authorize-url
3.2 Complete Real-Person Verification
Open the returned authorization URL in a browser and follow the on-screen instructions to complete identity verification. Once verified, the system will automatically create a real-person asset group.3.3 Query Real-Person Asset Group to Get group_id
After successful verification, use the Asset Group List endpoint (the same endpoint used in 1. Official Assets) to query your real-person asset group and obtain thegroup_id:
group_type and real_human_type parameter descriptions:
| Parameter | Value | Description |
|---|---|---|
group_type | 0 | Virtual asset group (default); official assets also belong to this type |
group_type | 1 | Real person asset group |
real_human_type | 1 | Real-person group created by yourself |
real_human_type | 2 | Real-person group obtained through verification authorization |
list and take its group_id for the next upload step.
3.4 Upload Real Person Assets
After obtaining the real-person asset group’sgroup_id, upload that real person’s assets:
asset_id, using it in generation) are the same as Virtual Assets — see step 3 in Section 2.
Using in Generation Requests
Once you have anasset_id (regardless of the asset type), you can reference it in any generation request that supports media input:
Using in Playground
In the Playground interface, uploaded assets appear in the Asset Library panel. Type@ in the prompt input area to browse and insert assets. The interface automatically adapts based on the selected model:
- Reference image models (e.g.,
wan2.7-r2v): freely@any number of reference images in the prompt - Keyframe models (e.g.,
wan2.1-kf2v): displays two fixed slots — Start Frame and End Frame — each slot accepts one@image
Complete Workflow — Python
Below is a complete example from creating a virtual asset group to generation:API Quick Reference
Base URL:https://powertokens.ai/api— ensure all requests include the/apiprefix; do not concatenate directly topowertokens.ai/v1/....
Asset Operations
Upload File — POST /v1/asset/upload (API Reference)
Get Asset ID — GET /v1/asset/jobs/get-asset-id (API Reference)
This endpoint does not require authentication.
Get Real-Person Authorization URL — POST /v1/asset/get-authorize-url (API Reference)
Asset Group Management
Create Virtual Asset Group — POST /v1/asset/groups/create (API Reference)
List Asset Groups — POST /v1/asset/groups/list (API Reference)
List Assets in Group — POST /v1/asset/groups/assets (API Reference)
Rename Asset Group — POST /v1/asset/groups/rename (API Reference)
Delete Asset Group — POST /v1/asset/groups/delete (API Reference)
For the complete API reference, visit docs.powertokens.ai