apicheats.dev elevenlabs/llms.txt Raw .md
POST

/v1/studio/projects/{project_id}/chapters/{chapter_id}

ElevenLabs API

Update Chapter

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
→ 232 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 POST 'https://api.elevenlabs.io/v1/studio/projects/project-id/chapters/chapter-id' \  -H "xi-api-key: $ELEVENLABS_API_KEY" \  -H 'Content-Type: application/json' \  -d '{  "name": "string",  "content": {    "blocks": [      {        "sub_type": "p",        "nodes": [          {            "type": "[recursive or deeply nested schema]",            "text": "[recursive or deeply nested schema]",            "voice_id": "[recursive or deeply nested schema]"          }        ],        "block_id": "string"      }    ]  }}'
Get a free ElevenLabs API key → sponsored

Parameters

Name In Type Required Description
project_id path string Yes The ID of the Studio project.
chapter_id path string Yes The ID of the chapter.
name body string No The name of the chapter, used for identification only.
content body object No The chapter content to use.

Response 200 OK

{
  "chapter": {
    "can_be_downloaded": true,
    "chapter_id": "aw1NgEzBg83R7vgmiJt6",
    "content": {
      "blocks": []
    },
    "conversion_progress": 0.5,
    "last_conversion_date_unix": 1714204800,
    "name": "Chapter 1",
    "state": "default",
    "statistics": {
      "characters_converted": 200,
      "characters_unconverted": 100,
      "paragraphs_converted": 5,
      "paragraphs_unconverted": 3
    }
  }
}