Free tool

Goodreads CSV converter

Drop in your Goodreads library export and see exactly what is in it. Clean the rows that break importers, filter the shelves you actually want, and download a tidy CSV.

A Goodreads export is messier than it looks. ISBNs arrive wrapped in an Excel formula, unrated books carry a rating of zero, reviews are full of commas and line breaks, and plenty of rows have no ISBN at all.

Your file is never uploaded. Everything happens in this tab.

Runs entirely in your browser. The file never leaves your device.

What the converter actually changes

six transforms, each one a checkbox
1 Unwraps the Excel armour on ISBNs Goodreads writes ="9780316066525" so spreadsheets do not eat the leading zero. Importers read the equals sign and quotes as part of the number and fail. The bare digits go out instead.
2 Drops ISBNs that fail their check digit Both ISBN-10 and ISBN-13 carry a checksum. A broken one matches the wrong edition, which is worse than no ISBN at all, so those cells are emptied and the title and author do the work.
3 Blanks ratings of zero Goodreads uses 0 in My Rating to mean not rated. Any importer that reads the column as a number turns hundreds of unrated books into terrible ones. Blank means blank.
4 Re-quotes reviews properly Reviews hold commas, quotation marks and line breaks, which is legal CSV and lethal to a naive importer. Every field goes out quoted to RFC 4180, and <br/> becomes a real line break.
5 Normalises the dates Date Read and Date Added come out as YYYY/MM/DD. The converter can rewrite them as ISO YYYY-MM-DD, which is what most importers and spreadsheets expect to see.
6 Filters before you import Keep only the read shelf, only books you rated, only rows with an ISBN, or one copy of each duplicate. Whatever you leave out simply never reaches the other app.

What is inside goodreads_library_export.csv

one row per book, 24 columns

Fourteen of those columns are worth carrying to another app. The rest are Goodreads bookkeeping or a duplicate of something else in the row. If you have not made the file yet, our guide to exporting your Goodreads library walks through it in about two minutes.

Columns worth keeping

TitleAuthorAdditional AuthorsISBNISBN13My RatingMy ReviewExclusive ShelfDate ReadDate AddedNumber of PagesPublisherYear PublishedOriginal Publication Year

These are the fields the converter reads, checks and cleans. Exclusive Shelf is the one that decides whether a book lands as read, currently reading or want to read.

Columns almost nothing uses

Book IdAuthor l-fAverage RatingBindingBookshelvesBookshelves with positionsSpoilerPrivate NotesRead CountOwned Copies

Book Id is a Goodreads internal number, Average Rating is everybody else's opinion rather than yours, and Bookshelves holds your custom shelves, which no reading app has a matching concept for. They stay in the file if you export the Goodreads columns, they just will not do anything.

What a Goodreads export leaves behind

No converter can add data the file does not contain, and it is worth knowing what you are losing before you close your account. Here is what Goodreads keeps to itself.

Cover images. Every book comes across as text, so the new app has to find its own artwork.
Genres. The export carries your own shelves, not the categories Goodreads shows on a book page.
Reading sessions. There is no record of when you sat down to read or for how long, only a date you finished.
Progress history. Your status updates and percentage markers are not in the file.
Re-reads. Read Count says you read it three times, but only the most recent Date Read survives.
Start dates. Books on the currently-reading shelf carry a Date Added and nothing else.
Highlights and quotes. Anything you saved or liked on the site stays on the site.
Your social graph. Friends, followers, comments and likes on your reviews are not part of the export.

None of that is a reason to stay. It is a reason to export sooner rather than later, since the file only gets more valuable the longer you have been tracking. If you are still weighing up where to go, we compared the main Goodreads alternatives and wrote a step-by-step guide to moving your data.

Importing into booksense You do not need this converter to move to booksense. The app takes the raw export, parses it on your phone with the same rules this page uses, and files everything in one go. Ratings and reviews come across, shelves become statuses, and every read is backdated so a 600 book library lands as history rather than 600 posts at the top of your feed. See what the app does

Frequently asked questions

Do I need to convert my Goodreads CSV before importing it into booksense?

No. booksense reads the raw goodreads_library_export.csv exactly as Goodreads writes it, on your iPhone, and keeps your ratings, reviews and dates. This converter exists so you can see what is actually in the export before you commit to it, spot the rows that will match badly, and produce a cleaned file for any other app or spreadsheet you want to take it to.

Why does my Goodreads CSV have ="9780316066525" in the ISBN column?

That is Goodreads defending your ISBNs against spreadsheets. Excel and Google Sheets treat a long run of digits as a number and quietly drop the leading zero, so Goodreads wraps each ISBN in an Excel text formula. It works for spreadsheets and breaks a lot of importers, which read the whole thing, equals sign and quotes included, as the ISBN and then fail to match the book. The converter unwraps them to bare digits and drops any that fail their check digit.

Is my Goodreads export uploaded anywhere?

No. The parser, the analysis and the download are all JavaScript running in your own browser tab. Your file is read with the browser file API and the cleaned copy is built as a local blob. There is no server call at any point, no account, no email, and nothing is stored. You can turn your wifi off after the page loads and the tool still works.

Can I use the cleaned file with StoryGraph, Fable or another reading app?

Yes, that is what the two output formats are for. Goodreads columns keeps every original column in the original order, so anything that already understands a Goodreads export still does, just with the ISBNs unwrapped, the zero ratings blanked and the dates in ISO format. Simple columns writes a compact set of plain fields for a stricter importer or a spreadsheet. Check the target app first, since each one accepts a slightly different shape.

Why do I have to export a CSV at all, instead of connecting my account?

Goodreads retired its public API in December 2020 and stopped issuing new keys, so there is no supported way for another app to read your shelves on your behalf. The export file is the only route left. That is fine, because it is your own reading data and Goodreads gives it to you on request. It just means every migration starts with the same download.

A clean file is the start, not the finish. Once the import is done, booksense adds the parts Goodreads never had: a reading timer, streaks, goals and page-anchored notes. Download for free