# List available music engines

List the enabled Aitronos music engines with their capabilities. Any authenticated user may read the catalog — generation is gated separately by the `USE_MUSIC_GENERATION` capability.

Returns the engines available to the caller, each with its maximum track length, vocal/stem/lyrics support, supported languages, and truthful licence class.

## Returns

An object with an `engines` array. Each engine object contains:

**`engine_key`** string

Internal engine identifier to pass when creating a generation job.

**`name`** string

Aitronos-branded engine name for display.

**`descriptor`** string

Short capability summary for display.

**`max_duration_seconds`** integer

Maximum track length this engine can generate, in seconds.

**`vocals`** boolean

Whether the engine can generate vocals.

**`stems`** boolean

Whether the engine returns separated stems.

**`lyrics_input`** boolean

Whether the engine accepts user-provided lyrics.

**`instrumental_only`** boolean

Whether the engine produces instrumental-only output.

**`languages`** array

Languages the engine supports for vocals/lyrics.

**`commercial_use`** boolean

Whether output is cleared for commercial use.

**`licence_class`** string

Neutral licence tier: `commercial_cleared`, `commercial_enterprise`, `personal_only`, or `unclear`.

**`requires_attribution`** boolean

Whether use of the output requires attribution.

Example

```bash cURL
curl "https://api.aitronos.com/v1/music/engines" \
  -H "X-API-Key: $FREDDY_API_KEY"
```


```python Python SDK
from aitronos import Aitronos  # pip install aitronos-sdk

client = Aitronos(api_key="your-api-key")

engines = client.get("/v1/music/engines")
for engine in engines["engines"]:
    print(f"{engine['name']} — up to {engine['max_duration_seconds']}s")
```


```python Python
import os
import requests

api_key = os.environ["FREDDY_API_KEY"]

response = requests.get(
    "https://api.aitronos.com/v1/music/engines",
    headers={"X-API-Key": api_key},
)

for engine in response.json()["engines"]:
    print(f"{engine['name']} — {engine['licence_class']}")
```


```javascript JavaScript
const apiKey = process.env.FREDDY_API_KEY;

const response = await fetch('https://api.aitronos.com/v1/music/engines', {
  headers: { 'X-API-Key': apiKey }
});

const { engines } = await response.json();
engines.forEach(e => console.log(`${e.name} (${e.engine_key})`));
```

**Response:**


```json 200 OK
{
  "engines": [
    {
      "engine_key": "studio",
      "name": "Aitronos Studio",
      "descriptor": "Full-length vocal and instrumental tracks",
      "max_duration_seconds": 240,
      "vocals": true,
      "stems": false,
      "lyrics_input": true,
      "instrumental_only": false,
      "languages": ["en", "de", "fr"],
      "commercial_use": false,
      "licence_class": "personal_only",
      "requires_attribution": false
    }
  ]
}
```

Errors

```json 401 Unauthorized
{
  "success": false,
  "error": {
    "code": "AUTHENTICATION_REQUIRED",
    "message": "Authentication required. Please provide a valid API key.",
    "system_message": "Missing or invalid authorization header",
    "type": "authentication_error",
    "status": 401,
    "details": {},
    "trace_id": "req_abc123xyz",
    "timestamp": "2026-06-28T10:30:00Z"
  }
}
```

## Related Resources

- [Create a generation job](/docs/api-reference/music/create-generation)
- [Start a focus session](/docs/api-reference/music/start-focus-session)
- [Music Studio overview](/docs/api-reference/music/introduction)