set_user_book
Add a book to your library or update your entry for it: status, rating, review, privacy, private notes, edition, and whether you own it.
Instructions
Add a book to your library or update your entry for it: status, rating, review, privacy, private notes, edition, and whether you own it. Upsert: creates the entry if the book isn't in your library yet, otherwise overwrites only the fields you pass (null leaves a field as it is; clearing one isn't supported). owned=true/false marks ownership of edition_id (or of the entry's current edition if edition_id is omitted; errors if there is none); passing edition_id also makes it the edition you're reading. Ownership changes are idempotent. Returns user_book_id, status, privacy, user_rating, edition_id, and owned/owned_changed when owned was given. Use set_user_book_read for start/finish dates and progress, set_list_book for custom lists, and delete_user_book to remove the book.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| owned | No | true/false: you own (or no longer own) edition_id, or the current edition if edition_id is omitted. | |
| rating | No | Your rating (e.g. 4.0, 3.5); returned as user_rating. Omit to leave unchanged. | |
| status | No | Reading status. | |
| book_id | Yes | Hardcover book ID. | |
| privacy | No | Who can see it: 'public', 'followers', or 'private' (or 1, 2, 3). | |
| edition_id | No | Edition ID (from get_book). Sets which edition you're reading. | |
| review_raw | No | Plain-text review content (converted to Slate format). | |
| reviewed_at | No | ISO date of the review (e.g. '2025-06-01'). | |
| private_notes | No | Private notes visible only to you. | |
| review_has_spoilers | No | Whether the review contains spoilers. |