Validate
EPUB Validator
Upload an EPUB to check its structure against the EPUB rules that most often stop a book from opening or being accepted. The validator checks the mimetype file (first in the ZIP and stored uncompressed), META-INF/container.xml, the package file, the identifier and modified date, the manifest and spine, the table of contents and its targets, that every XHTML page is well-formed, and that every listed file exists. It reports errors and warnings so you can fix them before publishing.
Written by Jay Sudha · Published · Last updated
Input formats
Output formats
Common uses
- Check an EPUB before uploading to Kindle, Apple Books, or Kobo
- Diagnose EPUB errors reported by reading apps
- Verify an EPUB created from a Word document or Markdown
- Check a client's EPUB before editing or formatting
Limitations
- It checks the rules EPUBCheck most often fails books on, not every rule. For publishing, run the official EPUBCheck as well.
- DRM-protected files are refused, because their encrypted contents cannot be checked.
- CSS, links inside pages and accessibility are not checked here; the Link Checker and Accessibility Checker cover links and accessibility basics.
Your e-book files, handled privately
This tool runs entirely in your browser. On this site, your files are not uploaded to a server. This tool does not remove DRM or bypass copyright protection. Only upload files you own or have permission to process.
Catching EPUB faults before a store rejects them
The EPUB Validator checks an .epub against the rules that most often stop a book from opening or being accepted: the mimetype file first and uncompressed, container.xml, the package file, identifier, modified date, manifest, spine, table of contents and metadata. It also parses every XHTML page, since one unclosed tag can stop a strict reader from showing a chapter.
It suits self-publishers doing a final check before Kindle, Apple Books or Kobo, editors vetting a client's file, and authors confirming an export from Word or Markdown is sound.
It is equally useful for diagnosis after the fact. If a reading app shows a blank cover, refuses to open a book, or skips chapters, running the file here surfaces the structural cause, such as a missing package file, an empty spine, a malformed page, or referenced files that do not exist inside the archive.
Dropping a file and reading the report
Drop one .epub and it is checked in your browser; nothing is uploaded. You get a summary, a Pass or Fail line for each area, and a list of issues with their location, which you can download as text.
Specific checks include: the package's unique-identifier points at a dc:identifier; EPUB 3 books have a dcterms:modified date in the required form and a navigation document; EPUB 2 books have an NCX; manifest ids and paths are unique and media types match file extensions; every spine entry exists in the manifest; table-of-contents entries point at files that exist; and files in the ZIP that the manifest does not list, or operating-system leftovers such as .DS_Store, are flagged. Repeated errors of one kind are capped after five, so a badly broken book does not flood the list.
It covers the rules EPUBCheck most often fails books on, not EPUBCheck's full schemas. CSS, links inside pages and accessibility are left to other tools, and DRM-protected files are refused.
A pass is not a guarantee any store will accept it
The most common misunderstanding is treating a pass as a publishing guarantee. A structurally sound EPUB can still fail a store's own rules: KDP asks for a cover inside the book at least 1200 pixels in width or height, Apple Books refuses images over 5.6 million pixels, and Kobo Writing Life refuses files over 100 MB. The Kindle, Apple Books and Kobo checkers apply those rules, and EPUBCheck itself remains the authority for full conformance; Apple requires books to pass it.
Because links inside pages are not followed, a book can pass yet contain broken footnotes, and CSS or screen-reader problems will not appear here.
A renamed file or a partial export may fail to parse, with errors about the packaging rather than the manuscript.
Confirming the result is trustworthy
Start with the structure panel and read every Fail line. Confirm the mimetype and container.xml pass, that the package file was found, that the spine and manifest are populated, and that the XHTML line passes. Then work through the issue list, errors first, treating warnings as clean-up.
Check that the title, author, and language read as you expect, and if missing files are reported, open the EPUB archive and confirm those paths against the manifest before assuming the tool is wrong. Re-run after each fix so you can see the count fall to zero rather than guessing.
For a commercial title, run EPUBCheck and the store's upload preview too.
Frequently asked questions
EPUBCheck is the official open-source EPUB checker from the W3C. Apple Books requires books to pass it, and Kobo runs every upload through it. This tool checks a subset of the same rules in your browser, without installing Java.
Passing here means the structure is sound for the rules checked, not that every rule passes. Stores add requirements of their own, such as KDP's minimum size for the cover inside the book or Apple's pixel limit for images; the Kindle, Apple Books and Kobo checkers cover those. An app can also fail on things outside structure, such as CSS it does not support.
Every EPUB must start with a file named mimetype, stored uncompressed, containing exactly application/epub+zip. Reading apps and stores use it to recognise the ZIP as an EPUB, and some reject a book when it is missing, compressed, or not first.
No. The EPUB is opened and checked in your browser. On this site, your files are not uploaded to our servers; the report is produced on your device.
Related tools
Tool last reviewed: September 27, 2026 · Report a problem