Skip to main content

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

FieldTypeRequiredDescription
filefileyesAudio 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

  • id is the assetId used when creating a Task
  • link is 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
  • url and assetId are mutually exclusive inputs

Unsupported operations

The Assets API intentionally does not support:

  • PUT /assets
  • DELETE /assets

Assets are automatically cleaned up after expiration.


Error responses

statusCodeerrormessage
400Bad RequestInsufficient credits
404Not FoundCannot 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.