---
title: "Create a child book block by splitting at an imported content row"
method: POST
path: "/api/notebooks/{notebook}/book/blocks"
tags: ["notebook-books-controller"]
---

# Create a child book block by splitting at an imported content row

`POST /api/notebooks/{notebook}/book/blocks`

## Request

- Base URL: `` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/notebooks/{notebook}/book/blocks`
- Auth: none declared

## Path parameters

- `notebook` integer, required

## Request body

- CreateBookBlockFromContentRequestFull
  - `fromBookContentBlockId` integer, required: Split the owning book block at this imported content row; that row and following rows become a new child block.
  - `structuralTitle` string: When set, used as the new block structural title (trimmed, max length enforced). Otherwise the title is derived from the first moved content block.

## Response `201`

Created

- BookFull
  - `id` integer, required
  - `bookName` string, required
  - `format` string, required
  - `createdAt` string, date-time
  - `updatedAt` string, date-time
  - `blocks` BookBlockFull[], required: Book blocks in depth-first preorder (parent before descendants, then siblings). Order matches ascending book layout sequence in persistence.
    - `id` integer, required
    - `depth` integer, required: Nesting depth in the book layout; root-level blocks are 0.
    - `title` string, required
    - `contentLocators` union[], required
      - union
        - EpubLocatorFull
          - `type` string, required
          - `href` string, required
          - `fragment` string
          - `cfi` string
        - PdfLocatorFull
          - `type` string, required
          - `pageIndex` integer, required
          - `bbox` number[], required
          - `contentBlockId` integer
          - `derivedTitle` string
    - `contentBlocks` BookContentBlockFull[], required
      - `id` integer, required
      - `type` string, required
      - `pageIdx` integer
  - `notebookId` string, required

## Changes

- **2026-09-29** `feba4ecd7257`: 1 info
  - added the optional property `blocks/items/contentLocators/items/oneOf[#/components/schemas/EpubLocator_Full]/allOf[subschema #2]/cfi` to the response with the `201` status

[Operation history](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/changes/api/notebooks/:notebook/book/blocks/post.md)

---

[API](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api.md) - [All operations](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/llms.txt) - [OpenAPI document](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/revisions/193c5e89085a?raw)
