Index of every page on this site: llms.txt
TypeScript
Schema

Book Schema

Schema.org Book

  • Type: defineBook<T extends Record<string, any>>(input?: Book & T)
    Describes a Book.

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

  • @type defaults to Book, and @id defaults to ${canonicalUrl}#book.
  • name, description, and url can be inherited from resolved page metadata.
  • workExample values use the BookEdition resolver, and a root Book uses the primary identity as its author when no author is supplied.
  • BookEdition values expand bookFormat to 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
}
Did this page help you?