Sync Reading History
How to sync your Libby reading history to Hardcover so returned books are tracked.
Initial Setup (One Time)
1. Import your Libby timeline
Get your timeline export:
- Open Libby app → Settings → Reading History
- Tap Export Timeline → Copy the JSON link
// history_import_timeline
{"url": "https://share.libbyapp.com/data/{uuid}/libbytimeline-all-loans.json"}
2. Run initial sync
// sync
{"action": "sync_all"}
This will:
- Import current loans
- Match returned books to Hardcover
- Start metadata enrichment
- Cache Libby tag data
Ongoing Sync
Check status
// sync
{"action": "status"}
Shows pending count and last sync time.
Preview changes
// sync
{"action": "preview"}
Lists books that will be marked as "read" in Hardcover.
Execute sync
// sync
{"action": "run"}
Or test without changes:
{"action": "run", "dry_run": true}
Comprehensive sync
// sync
{"action": "sync_all"}
Runs all four steps: import → sync → enrich → cache tags.
Troubleshooting
Check unmatched books
// sync
{"action": "unmatched"}
Shows books that couldn't be found in Hardcover. Filter by type:
{"action": "unmatched", "unmatched_type": "isbn"}
{"action": "unmatched", "unmatched_type": "no_isbn"}
Check specific entry
// sync
{"action": "details", "entry_id": "abc123"}
Shows the full activity history and sync state for one book.
How Matching Works
- ISBN match — Most reliable. Searches Hardcover by ISBN.
- Title + Author — Fallback. Fuzzy matching on title and author name.
- Cross-format lookup — If an audiobook ISBN isn't found, searches Libby for the ebook edition's ISBN and tries that.
- Identity cache — Successful matches are cached for instant lookup on future syncs.