Skip To Main Content
All modules

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_queryBooksFindthrough vritto_find

Search the user's saved book library by text and/or reading status. Use this to resolve a bookId before a write.

FieldTypeDescription
querystringText matched against title, authors, categories, and shelves.
statusone of want_to_read, reading, read, dnfFilter by reading status.
detailone of summary, fullRow shape: "summary" (default, id/title/authors/status/rating/year) or "full" (every field incl. review, notes, and description).
limitintegerMax records (default 50 in summary mode).
cursorstringPagination cursor from a previous nextCursor.
books_queryBooksDashboardFindthrough vritto_find

Return the reading cockpit: currently-reading books with progress and the want-to-read shortlist.

No input.

books_queryBookStatsFindthrough vritto_find

Summarize the reading library: totals, status breakdown, pages read, books finished by year, and rating distribution. Prefer this for how-many-books questions.

FieldTypeDescription
yearstringOptional four-digit year filter.
books_saveBookCreate or Updatethrough vritto_create or vritto_update

Save 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.

FieldTypeDescription
providerIdstringGoogle Books volume id, pass this alone to import/save with metadata.
bookIdstringExisting saved record id to overwrite; defaults to a provider-derived id.
bookobjectBook record body. Fields you omit keep their stored values (key-presence merge), so send only what should change.
book.providerRef*objectProvider reference identifying the book.
book.title*stringBook title.
book.subtitlestring
book.authorslist of stringAuthor names.
book.descriptionstring
book.thumbnailUrlstringCover image URL.
book.pageCountinteger
book.categorieslist of string
book.publishedDatestringPublication date (may be partial, e.g. '2019').
book.publisherstring
book.languagestring
book.statusone of want_to_read, reading, read, dnfDefaults to "want_to_read".
book.formatone of paperback, hardcover, ebook, audiobook
book.currentPageintegerCurrent page number (reading progress).
book.startedOnstringYYYY-MM-DD the current read started.
book.finishedOnstringYYYY-MM-DD the book was finished.
book.rereadCountintegerCompleted re-reads beyond the first read.
book.ratinginteger
book.reviewstringPersonal review.
book.notesstring
book.shelveslist of stringShelf tags.
book.favoriteboolean
book.recommendedByPersonIdslist of stringVritto People record IDs who recommended this book.
Example input
{
  "providerId": "zyTCAlFPjgYC"
}
books_patchBookUpdatethrough vritto_update

Update loose fields on a saved book (shelves, format, notes, favorite, dates, rating, recommenders).

FieldTypeDescription
bookId*stringSaved book record id.
patch*objectFields to change; omitted fields keep current values.
patch.formatone of paperback, hardcover, ebook, audiobook
patch.shelveslist of string
patch.notesstring
patch.favoriteboolean
patch.startedOnstring
patch.finishedOnstring
patch.ratinginteger1-5 stars, or null to clear (books_rateBook also sets a review).
patch.recommendedByPersonIdslist of stringVritto People record IDs who recommended this book (replaces the current set; prefer books_setBookRecommenders, which also maintains shelves).
expectedRevisioninteger
books_rateBookUpdatethrough vritto_update

Set or clear a book's star rating and personal review.

FieldTypeDescription
bookId*stringSaved book record id.
rating*integer1-5 stars, or null to clear.
reviewstringPersonal review text.
expectedRevisioninteger
Example input
{
  "bookId": "book_dune",
  "rating": 5,
  "review": "Worth every page."
}
books_setBookRecommendersUpdatethrough vritto_update

Set 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.

FieldTypeDescription
bookId*stringSaved book record id.
personIds*list of stringVritto People record IDs (the complete recommender set).
expectedRevisioninteger
books_setBookStatusUpdatethrough vritto_update

Set a book's reading status without touching page progress, e.g. mark it want-to-read or DNF.

FieldTypeDescription
bookId*stringSaved book record id.
status*one of want_to_read, reading, read, dnfPersonal reading status.
expectedRevisioninteger
Example input
{
  "bookId": "book_dune",
  "status": "read"
}
books_updateBookProgressUpdatethrough vritto_update

Record 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.

FieldTypeDescription
bookId*stringSaved book record id.
currentPageintegerCurrent page number.
statusone of want_to_read, reading, read, dnfOptional status change.
expectedRevisionintegerOptimistic concurrency guard.
Example input
{
  "bookId": "book_dune",
  "currentPage": 212
}
books_deleteBookDeletethrough vritto_delete

Remove one saved book from the library. Only for explicit removals.

FieldTypeDescription
bookId*stringSaved book record id to delete.

Reading Logreading_log

One reading period on the reading timeline.

books_queryReadingLogsFindthrough vritto_find

List 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.

FieldTypeDescription
bookIdstringLimit to one book.
fromstringOnly logs finished ON or AFTER this YYYY-MM-DD date (started date for logs without a finish).
tostringOnly logs finished ON or BEFORE this YYYY-MM-DD date (started date for logs without a finish).
detailone of summary, fullRow shape: "summary" (default, title/dates/rating + notes preview) or "full" (every field incl. complete notes).
limitintegerMaximum logs (default 100 in summary mode).
cursorstring
books_addReadingLogCreatethrough vritto_create

Record 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.

FieldTypeDescription
log*object
log.bookId*stringSaved book record id.
log.startedOnstringDate started, YYYY-MM-DD.
log.finishedOnstringDate finished, YYYY-MM-DD.
log.ratinginteger
log.notesstring
Example input
{
  "log": {
    "bookId": "book_dune",
    "startedOn": "2026-09-01",
    "finishedOn": "2026-09-24",
    "rating": 5
  }
}
books_updateReadingLogUpdatethrough vritto_update

Edit 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.

FieldTypeDescription
readingLogId*stringReading log id to edit.
log*object
log.startedOnstringDate started, YYYY-MM-DD (empty string clears it).
log.finishedOnstringDate finished, YYYY-MM-DD (empty string clears it).
log.ratinginteger1-5 stars, or null to clear.
log.notesstring
books_deleteReadingLogDeletethrough vritto_delete

Delete one reading-timeline entry. Only for explicit removals.

FieldTypeDescription
readingLogId*stringReading log id to delete.

Book Catalogbook_catalog

Google Books reference data, for saving a book with full details.

books_getBookDetailsLook Upthrough vritto_lookup

Fetch full Google Books details (description, page count, categories) for one volume by its Google Books id.

FieldTypeDescription
providerId*stringGoogle Books volume id.
books_searchBooksLook Upthrough vritto_lookup

Search Google Books by title, author, or keyword. Returns provider metadata, not the user's saved library: use books_queryBooks for saved books.

FieldTypeDescription
query*stringSearch text.
limitintegerMax results (default 20).