Asset Management
Asset management lets video generation and other scenarios reference image/video/audio assets. The platform provides two sets of asset APIs:
| API | Path | Authentication | Use case |
|---|---|---|---|
| Proprietary asset library | /api/business/v1/assets | API key or JWT | Not yet in the public OpenAPI; not a standalone integration entry |
| Volcengine-compatible assets | /api/ark/* | Volcengine V4 signing | Volcengine SDK migration |
The proprietary asset library is not yet part of the public OpenAPI. The content below only describes existing business flows and must not be treated as a standalone integration example that can be completed from the public docs alone. For new integrations, contact SilvaMux first to confirm permissions and contracts. The Volcengine-compatible asset APIs can be integrated against the public
/api/arkOpenAPI contract.
On this page:
Proprietary Asset Library
Base path /api/business/v1, authenticated with Authorization: Bearer sk_live_... or JWT.
Data Model (AssetView)
{
"id": "AST-01JQ8Y7P8R6L7S9T0U1V2W3X4Y",
"url": "https://example.com/image.png",
"asset_type": "Image",
"name": "cover-image",
"asset_url": "asset://asset-123456",
"status": "processing",
"created_at": "2026-03-27T10:00:00Z"
}
| Field | Description |
|---|---|
id | Asset ID |
url | Asset download URL. Once active, a signed (time-limited) volcengine download URL is returned and auto-refreshed by the platform when expired; while processing, the original asset URL is returned |
asset_type | Asset type (Image/Video/Audio) |
name | Asset name |
asset_url | Asset reference, format asset://<asset-id>, used by video generation |
status | processing, active, failed, timeout; only active is usable |
Endpoints
| Method | Path | Description |
|---|---|---|
POST | /assets | Create an asset (register a public URL) |
GET | /assets | List assets (paginated) |
GET | /assets/{asset_id} | Get a single asset |
Creating an Asset
curl -X POST https://www.silvamux.com/api/business/v1/assets \
-H "Authorization: Bearer $SILVAMUX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/image.png",
"asset_type": "Image",
"name": "cover-image"
}'
| Field | Required | Description |
|---|---|---|
url | Yes | Public URL of the asset |
asset_type | Yes | Image, Video, Audio |
name | No | Asset name; derived from the URL when omitted |
A successful create returns 201 with an AssetView body. New assets usually start as processing and later become active, failed, or timeout. The backend polls processing assets every 5 seconds; assets still not ready 24 hours after creation are marked timeout.
Listing Assets
curl "https://www.silvamux.com/api/business/v1/assets?limit=20" \
-H "Authorization: Bearer $SILVAMUX_API_KEY"
| Parameter | Description |
|---|---|
limit | Page size, 1–100, default 20 |
cursor | Pagination cursor; omit on the first call |
Getting a Single Asset
curl "https://www.silvamux.com/api/business/v1/assets/AST-01JQ8Y7P8R6L7S9T0U1V2W3X4Y" \
-H "Authorization: Bearer $SILVAMUX_API_KEY"
Commonly used to poll the asset status until it becomes active.
Minimal Call Flow
- Prepare a publicly accessible asset URL
POST /assetsto create it and getidandasset_url- Poll
GET /assets/{id}untilstatusbecomesactive - Reference
asset_urlin video generation
Referencing a non-
activeasset returnsInvalidParameter.asset_status. Make sure the asset isactivebefore using it in video generation.
Volcengine-Compatible API
Compatible with the Volcengine asset management operations listed on this page. Customers migrating from Volcengine can keep using the official Volcengine SDKs, pointing the access address at this platform and swapping credentials for platform-issued AK/SK.
| Item | Value |
|---|---|
| Endpoint | https://www.silvamux.com/api/ark |
| Region | cn-beijing |
| Service | ark |
| Authentication | Volcengine V4 signing with platform-issued AK/SK |
| Invocation | POST /api/ark?Action=<Action>&Version=2024-01-01 |
Preparation
- Console → Credentials → create a Volcengine compatible (AK/SK) credential; the AK and SK are returned once (the SK is visible only then).
- AK/SK are bound to the organization; the project is selected via the
ProjectNamefield.
SDK Configuration
In the asset client of the official Volcengine SDK, change:
| Config | Value |
|---|---|
| Endpoint | https://www.silvamux.com/api/ark |
| Region | cn-beijing |
| Access Key | Platform-issued AK |
| Secret Key | Platform-issued SK |
The exact client class names and initialization follow the Volcengine SDK version you use. This repository does not ship a standalone client named ArkAssetClient.
Supported Operations
Request body field names match Volcengine (camelCase, capitalized).
Asset groups (AssetGroup): CreateAssetGroup (AIGC only; backfills the organization-level shared Volcengine group id on creation), GetAssetGroup, ListAssetGroups, UpdateAssetGroup, DeleteAssetGroup. ListAssetGroups takes an optional Filter.GroupType, default AIGC (lists only AIGC groups); pass LivenessFace to list real-person groups; other values return InvalidParameter.GroupType. DeleteAssetGroup on a real-person group also deletes the upstream Volcengine real-person group (errors out if provider_group_id is missing); AIGC groups only clear local records (shared groups are not deleted).
Assets: CreateAsset (GroupId+URL+AssetType+Name, optional GroupType), GetAsset, ListAssets, UpdateAsset, DeleteAsset. AssetType can be Image/Video/Audio.
CreateAsset routes the upstream group automatically by the target group's type: pointing at an AIGC group uploads through the normal AIGC asset pipeline (into the organization-level AIGC Volcengine group); pointing at a LivenessFace group returned by the CreateVisualValidateSession + GetVisualValidateResult flow goes through the real-person asset pipeline, with the upstream real-person group id resolved internally — clients never need to know it. See Liveness Verification for the full flow.
An empty ProjectName or default uses the default project; other values are matched exactly by project name.
Important Limits
- Historical assets are not visible: assets previously uploaded through the Volcengine console or other accounts cannot be accessed through this API; they must be re-uploaded.
- Asset types:
CreateAssetpointing at an AIGC group handles normal AIGC assets (images/videos/audio); real-person assets (LivenessFace) require completing liveness verification viaCreateVisualValidateSession+GetVisualValidateResultfirst, then uploading to the returned LivenessFace group — the platform routes by group type automatically (see Liveness Verification). CreateAssetrequires a publicly accessible asset URL; the platform fetches and ingests it.
Error Codes
| Code | Meaning |
|---|---|
InvalidSignature | Signature verification failed (wrong AK/SK, tampered request, or excessive clock skew) |
InvalidAction | Unsupported action |
MissingParameter.* | Missing required field |
InvalidParameter.* | Invalid field value |
NotFound.asset_id / NotFound.project | Asset / project not found |
SubscriptionRequired | The organization has not enabled the capability |
InternalError | Internal error; note the RequestId and contact support |
Referencing Assets in Video Generation
Once an asset is active, reference it in video generation's content via asset_url (asset://...):
{
"model": "<MODEL_CALL_NAME>",
"content": [
{"type": "video_url", "video_url": "asset://asset-123456"},
{"type": "text", "text": "Make the character in the frame dance"}
]
}
Migration Notes (Volcengine → SilvaMux)
| Capability | Volcengine | SilvaMux | Notes |
|---|---|---|---|
| Chat (Doubao) | /api/v3/chat/completions | POST /api/v3/chat/completions | Protocol compatible — change the base URL + key; use the platform call name for model |
| Video generation | /contents/generations/tasks | POST /api/v3/contents/generations/tasks | Platform API + API key, no V4 signing |
| Asset management | Volcengine official API | POST /api/ark/* (this page) or /api/business/v1/assets | Two options |
- Video generation uses the API key, not V4 signing. V4 signing is only for the asset APIs on this page.
- API keys (
sk_live_) and AK/SK are created separately in the console and are different credentials. modeluses the real call name shown by the Model Plaza or the model list, not a Volcengine endpoint ID.- Video and 3D tasks support task lists, single-task queries, and a
callback_urlat creation; fields and authentication follow the public OpenAPI contract.