Why Do It, Even If You're Not Leaving
If you've been using Goodreads for a few years, there's something valuable in that account: not the books, but your reading history. When you read what, what rating you gave it, what you wrote on the day you finished it. It's a memory that can't be reconstructed.
It's on a service you don't control, and services change — features disappear, interfaces worsen, closures announced with three months' notice. Exporting occasionally takes two minutes and follows the same logic as backing up your photos. Whether you stay or go elsewhere is a separate decision.
The Export, Step by Step
The function exists only in the desktop version of the site: you won't find it in the mobile app. If you're on your phone, open goodreads.com in your browser and request the desktop version.
- Log into your account and go to My Books.
- In the left column, at the bottom of the shelves list, look for Tools and then Import and export.
- At the top of the page, you'll find the Export Library button. Click it.
- Wait. Generating the file takes anywhere from a few seconds to a few minutes, depending on how many books you have. The page won't refresh automatically: reload it.
- When it's ready, a link with the export date will appear. Click it and download the CSV.
If the link doesn't appear after a few minutes, reload again: with very large libraries, it may take longer, and the first attempt may fail. Do it again.
What's Inside the File
The CSV opens with any spreadsheet software and is richer than you might expect. The columns that really matter:
- Title, Author — title and author, plus any additional authors in a separate column.
- ISBN, ISBN13 — the identification codes that allow another service to find the exact edition and the right cover.
- My Rating — your rating from 1 to 5. Zero means you didn't rate it.
- Number of Pages, Year Published, Publisher, Binding — the edition data.
- Date Read, Date Added — when you finished it and when you added it to your list.
- Exclusive Shelf — the main status: read, currently-reading, or to-read. This is the column any service will use to understand what you've already read.
- Bookshelves — all the other shelves you created.
- My Review, Private Notes — your public reviews and private notes. Both are included.
- Read Count — how many times you've read that book.
What Doesn't Come Out of the File
The export concerns your library, not the entire account. User reviews, groups and discussions, friend lists, saved quotes, and progress update history — the percentages you noted while reading — are excluded. If you want to keep those updates, the only way is to copy them manually first.
Cover images are not in the file: there are ISBNs, which is better, because any serious service retrieves them from there.
What to Do Now
Keep it as is. A CSV file in a folder is a backup that lasts forever and doesn't depend on anyone. If you like, do it once a year.
Open it in a spreadsheet. Sorting by rating or reading date reveals things: the years you read a lot, empty periods, the fact that you give five stars much more often than you thought.
Import it elsewhere. This is why most people export. The Goodreads format is essentially the standard, and any worthwhile reading service accepts it. If you're considering where to move, it's best to first understand how you want to track what you read: the system matters more than the tool.
Importing into Bookstack
In Bookstack, the import starts from the file as it is, without needing to fix it first. You upload the CSV, see the list of recognized books, choose which to import, and confirm.
The shelves become statuses: read changes to "finished", currently-reading to "reading", to-read to the wishlist. Ratings from 1-5 are converted to a scale from 1 to 10. Title, author, pages, year, ISBN, finish date, and review come along; covers are retrieved from the ISBNs.
From there, your reading history resumes from where you left off — and this time you can take it with you whenever you want.
Import your library into Bookstack, the file you just downloaded is fine as it is.