---
title: "Add a book to my library"
method: POST
path: "/api/agent/add_to_library"
tags: ["library"]
---

# Add a book to my library

`POST /api/agent/add_to_library`

## Request

- Base URL: `https://api.siftivo.com`
- URL: `https://api.siftivo.com/api/agent/add_to_library`
- Auth: none required

Log reading on the signed-in reader's Siftivo shelves: add a book to want to read (NOT_STARTED), mark it READING, FINISHED or DNF, rate it, or record progress. Suits "add X to my list", "I just finished X, four stars" and "I'm halfway through X". "Finished it, four and a half stars" is one call with readingStatus FINISHED and rating 4.5. The workId comes from search_books. Each field given replaces what the reader had there before, so send a rating or a note only when they asked for that one to change. Omitting readingStatus leaves the book on the shelf it is already on. Needs a linked Siftivo account.

Not callable on this REST surface. It acts on the signed-in reader's own library, and this path answers 401 to every caller regardless of credentials. Reach it over MCP at https://api.siftivo.com/mcp, which runs the OAuth handshake.

## Request body

- object
  - `workId` string, required
  - `readingStatus` 'NOT_STARTED' | 'READING' | 'FINISHED' | 'DNF': The shelf to put the book on. Omit to leave it where it is, or NOT_STARTED for a book the reader has not opened yet.
  - `rating` number: Stars, 0.5 to 5 in half-star steps
  - `progress` integer: Percent read, 0 to 100
  - `notes` string: The reader's own note on the book, private to them

## Other responses

- `401`: Always. This tool is reachable over MCP only; see the description for the endpoint that serves it.

---

[API](https://skmtc.dev/siftivo/apis/siftivo-agent-api.md) · [All operations](https://skmtc.dev/siftivo/apis/siftivo-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/siftivo/apis/siftivo-agent-api/revisions/2b85acb5f7c8?raw)
