Schema
Book Schema
Schema.org Book
- Type:
defineBook<T extends Record<string, any>>(input?: Book & T)
Describes a Book.
Useful Links
Google's Book actions feature is limited to participating book providers and requires a submitted feed. Adding a Book node to an ordinary page does not enroll the site in that feature.
Defaults and resolves
@typedefaults toBook, and@iddefaults to${canonicalUrl}#book.name,description, andurlcan be inherited from resolved page metadata.workExamplevalues use the BookEdition resolver, and a root Book uses the primary identity as its author when no author is supplied.- BookEdition values expand
bookFormatto a full Schema.org URL and serialize Date objects as calendar dates.
Types
export interface BookSimple extends Thing {
/**
* The title of the book.
*/
name: string
/**
* A description of the book. Display limit of 60 characters.
*/
description?: string
/**
* A reference to an Identity piece, representing author associated with the Book.
*/
author?: NodeRelations<Identity>
/**
* The URL on your website where the book is introduced or described.
*/
url?: string
/**
* The URL of a reference page that identifies the work. For example, a Wikipedia, Wikidata, VIAF, or Library of Congress page for the book.
*/
sameAs?: Arrayable<string>
/**
* The number of pages in the book.
*/
numberOfPages?: number
/**
* The illustrator(s) of the book.
*/
illustrator?: NodeRelations<Identity>
/**
* The edition(s) of the work.
*/
workExample: NodeRelations<BookEdition>
}
type BookFormat = OptionalSchemaOrgPrefix<'AudiobookFormat'> | OptionalSchemaOrgPrefix<'EBook'> | OptionalSchemaOrgPrefix<'Hardcover'> | OptionalSchemaOrgPrefix<'Paperback'>
export interface BookEditionSimple extends Thing {
/**
* The title of the edition. Only use this when the title of the edition is different from the title of the work.
*/
name?: string
/**
* The format of the edition.
*/
bookFormat: BookFormat
/**
* The main language of the content in the edition. Use one of the two-letter codes from the list of ISO 639-1 alpha-2 codes.
*/
inLanguage?: string
/**
* The ISBN-13 of the edition. If you have ISBN-10, convert it into ISBN-13.
*/
isbn: string
/**
* The action to be triggered for users to purchase or download the book.
*/
potentialAction?: Arrayable<ReadAction | any>
/**
* The author(s) of the edition.
*/
author?: NodeRelations<Identity>
/**
* The edition information of the book. For example, 2nd Edition.
*/
bookEdition?: string
/**
* The date of publication of the edition in YYYY-MM-DD or YYYY format. This can be either a specific date or only a specific year.
*/
datePublished?: ResolvableDate
/**
* The external or other ID that unambiguously identifies this edition. Multiple identifiers are allowed. For more details, refer to PropertyValue (identifier).
*/
identifier?: unknown
/**
* The URL of a reference web page that unambiguously indicates the edition. For example, a Wikipedia page for this specific edition. Don't reuse the sameAs of the Work.
*/
sameAs?: Arrayable<string>
/**
* The URL on your website where the edition is introduced or described. It can be the same as workExample.target.urlTemplate.
*/
url?: string
}
Related Schemas
- Person: Book author
- Organization: Publisher
Did this page help you?
Article Schema - JSON-LD Guide & Examples
Implement Article structured data with Unhead. JSON-LD examples for BlogPosting, NewsArticle, TechArticle with datePublished and author markup.
Breadcrumb Schema
Use defineBreadcrumb() to add BreadcrumbList structured data that describes a page's position in the site hierarchy.