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.
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.
| Feature | EPUBCheck | BookKraft Validator |
|---|---|---|
| Requires Java | Yes | No |
| Installation required | Yes | No — runs in any browser |
| Your file leaves your device | No (local tool) | No — validated locally in-browser |
| Error messages | Error codes (e.g. PKG-026) | Plain English with fix links |
| Works on Windows / Mac / Linux / Chromebook | Requires Java on each platform | Yes — any modern browser |
| Cost | Free | Free |
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.