One per reviewed book. The record key is the book's BookHive ID (hiveId), so a reader's review of a book can be found with a single getRecord.
any
Any valid record key
Properties
book
string
at-uri
Required
The reader's record for the book: a buzz.bookhive.book, whose review field holds the same review as plain text, or, for a book the reader keeps in Popfeed, a social.popfeed.feed.listItem, whose newest social.popfeed.feed.review holds it as plain text with a link to the formatted review.
createdAt
string
datetime
Required
An RFC 3339 formatted timestamp.
document
string
at-uri
Required
The site.standard.document that holds the review. Its content is the formatted review; its textContent is the same review as plain text.
hiveId
string
Required
The book's BookHive ID. Also the record key.
maxLength: 64 byteslangs
array
of
string
language
Optional
The languages the review is written in, as the reader chose them. BCP-47 codes, as in a Bluesky post's langs.
maxLength: 3 itemsspoiler
boolean
Optional
The reader marked the review as giving away parts of the book. The document carries the same mark as a "spoiler" self-label.
View raw schema
{
"description": "One per reviewed book. The record key is the book's BookHive ID (hiveId), so a reader's review of a book can be found with a single getRecord.",
"key": "any",
"record": {
"properties": {
"book": {
"description": "The reader's record for the book: a buzz.bookhive.book, whose review field holds the same review as plain text, or, for a book the reader keeps in Popfeed, a social.popfeed.feed.listItem, whose newest social.popfeed.feed.review holds it as plain text with a link to the formatted review.",
"format": "at-uri",
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"document": {
"description": "The site.standard.document that holds the review. Its content is the formatted review; its textContent is the same review as plain text.",
"format": "at-uri",
"type": "string"
},
"hiveId": {
"description": "The book's BookHive ID. Also the record key.",
"maxLength": 64,
"type": "string"
},
"langs": {
"description": "The languages the review is written in, as the reader chose them. BCP-47 codes, as in a Bluesky post's langs.",
"items": {
"format": "language",
"type": "string"
},
"maxLength": 3,
"type": "array"
},
"spoiler": {
"description": "The reader marked the review as giving away parts of the book. The document carries the same mark as a \"spoiler\" self-label.",
"type": "boolean"
}
},
"required": [
"document",
"book",
"hiveId",
"createdAt"
],
"type": "object"
},
"type": "record"
}