org.shelfcheck.shelf.entry

A user's shelf entry for a book. Exactly one record per book per user (deduplicate by ids.olWorkId, then by isbn13, then by fuzzy title+author). Status, dates, rating and notes are all carried inline; aggregators and other apps may render the same record as a 'wantToRead' card or a 'finished' review depending on the status field.

Details · record, key tid
Kindrecord
Record keytid
Authorityshelf.shelfcheck.org
Indexed

Record

record · key tid

Properties

authors

requiredarray
  • minLength: 1
  • maxLength: 32
itemsref

coverUrl

string · uri

Remote cover image URL. Cover blobs are intentionally not uploaded to the PDS; clients may render via Open Library, the source URL, or their own cache.

createdAt

requiredstring · datetime

finishedAt

string · datetime

ids

requiredref

note

string

Free-form private notes or a public review.

  • maxLength: 60000
  • maxGraphemes: 15000

pageCount

integer
  • minimum: 0

rating

integer

User rating, 0-100 (half-star resolution: 10 == 0.5★, 20 == 1★, ..., 100 == 5★).

  • minimum: 0
  • maximum: 100

source

string

Where this entry originated, for provenance: e.g. 'goodreads', 'hardcover', 'storygraph', 'bookhive', 'lyndi', 'manual'.

  • maxLength: 64

sourceUrl

string · uri

Canonical link back to the source record (e.g. the Goodreads or BookHive page).

startedAt

string · datetime

status

requiredstring
  • knownValues: org.shelfcheck.defs#wantToRead | org.shelfcheck.defs#reading | org.shelfcheck.defs#finished | org.shelfcheck.defs#abandoned
  • maxLength: 64
itemsstring
  • maxLength: 256

title

requiredstring

Display title, denormalized so the record is self-contained.

  • maxLength: 1024

updatedAt

string · datetime

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • A book in the user's library

  • A reader's reading of a book BookHive's catalogue doesn't hold, or can't be matched to for certain: the home of last resort, so any book can be added to a library and reviewed. One per book. Status, dates, rating, review and progress live here as they do on a buzz.bookhive.book; the book is named in every key anyone uses, so any app that recognises one of them can show the reading. When BookHive's catalogue has the book, Resenha moves the reading there: it writes a buzz.bookhive.book with everyt

  • A book within the hive

  • A canonical book record in the BookHive catalog

  • A user's review of a book. StrongRefs the catalog book and optionally the originating bookShelving. rkey: tid. Written by the OAuth client (livtet-service) via com.atproto.repo.putRecord.