Books
Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.
Bookbook
A book in the user's library, with status, progress, and rating.
books_queryBookPersonLinksFindthrough vritto_findList saved books a given Vritto person recommended.
| Field | Type | Description |
|---|---|---|
| personId* | string | Vritto People record id. |
| detail | one of summary, full | Row shape: "summary" (default, compact) or "full" (every field incl. review and notes). |
| limit | integer |
books_queryBooksFindthrough vritto_findSearch the user's saved book library by text and/or reading status. Use this to resolve a bookId before a write.
| Field | Type | Description |
|---|---|---|
| query | string | Text matched against title, authors, categories, and shelves. |
| status | one of want_to_read, reading, read, dnf | Filter by reading status. |
| detail | one of summary, full | Row shape: "summary" (default, id/title/authors/status/rating/year) or "full" (every field incl. review, notes, and description). |
| limit | integer | Max records (default 50 in summary mode). |
| cursor | string | Pagination cursor from a previous nextCursor. |
books_queryBooksDashboardFindthrough vritto_findReturn the reading cockpit: currently-reading books with progress and the want-to-read shortlist.
No input.
books_queryBookStatsFindthrough vritto_findSummarize the reading library: totals, status breakdown, pages read, books finished by year, and rating distribution. Prefer this for how-many-books questions.
| Field | Type | Description |
|---|---|---|
| year | string | Optional four-digit year filter. |
books_saveBookCreate or Updatethrough vritto_create or vritto_updateSave a book to the library. Prefer passing providerId alone to import full Google Books metadata (existing status/rating/review/progress are preserved); pass book for manual entries or edits, where omitted fields keep their stored values.
Note: Pass providerId from vritto_lookup (book_catalog) to save a book with full details.
| Field | Type | Description |
|---|---|---|
| providerId | string | Google Books volume id, pass this alone to import/save with metadata. |
| bookId | string | Existing saved record id to overwrite; defaults to a provider-derived id. |
| book | object | Book record body. Fields you omit keep their stored values (key-presence merge), so send only what should change. |
| book.providerRef* | object | Provider reference identifying the book. |
| book.title* | string | Book title. |
| book.subtitle | string | |
| book.authors | list of string | Author names. |
| book.description | string | |
| book.thumbnailUrl | string | Cover image URL. |
| book.pageCount | integer | |
| book.categories | list of string | |
| book.publishedDate | string | Publication date (may be partial, e.g. '2019'). |
| book.publisher | string | |
| book.language | string | |
| book.status | one of want_to_read, reading, read, dnf | Defaults to "want_to_read". |
| book.format | one of paperback, hardcover, ebook, audiobook | |
| book.currentPage | integer | Current page number (reading progress). |
| book.startedOn | string | YYYY-MM-DD the current read started. |
| book.finishedOn | string | YYYY-MM-DD the book was finished. |
| book.rereadCount | integer | Completed re-reads beyond the first read. |
| book.rating | integer | |
| book.review | string | Personal review. |
| book.notes | string | |
| book.shelves | list of string | Shelf tags. |
| book.favorite | boolean | |
| book.recommendedByPersonIds | list of string | Vritto People record IDs who recommended this book. |
Example input
{
"providerId": "zyTCAlFPjgYC"
}books_patchBookUpdatethrough vritto_updateUpdate loose fields on a saved book (shelves, format, notes, favorite, dates, rating, recommenders).
| Field | Type | Description |
|---|---|---|
| bookId* | string | Saved book record id. |
| patch* | object | Fields to change; omitted fields keep current values. |
| patch.format | one of paperback, hardcover, ebook, audiobook | |
| patch.shelves | list of string | |
| patch.notes | string | |
| patch.favorite | boolean | |
| patch.startedOn | string | |
| patch.finishedOn | string | |
| patch.rating | integer | 1-5 stars, or null to clear (books_rateBook also sets a review). |
| patch.recommendedByPersonIds | list of string | Vritto People record IDs who recommended this book (replaces the current set; prefer books_setBookRecommenders, which also maintains shelves). |
| expectedRevision | integer |
books_rateBookUpdatethrough vritto_updateSet or clear a book's star rating and personal review.
| Field | Type | Description |
|---|---|---|
| bookId* | string | Saved book record id. |
| rating* | integer | 1-5 stars, or null to clear. |
| review | string | Personal review text. |
| expectedRevision | integer |
Example input
{
"bookId": "book_dune",
"rating": 5,
"review": "Worth every page."
}books_setBookRecommendersUpdatethrough vritto_updateSet the full list of Vritto People who recommended a book (replaces the current set). Also maintains 'Recommended by {name}' shelves.
Note: personIds replaces the whole list.
| Field | Type | Description |
|---|---|---|
| bookId* | string | Saved book record id. |
| personIds* | list of string | Vritto People record IDs (the complete recommender set). |
| expectedRevision | integer |
books_setBookStatusUpdatethrough vritto_updateSet a book's reading status without touching page progress, e.g. mark it want-to-read or DNF.
| Field | Type | Description |
|---|---|---|
| bookId* | string | Saved book record id. |
| status* | one of want_to_read, reading, read, dnf | Personal reading status. |
| expectedRevision | integer |
Example input
{
"bookId": "book_dune",
"status": "read"
}books_updateBookProgressUpdatethrough vritto_updateRecord reading progress by page number (or set status directly). Moving to reading stamps a start date; marking read stamps a finish date and 100% progress.
| Field | Type | Description |
|---|---|---|
| bookId* | string | Saved book record id. |
| currentPage | integer | Current page number. |
| status | one of want_to_read, reading, read, dnf | Optional status change. |
| expectedRevision | integer | Optimistic concurrency guard. |
Example input
{
"bookId": "book_dune",
"currentPage": 212
}books_deleteBookDeletethrough vritto_deleteRemove one saved book from the library. Only for explicit removals.
| Field | Type | Description |
|---|---|---|
| bookId* | string | Saved book record id to delete. |
Reading Logreading_log
One reading period on the reading timeline.
books_queryReadingLogsFindthrough vritto_findList reading-timeline entries (title, start/finish dates, rating), newest first, optionally scoped to one book. Supports a date range on the finish date (start date for still-open reads), ALWAYS pass from/to when the question concerns a period (a year, a month, 'recently'). Rows are compact summaries; pass detail 'full' only when the user needs full log notes.
| Field | Type | Description |
|---|---|---|
| bookId | string | Limit to one book. |
| from | string | Only logs finished ON or AFTER this YYYY-MM-DD date (started date for logs without a finish). |
| to | string | Only logs finished ON or BEFORE this YYYY-MM-DD date (started date for logs without a finish). |
| detail | one of summary, full | Row shape: "summary" (default, title/dates/rating + notes preview) or "full" (every field incl. complete notes). |
| limit | integer | Maximum logs (default 100 in summary mode). |
| cursor | string |
books_addReadingLogCreatethrough vritto_createRecord a reading period for the timeline (a start and/or finish date, optional rating and notes). Completing a book normally logs this automatically; use this to backfill past reads or re-reads.
| Field | Type | Description |
|---|---|---|
| log* | object | |
| log.bookId* | string | Saved book record id. |
| log.startedOn | string | Date started, YYYY-MM-DD. |
| log.finishedOn | string | Date finished, YYYY-MM-DD. |
| log.rating | integer | |
| log.notes | string |
Example input
{
"log": {
"bookId": "book_dune",
"startedOn": "2026-09-01",
"finishedOn": "2026-09-24",
"rating": 5
}
}books_updateReadingLogUpdatethrough vritto_updateEdit one existing reading-timeline entry (its dates, rating, or notes) in place. Fields you omit keep their stored values. Use this rather than deleting and re-adding, which loses the entry if the re-add fails.
| Field | Type | Description |
|---|---|---|
| readingLogId* | string | Reading log id to edit. |
| log* | object | |
| log.startedOn | string | Date started, YYYY-MM-DD (empty string clears it). |
| log.finishedOn | string | Date finished, YYYY-MM-DD (empty string clears it). |
| log.rating | integer | 1-5 stars, or null to clear. |
| log.notes | string |
books_deleteReadingLogDeletethrough vritto_deleteDelete one reading-timeline entry. Only for explicit removals.
| Field | Type | Description |
|---|---|---|
| readingLogId* | string | Reading log id to delete. |
Book Catalogbook_catalog
Google Books reference data, for saving a book with full details.
books_getBookDetailsLook Upthrough vritto_lookupFetch full Google Books details (description, page count, categories) for one volume by its Google Books id.
| Field | Type | Description |
|---|---|---|
| providerId* | string | Google Books volume id. |
books_searchBooksLook Upthrough vritto_lookupSearch Google Books by title, author, or keyword. Returns provider metadata, not the user's saved library: use books_queryBooks for saved books.
| Field | Type | Description |
|---|---|---|
| query* | string | Search text. |
| limit | integer | Max results (default 20). |