---
title: "POST /api/circles/{circle}/notebooks"
method: POST
path: "/api/circles/{circle}/notebooks"
tags: ["circle-controller"]
---

# POST /api/circles/{circle}/notebooks

`POST /api/circles/{circle}/notebooks`

## Request

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

## Path parameters

- `circle` integer, required

## Request body

- NotebookCreationRequest
  - `newTitle` string
  - `referenceHandling` 'UPDATE_VISIBLE_TEXT' | 'KEEP_VISIBLE_TEXT'
  - `description` string
  - `notebookGroupId` integer

## Response `200`

OK

- NotebookRealm: Notebook chrome: entity plus optional catalog hints (attached book, readonly), and optional container-owned readme markdown.
  - `notebook` Notebook, required
    - `id` integer, required
    - `notebookSettings` NotebookSettings, required
      - `skipMemoryTrackingEntirely` boolean
    - `creatorId` string
    - `name` string, required
    - `circle` Circle
      - `id` integer, required
      - `name` string, required
    - `description` string
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `readmeContent` string
  - `hasAttachedBook` boolean
  - `readonly` boolean
  - `readmeContent` string: Container-owned notebook readme markdown. Omitted when absent.

## Changes

- **2026-09-11** `ca8ca2c2c4ff`: 1 warning
  - changed the pattern of the request property `newTitle` from `^[\s\x00-\x1F]*[^\\/:*?"<>|\x00-\x1F]*[\s\x00-\x1F]*$` to `^[\s\x00-\x1F]*[^\\/:*?"<>\x00-\x1F]*[\s\x00-\x1F]*$`
- **2026-08-19** `6c31eea0ac37`: 1 warning
  - changed the pattern of the request property `newTitle` from `^[^\\/:]*$` to `^[\s\x00-\x1F]*[^\\/:*?"<>|\x00-\x1F]*[\s\x00-\x1F]*$`
- **2026-08-10** `e098b5c35777`: 1 info
  - the request property `newTitle` became optional
- **2026-08-06** `bed72673355f`: 1 info
  - added the new optional request property `notebookGroupId`
- **2026-07-22** `13f77438750e`: 2 warning, 2 info
  - removed the optional property `indexContent` from the response with the `200` status
  - removed the optional property `notebook/indexContent` from the response with the `200` status
  - added the optional property `notebook/readmeContent` to the response with the `200` status
  - added the optional property `readmeContent` to the response with the `200` status

[Operation history](https://skmtc.dev/nerds-odd-e/apis/odd-e-open-api/changes/api/circles/:circle/notebooks/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)
