A quick PHP wrapper class for the GoodReads API.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



A quick PHP wrapper class for the GoodReads API.


This is something I hacked together quickly, it isn't beautiful, and can only access a few API endpoints. However it's a good starting point, and from a cursory glance implementing other methods wouldn't be particularly tricky. Caching support is also baked in.

Please also bear in mind the GoodReads API itself isn't great (some methods for example only support XML!), you can read/comment on that in their forums.


  • PHP 5.3.x or higher
  • cURL
  • GoodReads API key

Available methods


  1. Include class
  2. Initialise wrapper $api = new GoodReads('PUT YOUR API KEY HERE', 'writable directory for caching');
  3. Call a method $data = $api->getLatestReads(4148474);


Simplified BSD (included).


2018-06-02 Tyler Paulson

  • Added function to get a user by username rather than ID.

2018-03-04 Tyler Paulson

  • Added function to get all of a user's books, read or otherwise.

2017-12-10 Daniel G Wood

  • Added 5 endpoints: author.books, book.show, book.show_by_isbn, book.title and review.show
  • Updated documentation.

2016-05-13 Victor Davis

  • Added LIBXML_NOCDATA arg to simplexml_load_string to capture CDATA in returned XML
  • Added 2 endpoints: author.show & user.show