GET
/v1/music/finetunes
ElevenLabs APIGet Music Finetunes
- Base URL
- https://api.elevenlabs.io
- Auth
- xi-api-key: <ELEVENLABS_API_KEY>
- Last verified
- 2026-09-03 · upstream hash matched
Actions
Agents: curl -H "Accept: text/markdown" this URL
→ 203 tokens · Vary: Accept
→ 203 tokens · Vary: Accept
Critical gotchas
Authentication uses the non-standard xi-api-key header, not Authorization: Bearer. Sending a Bearer token returns HTTP 401.
Text-to-speech responses are raw binary audio, not JSON. Write the body to a file (--output speech.mp3) rather than parsing it.
cURL
curl -X GET 'https://api.elevenlabs.io/v1/music/finetunes?cursor=example-cursor&page_size=50&visibility=private&created_by=self&sort=created_at&sort_direction=desc' \ -H "xi-api-key: $ELEVENLABS_API_KEY"Get a free ElevenLabs API key → sponsored
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| cursor | query | string | No | Used for fetching the next page. Cursor is returned in the response. |
| page_size | query | integer | No | How many finetunes to return. Max 150, default 50. |
| visibility | query | string | No | Filter by visibility. 'private' returns private finetunes; 'workspace' returns workspace-shared finetunes; 'public' returns public finetunes, which are currently ElevenLabs curated finetunes. Omit to return all accessible finetunes. |
| created_by | query | string | No | Filter by creator. 'self' returns finetunes you created; 'workspace' returns finetunes created by workspace teammates; 'elevenlabs' returns ElevenLabs curated finetunes. Omit to return finetunes from all creators. |
| sort | query | string | No | Sort by field (created_at or name) |
| sort_direction | query | string | No | Sort direction (asc or desc) |
Response 200 OK
{
"finetunes": [
{
"id": "string",
"name": "string",
"tags": [
"string"
],
"primary_genre": "string",
"model_id": "string",
"created_at": "2026-09-03T00:00:00Z",
"visibility": "private",
"created_by": "self",
"status": "pending",
"training_progress": 0,
"failure_reason": "audio_processing_failed"
}
],
"next_cursor": "string",
"has_more": true
}