Assets API
Assets let you upload audio files directly to AudioShake and reference them when creating Tasks—no public hosting required.
Uploads are designed for testing, evaluation, and integration, not long-term storage. All uploaded files expire and are permanently deleted after 72 hours.
Base URL
https://api.audioshake.ai
Authentication
All Assets endpoints use API key authentication.
x-api-key: <AUDIOSHAKE_API_KEY>
API keys are managed in the AudioShake Dashboard → Settings.
Access Rules & Expiration
Upload access
You may upload assets only if either:
- Your account has a positive credit balance, OR
- You have an Enterprise account without credit-based billing
Creating an API account does not automatically grant upload access.
Expiration
- Assets automatically expire after 72 hours
- Expired assets are permanently deleted
Create an asset
- Method / Path:
POST /assets - Auth:
x-api-key - Content-Type:
multipart/form-data
Purpose: Upload a file and receive an assetId for use with the Tasks API.
Request
Headers
x-api-key: <AUDIOSHAKE_API_KEY>
Content-Type: multipart/form-data
Form fields
| Field | Type | Required | Description |
|---|---|---|---|
file | file | yes | Audio file to upload |
cURL
curl -X POST "https://api.audioshake.ai/assets" \
-H "accept: application/json" \
-H "x-api-key: $AUDIOSHAKE_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F 'file=@"test.mp3";type=audio/mp3'
200 OK
{
"id": "cmkd41zsb019001pvdcdg13ec",
"format": "mp3",
"link": "https://cdn.audioshake.ai/.../sourcefile?...",
"name": "test.mp3"
}
Response notes
idis theassetIdused when creating a Tasklinkis a temporary, signed URL to the uploaded source file
List assets
- Method / Path:
GET /assets - Auth:
x-api-key
Purpose: Return all assets for the authenticated account.
cURL
curl -X GET "https://api.audioshake.ai/assets" \
-H "accept: application/json" \
-H "x-api-key: $AUDIOSHAKE_API_KEY"
200 OK
[
{
"id": "cmkd41zsb019001pvdcdg13ec",
"format": "mp3",
"name": "lead_backing_test.mp3"
},
{
"id": "cmkcy8d3j001401obey6pfreu",
"format": "mp3",
"name": "lead_backing_test.mp3"
}
]
Get an asset by ID
- Method / Path:
GET /assets/{id} - Auth:
x-api-key
Purpose: Retrieve metadata for a single asset.
cURL
curl -X GET "https://api.audioshake.ai/assets/cmkd41zsb019001pvdcdg13ec" \
-H "accept: application/json" \
-H "x-api-key: $AUDIOSHAKE_API_KEY"
200 OK
{
"id": "cmkd41zsb019001pvdcdg13ec",
"mimeType": "audio/mp3",
"format": "mp3",
"link": "https://cdn.audioshake.ai/.../sourcefile?...",
"name": "lead_backing_test.mp3"
}
Using an asset with Tasks
When creating a Task, you may supply an assetId instead of a public url.
curl -X POST "https://api.audioshake.ai/tasks" \
-H "x-api-key: $AUDIOSHAKE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"assetId": "cmkd41zsb019001pvdcdg13ec",
"targets": [
{ "model": "vocals", "formats": ["wav"] }
]
}'
- The referenced asset is used as the input for all targets in the Task
urlandassetIdare mutually exclusive inputs
Unsupported operations
The Assets API intentionally does not support:
PUT /assetsDELETE /assets
Assets are automatically cleaned up after expiration.
Error responses
| statusCode | error | message |
|---|---|---|
| 400 | Bad Request | Insufficient credits |
| 404 | Not Found | Cannot find asset |
Insufficient credits
{
"statusCode": 400,
"error": "Bad Request",
"message": "Insufficient credits"
}
Upload access requires available credits or a billing exemption. Credits can be purchased in the AudioShake Dashboard.