Books

A book is the top-level container — metadata (title, premise, genre, cover color), generation state, and an ordered list of chapters. All endpoints scope to the calling token’s user; you can only see your own books.

List books

GET/v1/booksscope: books:read

Returns every non-deleted book on the account, newest-updated first.

curl -H "authorization: Bearer $ANTHRA_TOKEN" \
  https://anthra.vercel.app/api/v1/books

Response

{
  "data": [
    {
      "id": "8f1c…",
      "title": "Walking the Salt Roads",
      "subtitle": "A year on foot through southern Europe",
      "premise": "…",
      "status": "published",
      "visibility": "unlisted",
      "slug": "walking-the-salt-roads",
      "readerUrl": "https://anthra.vercel.app/read/walking-the-salt-roads",
      "createdAt": "2026-05-12T18:24:11.000Z",
      "updatedAt": "2026-05-30T09:01:02.000Z"
    }
  ]
}

Create a book

POST/v1/booksscope: books:write

Creates a draft book seeded with a premise. The outliner is not run automatically — call /outline next.

Body

FieldTypeNotes
premisestring (10–4000)Required. The seed prompt for the book.
titlestringOptional. Defaults to “Untitled Book” until the outliner overwrites it.
genrestringHint for the outliner.
audiencestringHint for the outliner.
authorstringPublic author byline. Defaults to your account name.
modelTierhaiku | sonnet | opusWriter model for chapter prose. sonnet is the default.

Get a book

GET/v1/books/{bookId}scope: books:read

Returns the book and its full chapter list (with prose content).

Update a book

PATCH/v1/books/{bookId}scope: books:write

Patch any of title, subtitle, author, description, coverColor (hex), audience, toneStyle, genre, modelTier.

Delete a book

DELETE/v1/books/{bookId}scope: books:write

Soft-deletes the book — it’s recoverable for 30 days, after which the nightly cron worker hard-deletes it.