Getting Started with Tasks API
The AudioShake Tasks API lets you submit a single request that runs one or more AI models—such as instrument stem separation, music removal, dialogue isolation, or lyric transcription—on the same piece of media.
A Task groups these operations into a unified workflow, making it easy to process audio or video and retrieve all results from one place.
1. Setup your account
- Visit the AudioShake Dashboard.
- Create an account and navigate to Settings → API Keys.
- Generate an API Key—be sure to save it.
- Purchase credits to begin using the API.
Upload a file (Optional)
To create a Task, you need an input media asset. You can either provide an https url or upload a file directly and reference it by assetId.
Uploading files is useful for testing or local workflows and does not require third‑party hosting. Uploaded assets automatically expire after 72 hours.
- Upload a file using the Assets API
- Use the returned
assetIdwhen creating a Task
Request:
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'
Response:
{
"id": "<asset-id>", // assetId
"format": "mp3",
"link": "<url-to-file>",
"name": "test.mp3"
}
Learn more in the Assets documentation.
2. Create your first Task
This Task will target Vocal and Instrumental separation, returning stems for both.
Request:
curl -X POST "https://api.audioshake.ai/tasks" \
-H "Content-Type: application/json" \
-H "x-api-key: $AUDIOSHAKE_API_KEY" \
-d '{
"url": "https://demos.audioshake.ai/demo-assets/shakeitup.mp3",
"targets": [
{ "model": "vocals", "formats": ["wav"] },
{ "model": "instrumental", "formats": ["wav"] }
]
}'
3. Check Task status
Tasks are processed asynchronously. Register a webhook to receive notifications, or, simply poll the Task to check it's status.
curl -X GET "https://api.audioshake.ai/tasks/<task-id>" \
-H "x-api-key: $AUDIOSHAKE_API_KEY"
4. Retrieve Results
Completed Tasks return statuses and download URLs for each target.
{
...
"targets": [
{
"model": "vocals",
"output": [
{
"model": "vocals",
"status": "completed", // processing if not completed
"link": "https://cdn.audioshake.ai/.../vocals.wav",
...
}
],
...
},
{
"model": "instrumental",
"output": [
{
"name": "instrumental",
"status": "completed",
"link": "https://cdn.audioshake.ai/.../instrumental.wav",
...
}
],
...
}
]
}
⸻
Need help? Contact support@audioshake.ai