List Available Models - AudioShake Developers

Documentation Index

Fetch the complete documentation index at: /llms.txt

Use this file to discover all available pages before exploring further.

The GET /models endpoint returns every AudioShake model available to your account, along with its category, pricing, accepted input formats, and output formats. Use it to discover models programmatically instead of hardcoding a list — the id field is exactly the value you pass as model when creating a Task.

Request

Authenticate with your x-api-key header, the same as every other endpoint.

cURL

curl --location 'https://api.audioshake.ai/models' \
--header 'x-api-key: your_api_key'

Python

import requests

API_KEY = "your_api_key"

models = requests.get(
    "https://api.audioshake.ai/models",
    headers={"x-api-key": API_KEY}
).json()["models"]

for m in models:
    price = m.get("creditsPerMinute", "—")
    print(f"{m['id']}: {m['name']} ({price} credits/min)")

JavaScript

const API_KEY = "your_api_key";

const res = await fetch("https://api.audioshake.ai/models", {
  headers: { "x-api-key": API_KEY }
});
const { models } = await res.json();

for (const m of models) {
  console.log(`${m.id}: ${m.name} (${m.creditsPerMinute ?? "—"} credits/min)`);
}

Response

The response is a { "models": [...] } envelope. Each model looks like this:

{
  "models": [
    {
      "id": "bass",
      "name": "Bass",
      "category": "instrumentStemSeparation",
      "description": "Low-end bass sources (electric bass, double bass, bass synth).",
      "access": "enabled",
      "creditsPerMinute": 1,
      "inputs": [
        {
          "id": "media",
          "description": "Source audio or video file",
          "required": true,
          "taskFields": ["url", "assetId"],
          "formats": {
            "audio": ["wav", "aiff", "flac", "mp3", "aac", "m4a"],
            "video": ["mp4", "mov"]
          }
        }
      ],
      "outputFormats": ["aiff", "wav", "flac", "mp3", "mp4"]
    }
  ]
}

Fields

Field Description
id Stable identifier. Pass this as model in Create Task.
name Human-readable label.
category Grouping such as instrumentStemSeparation, speechSeparation, postProduction, copyrightCompliance, or lyricTranscription.
description One-sentence summary of what the model does.
access enabled if your account can use the model. Gated models are flagged request_access and omit pricing.
creditsPerMinute Your account’s rate. Omitted for request_access models.
inputs Accepted inputs. Each entry lists the taskFields you can set and the formats allowed.
outputFormats Formats you can request in a Task’s formats array.
limits Present only when a model has constraints, e.g. maxInputDurationSeconds.
supportedLanguages ISO codes, present only on language-aware models (transcription, alignment).

Null and empty values are omitted, so optional fields like limits, supportedLanguages, and (for gated models) creditsPerMinute won’t always be present. Check for a field before reading it.

Use a model in a Task

Take any id from the response and use it directly when creating a Task:

curl --location 'https://api.audioshake.ai/tasks' \
--header 'Content-Type: application/json' \
--header 'x-api-key: your_api_key' \
--data '{
    "url": "https://your-file.com/song.mp3",
    "targets": [
        { "model": "bass", "formats": ["mp3"] }
    ]
}'