← All Tools

Free EPUB Validator Online

Validate your EPUB online — no Java, no installs, runs entirely in your browser. Drop your .epub file and get a pass/fail result for every structural check in seconds.

Loading tool...

What this EPUB Validator checks

Every EPUB file is a ZIP archive with several required layers. This free online EPUB validator checks all of them automatically — no downloads, no Java, no configuration. Drop your .epub file and get a pass/fail result for each check in seconds, entirely in your browser. Your file is never uploaded anywhere; validation runs locally so your manuscript stays private.

  • Mimetype — Must be "application/epub+zip," stored uncompressed, as the first file in the archive. Any deviation breaks every compliant e-reader.
  • Container (META-INF/container.xml) — Must exist and correctly point to the OPF package document. A missing or malformed container.xml makes the file unreadable on all platforms.
  • OPF Package Document — Every content file must be listed in the manifest with the correct media type. Unlisted files are invisible to reading systems.
  • Required Metadata — Title (dc:title), language (dc:language), and unique identifier (dc:identifier) are mandatory. Missing any one fails KDP upload.
  • Spine Reading Order — Must reference valid manifest items in logical order. A broken spine means e-readers cannot navigate the book linearly.
  • Navigation Document — EPUB 3 requires nav.xhtml; EPUB 2 requires toc.ncx. Both must reference real content files with valid paths.
  • Cover Image Declaration — Must be declared in the manifest with properties="cover-image" (EPUB 3) or a meta name="cover" element (EPUB 2). KDP specifically validates cover linkage.
  • Image References — Every image referenced in content HTML and CSS must exist in the archive and be listed in the manifest. Broken references cause display errors on devices.
  • CSS Files — Every stylesheet referenced in content files must exist in the archive and appear in the manifest.
  • EMF/WMF Images — Windows-only image formats that EPUB readers cannot display. Usually introduced by Word-to-EPUB conversions. Flagged automatically.
  • File Size — Large EPUBs that exceed KDP's upload limit are flagged before you waste a submission attempt.

Common EPUB errors and what causes them

These are the errors most likely to cause a store rejection. Each links to a step-by-step fix guide.

  • Missing or invalid container.xml — META-INF/container.xml is absent or malformed. The very first file a reading system opens; if missing, the EPUB is unreadable on every platform regardless of everything else.
  • Invalid or missing mimetype file — The mimetype file must be the first file in the ZIP, contain exactly "application/epub+zip", and be stored uncompressed. Any deviation fails every compliant e-reader at the first byte.
  • Missing manifest resource — A file is referenced in the OPF manifest but absent from the archive, or exists in the archive but was never declared in the manifest. Usually happens during manual EPUB editing in Sigil or Calibre.
  • Cover image not declared — The cover image is physically present but not linked with the correct manifest properties. KDP checks this specifically; missing declaration causes the cover to appear blank in the store listing.
  • Missing language declaration (dc:language) — The OPF metadata block has no dc:language element. Required by the EPUB spec; KDP, Apple Books, and Kobo all reject files without a language tag.
  • Missing unique identifier (dc:identifier) — Every EPUB must have a dc:identifier element (ISBN or UUID) in OPF metadata, with the package element's unique-identifier attribute pointing to it. If absent, EPUBCheck fails with OPF-030.
  • Missing NCX navigation (toc.ncx) — The OPF references toc.ncx but the file is absent. Common with older Scrivener and Calibre exports that generate the OPF reference without creating the file.
  • Malformed XHTML (unclosed tag) — EPUB content files must be valid XML. An unclosed tag causes Apple Books and strict validators to reject the file outright.
  • Missing alt text on images (ACC-001) — Every img element must have an alt attribute. Apple Books has enforced this accessibility requirement since 2022; files without alt text are rejected at submission.
  • EMF image without fallback — Word-to-EPUB conversions sometimes embed images in Windows-only EMF format. EPUB readers cannot display them and no fallback is provided, causing validation failure.
  • Duplicate ID — Two or more elements share the same id attribute. Causes navigation failures and Apple Books rejections.

Browse all 26 EPUB error guides →

How to fix EPUB errors

Most EPUB errors require editing the source files inside the archive. Here is a one-step fix for the most common errors — click for the full step-by-step guide.

  • Missing manifest resource — Open content.opf and add an <item> entry for the missing file with the correct media-type attribute. Full guide →
  • Cover image not declared — Add properties="cover-image" to the cover image <item> in content.opf (EPUB 3), or add <meta name="cover" content="cover-image-id" /> (EPUB 2). Full guide →
  • Missing NCX navigation — Regenerate toc.ncx using the BookKraft TOC Generator, or rebuild it in Sigil via Tools → Table of Contents. Full guide →
  • Malformed XHTML — Open the flagged content file, locate the unclosed tag at the reported line number, and add the matching closing tag. Full guide →
  • EMF images — Re-save the image as PNG or JPG in your original Word document, replace it, and re-export to EPUB. Full guide →
  • Duplicate IDs — Search your EPUB's HTML files for the duplicate id value and rename one occurrence to a unique string. Full guide →

EPUBCheck vs. BookKraft EPUB Validator

EPUBCheck is the official EPUB validation reference tool maintained by the EPUB standards body. It runs the same structural checks — but requires Java and a command line. Most authors do not have Java installed and should not need to install it to check a file before uploading to KDP.

FeatureEPUBCheckBookKraft Validator
Requires JavaYesNo
Installation requiredYesNo — runs in any browser
Your file leaves your deviceNo (local tool)No — validated locally in-browser
Error messagesError codes (e.g. PKG-026)Plain English with fix links
Works on Windows / Mac / Linux / ChromebookRequires Java on each platformYes — any modern browser
CostFreeFree

For authors who want to validate without installing Java, BookKraft's in-browser validator runs equivalent structural checks with no setup.

Why EPUB validation matters for KDP publishing

KDP's upload error messages are deliberately vague. A file can be rejected with "We found issues with your file" and no further detail. Running validation before you submit tells you exactly what KDP's preprocessor will flag — container structure, required metadata, spine order, cover image declaration — so you can fix it before any store sees the file.

Apple Books is stricter: it requires EPUB 3, rejects files with malformed XML, and validates image quality and font embedding beyond what KDP checks. A file that uploads to KDP successfully can still fail Apple Books submission. IngramSpark sits between the two, with clearer rejection messages but stricter compliance requirements than KDP.

The pattern that works: validate here first, fix any structural errors, then preview in KDP's Kindle Previewer before submitting. Validation catches structural errors; the previewer shows how the file renders on actual Kindle devices.

For a reference on EPUB image requirements — format support, cover image manifest declaration, and the alt text requirement that causes Apple Books rejections — see images in EPUB files.

Common questions

EPUB validation checks your ebook file against the EPUB specification to confirm it will be accepted by stores like KDP, Apple Books, and IngramSpark. It verifies structure, required metadata, navigation, and file references — the same checks the stores run when you upload. Running validation before submission tells you exactly what to fix instead of getting a vague rejection message from the store.
Yes, completely free. No account, no signup, no credit card, no usage limit. Run it as many times as needed.
Yes. The validator checks the structural points KDP, Apple Books, IngramSpark, and Kobo each evaluate — container structure, required OPF metadata, spine order, cover image declaration, and file references. Apple Books is the strictest: it requires EPUB 3 and rejects malformed XML. A pass here means no structural rejection on any major store.
No. This validator runs in any modern browser — no Java, no Calibre, no Sigil, nothing to install. Works on Windows, Mac, Linux, and Chromebook.
No. Validation runs entirely in your browser using JavaScript. Your file is read locally and never transmitted anywhere — no upload, no server storage, no privacy concern with manuscript content.
The free scan runs 11 structural checks automatically. The Pro Scan adds ghost spacing detection, duplicate ID scanning, OPF manifest cross-check, cover dimension verification, and a store-specific pass/fail report for KDP, Apple Books, and Google Play. Pro Scan costs 2 credits from a BookKraft account.
Yes. This is a free online EPUB validator that runs entirely in your browser — no Java, no Calibre, no Sigil, nothing to download or install. Drop your .epub file and get results in seconds. Works on Windows, Mac, Linux, and Chromebook. Your file is never uploaded to any server; validation runs locally in your browser, so your manuscript content stays private.