---
title: "Create Chapter"
method: POST
path: "/v1/studio/projects/{project_id}/chapters"
tags: ["studio"]
---

# Create Chapter

`POST /v1/studio/projects/{project_id}/chapters`

Creates a new chapter either as blank or from a URL.

## Path parameters

- `project_id` string, required — The ID of the Studio project.

## Headers

- `xi-api-key` string, nullable — Your API key. This is required by most endpoints to access our API programmatically. You can view your xi-api-key using the 'Profile' tab on the website.

## Request body

- BodyCreateChapterV1StudioProjectsProjectIdChaptersPost
  - `name` string, required — The name of the chapter, used for identification only.
  - `from_url` string, nullable — An optional URL from which we will extract content to initialize the Studio project. If this is set, 'from_url' and 'from_content' must be null. If neither 'from_url', 'from_document', 'from_content' are provided we will initialize the Studio project as blank.

## Response `200`

Successful Response

- AddChapterResponseModel
  - `chapter` ChapterWithContentResponseModel, required
    - `chapter_id` string, required — The ID of the chapter.
    - `name` string, required — The name of the chapter.
    - `last_conversion_date_unix` integer, nullable — The last conversion date of the chapter.
    - `conversion_progress` number, nullable — The conversion progress of the chapter.
    - `can_be_downloaded` boolean, required — Whether the chapter can be downloaded.
    - `state` 'default' | 'converting', required — The state of the chapter.
    - `has_video` boolean, nullable — Whether the chapter has a video.
    - `has_visual_content` boolean, nullable — Whether the chapter has any visual content (video, image, or text clips).
    - `voice_ids` string[], nullable — List of voice ids used by the chapter
    - `statistics` ChapterStatisticsResponseModel
      - `characters_unconverted` integer, required — The number of unconverted characters.
      - `characters_converted` integer, required — The number of converted characters.
      - `paragraphs_converted` integer, required — The number of converted paragraphs.
      - `paragraphs_unconverted` integer, required — The number of unconverted paragraphs.
      - `credits_needed_to_convert` integer, nullable — The number of credits needed to convert the remaining paragraphs.
      - `voice_statistics` VoiceStatisticsResponseModel[], nullable — Per-voice breakdown of character counts.
        - `project_voice_ref_id` string, required — The project voice reference ID.
        - `characters_unconverted` integer, required — The number of unconverted characters for this voice.
        - `characters_converted` integer, required — The number of converted characters for this voice.
        - `credits_needed_to_convert` integer, nullable — The number of credits needed to convert the remaining audio for this voice.
        - `voice_id` string, required — The voice ID.
    - `last_conversion_error` string, nullable — The last conversion error of the chapter.
    - `content` ChapterContentResponseModel, required
      - `blocks` ChapterContentBlockResponseModel[], required
        - `block_id` string, required
        - `nodes` union[], required
          - union
            - ChapterContentBlockTtsNodeResponseModel
              - …
            - ChapterContentBlockExtendableNodeResponseModel — Not used. Make sure you anticipate new types in the future.
              - …

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/elevenlabs/apis/elevenlabs-api-documentation.md) · [All operations](https://skmtc.net/elevenlabs/apis/elevenlabs-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elevenlabs/elevenlabs-api-documentation/revisions/6c2d6eb4a7e6/schema)
