5 min read

Ebook Metadata Explained

An EPUB requires just four metadata items: title, identifier, language and a modified timestamp. What else matters, and why store metadata is separate.

An EPUB file requires exactly four pieces of metadata: a title, an identifier, a language, and a last-modified timestamp. Everything else in the file is optional. The metadata that determines how your book appears in a store is a separate thing entirely, entered at the retailer, and it is not the same record.

Confusing those two is the source of most metadata trouble.

The Four Required Items

The EPUB 3.3 specification is unusually blunt about how little it demands: "the package document only has the following minimal metadata requirements: it MUST contain the dc:title, dc:identifier, and dc:language elements together with the dcterms:modified property. All other metadata is OPTIONAL."

dc:title. The book's title. The spec advises using only one: "EPUB creators should use only a single dc:title element to ensure consistent rendering of the title in reading systems", and notes that the mechanism for splitting a title from its subtitle is "not well supported". Put the whole title in one element.

dc:identifier. A value unique to this publication, referenced by the package element's unique-identifier attribute. An ISBN is the usual choice for a commercial book, but any unique string is valid, and whether you need an ISBN at all depends on where the book is distributed. Useful advice from the spec: "EPUB creators should not issue new identifiers when making minor revisions such as updating metadata, fixing errata, or making similar minor changes."

dc:language. A BCP 47 language tag, so en, en-GB, fr. The first one is treated as the primary language. Note a trap the spec calls out: "Publication resources do not inherit their language from the dc:language element", so individual documents still need their own language attribute. This catches almost everyone, and is covered in how to add language metadata to an EPUB.

dcterms:modified. The strictest of the four. There must be exactly one, in UTC, in the form YYYY-MM-DDThh:mm:ssZ, terminated with Z. No timezone offsets, no fractional seconds, no date-only values. Getting the format wrong is one of the common validation errors.

What Is Optional

More than people expect. Author, publisher, date, subject and description are all optional in the file. So is the cover image: the spec says setting the cover property "is OPTIONAL", even though every retailer requires a cover as a store rule.

One constraint if you do add a date: "EPUB publications MUST NOT contain more than one dc:date element."

Optional in the file does not mean unimportant. Reading systems display the author, and library systems use subjects. It simply means their absence is not a validation error.

In-File Metadata and Store Metadata Are Different Records

This is the distinction worth internalising.

In-file metadata lives in the package document and is what the reading system uses: what the device shows in its library, how the book sorts on a shelf, what language the text is in.

Store metadata is what you type into KDP's title setup, or supply as an ONIX feed, and it is what the storefront uses: the product page, the search index, the categories, the price. ONIX is the industry standard for this, described by its maintainer as "the international standard for representing and communicating book industry product information".

The store record wins on the product page. Your EPUB's dc:title does not change what Amazon displays.

What retailers require is that the two do not contradict each other. Amazon asks that the title "must match the metadata you entered during title setup", that ISBNs in the manuscript match the one entered at setup, and that promotional wording such as "free" or "bestselling" stays out of metadata fields.

Accessibility Metadata

If you claim any accessibility conformance, metadata becomes mandatory rather than optional. The EPUB Accessibility specification requires that publications "MUST include [schema.org] accessibility metadata in the package document that exposes their accessible properties, regardless of whether the publications also meet the accessibility or optimization requirements", specifically accessMode, accessibilityFeature and accessibilityHazard, with accessibilitySummary recommended.

This matters commercially in the EU, where accessibility declarations are increasingly expected. See European EPUB requirements.

What Deckle Writes

Deckle writes all four required items into the package document, including dcterms:modified in exactly the form the specification demands, an ISO 8601 UTC timestamp ending in Z. It also writes the optional publisher and rights fields when you supply them.

The values come from the metadata you enter in the export dialog: title, author, publisher, language and year. So the fields in that dialog are not decoration, they become the file's identity.

One thing Deckle does not do is submit anything to a store. Your storefront record is entered separately at the retailer, and it is your responsibility to keep the two consistent, particularly the title and the ISBN.

Common Mistakes

  • Getting the modified timestamp format wrong. It must be UTC, ending in Z, with no fractional seconds.
  • Splitting the title across multiple dc:title elements. Support is inconsistent; use one.
  • Assuming file metadata drives the store listing. It does not. The retailer's record does.
  • Letting the file and the store disagree. Retailers check, particularly on title and ISBN.
  • Reusing one identifier across formats. Paperback, hardback and ebook each need their own.
  • Issuing a new identifier for a typo fix. The spec advises against it for minor revisions.

FAQ

Q: Do I need an ISBN in my EPUB? A: You need a unique identifier. An ISBN is the usual choice for commercial sale, but the format does not require one specifically.

Q: Is the author field required? A: Not by the specification. Only title, identifier, language and modified timestamp are.

Q: Why does my book show the wrong title on the store page? A: Because the store uses its own record. Fix it at the retailer, not in the file.

Q: Do I need to update the modified timestamp when I re-export? A: It is regenerated automatically on each export, which is the correct behaviour.

Q: What is ONIX? A: The book industry's standard for supply-chain metadata, used to send product information to retailers and distributors. It is separate from the metadata inside the file.