---
title: "Book Schema · Unhead"
meta:
  "og:description": "Use defineBook() to add Book structured data. Enable rich results with book editions, ISBN, author, and purchase actions in Google search."
  "og:title": "Book Schema · Unhead"
  description: "Use defineBook() to add Book structured data. Enable rich results with book editions, ISBN, author, and purchase actions in Google search."
---

**Schema**

# **Book Schema**

[Copy for LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/book.md)

Last updated **Jan 19, 2026** by [Harlan Wilton](https://github.com/harlan-zw) in [docs: sync](https://github.com/unjs/unhead/commit/d2f86454774aa60706628b46a850653e1e4d56d9).

**On this page **

- [Schema.org Book](#schemaorg-book)
- [Useful Links](#useful-links)
- [Types](#types)
- [Related Schemas](#related-schemas)

## [Schema.org Book](#schemaorg-book)

- **Type**: `defineBook(input?: Book)`Describes a Book.

## [Useful Links](#useful-links)

- [**Schema.org Book**](https://schema.org/Book)
- [**Book Schema Markup - Google Search Central**](https://developers.google.com/search/docs/advanced/structured-data/book)

## [Types](#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
}
```

🔨 Schema in development

## [Related Schemas](#related-schemas)

- [**Person**](https://unhead.unjs.io/docs/schema-org/api/schema/person) - Book author
- [**Organization**](https://unhead.unjs.io/docs/schema-org/api/schema/organization) - Publisher

[Edit this page](https://github.com/unjs/unhead/edit/main/docs/schema-org/5.api/9.schema/book.md)

[Markdown For LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/5.api/9.schema/book.md)

**Did this page help you? **

[**Article** Implement Article structured data with Unhead. JSON-LD examples for BlogPosting, NewsArticle, TechArticle with datePublished and author markup.](https://unhead.unjs.io/docs/schema-org/api/schema/article) [**Breadcrumb Schema** Use defineBreadcrumb() to add BreadcrumbList structured data. Display clickable navigation paths in Google search results for better user experience.](https://unhead.unjs.io/docs/schema-org/api/schema/breadcrumb)

**On this page **

- [Schema.org Book](#schemaorg-book)
- [Useful Links](#useful-links)
- [Types](#types)
- [Related Schemas](#related-schemas)