---
title: "Get structured editorial notes on a chapter"
method: POST
path: "/ai/editorial-pass"
tags: ["ai"]
---

# Get structured editorial notes on a chapter

`POST /ai/editorial-pass`

## Request

- Base URL: `https://aistoryhub.co/api/v1`
- URL: `https://aistoryhub.co/api/v1/ai/editorial-pass`
- Auth: HTTP bearer

Runs on the token owner's own AI provider key (BYOK). Notes are grounded in the story bible and the author's voice style.

## Request body

- object
  - `story_id` string, uuid, required
  - `paragraphs` string[], required: The chapter split into text blocks; note anchors reference these by index.
  - `file_name` string

## Response `200`

Editorial notes, fence list, and scope limits.

- EditorialResult
  - `notes` EditorialNote[]
    - `category` string
    - `scope` 'line' | 'structural'
    - `confidence` 'high' | 'medium' | 'low'
    - `note` string
    - `suggestedInstruction` string
    - `anchorStart` string
    - `anchorEnd` string
    - `paragraphIndex` integer
    - `paragraphIndexEnd` integer
  - `fence_list` string[]
  - `scope_limits` unknown

## Other responses

- `400`: The request body or parameters are invalid.
- `401`: Missing, malformed, invalid, revoked, or expired token.
- `403`: The token lacks the scope this endpoint requires.
- `404`: The resource does not exist or you do not own it.
- `429`: Too many requests. Retry after the delay in the `Retry-After` header.

---

[API](https://skmtc.dev/aistoryhub/apis/aistoryhub-api.md) · [All operations](https://skmtc.dev/aistoryhub/apis/aistoryhub-api/llms.txt) · [OpenAPI document](https://skmtc.dev/aistoryhub/apis/aistoryhub-api/revisions/0cfd2c14ae12?raw)
