Private DOCX to EPUB preview
Private EPUB validator online
EPUB validator online for the file you plan to publish.
Inspect the package structure, required metadata, navigation, and spine without sending your book to a remote validator.
Drop in the file you plan to publish
Choose a DOCX or EPUB. This first check runs in your browser; your manuscript is not uploaded.
Works with Word (.docx), Google Docs, Scrivener & ChatGPT drafts
What this EPUB preflight checks
An EPUB is a connected publication package, not a single HTML file. A missing container, broken package path, incomplete metadata, or empty spine can prevent a reading system from opening the book correctly.
- application/epub+zip mimetype
- META-INF container path
- Title, language, and identifier metadata
- Navigation document and spine entries
Validation is necessary, but it is not visual proofing
A structurally valid EPUB can still have poor chapter breaks, clipped images, weak accessibility, or inconsistent styling. Test the final file in more than one reading app and inspect its table of contents before release.
Where EPUBCheck clearly wins
EPUBCheck is the open, standards-complete choice when you can interpret its codes and repair the package yourself. ShipMyBook is useful only when you need plain-language diagnosis, a repaired file, and a version-linked delivery rather than another raw validator report.
Error code to fix: EPUB will not open
An EPUB is a zipped publication package. A missing mimetype, container, metadata, or empty spine will stop a reader before any chapter loads.
| Error or check | Likely cause | Next check | Fix in the package | Re-test |
|---|---|---|---|---|
| mimetype missing or not application/epub+zip | The zip's first entry is compressed or the mimetype contents are wrong. | Unzip the EPUB and read the first entry's raw bytes. | Make the first file an uncompressed mimetype entry whose contents are exactly application/epub+zip. | Re-zip with the mimetype stored first and uncompressed, then revalidate. |
| META-INF/container.xml missing | The container file was not packaged, or it does not point at the OPF document. | Look inside META-INF/ for container.xml and confirm its OPF path. | Add a container file that points at the OPF package document. | Re-zip and confirm the container path resolves before re-uploading. |
| Empty EPUB spine / reading order | The OPF spine lists no content documents or lists them out of order. | Open the OPF and confirm the spine lists every content document in order. | List content documents in reading order in the OPF spine. | Re-open the EPUB and confirm chapters load in order. |
| Missing title, language, or identifier | The package document omits dc:title, dc:language, or a unique identifier. | Read the package metadata and note which required field is absent. | Add dc:title, dc:language, and a unique identifier before re-exporting. | Revalidate the package metadata, then upload. |
| Navigation document or TOC missing | EPUB 3 lacks a navigation document, or the TOC was typed as page numbers. | Confirm the nav document exists and is referenced from the OPF manifest. | Add a navigation document; build the TOC from heading styles, not typed page numbers. | Re-open the EPUB and confirm the TOC entries jump to the right chapters. |
FAQ
Frequently asked questions
Is the EPUB uploaded?
No. This free validator opens the EPUB archive locally in your browser.
What does EPUB spine mean?
The spine is the ordered list of content documents a reading system follows through the book. It is unrelated to a printed book spine.
Will this replace EPUBCheck?
No. It is a fast first-pass package check. Use a standards-complete validator and device proofing before a high-risk release.
My EPUB will not open. What should I check first?
Check the uncompressed mimetype, META-INF/container.xml, required package metadata, and a non-empty spine. A valid zip of HTML files is not enough if those four package parts are missing.
Was this publishing guide or tool helpful?
Check the EPUB on this page first.
The validator stays in your browser. Pay $39 only after you know which package actually failed.