api documentation
We've made accessing data from Goodreads easy – you can search books and authors on the site, access a member's book shelves, add book reviews, and more! You can view all the API methods or contact us if there's something you'd like to build that we don't currently support.
getting started
Some of our methods require a developer key, which you can get after you register. Most methods you can access just by passing your key, but some you'll need to use OAuth.
The easiest way to get started using our API is with curl. Just replace YOUR_KEY with your developer key in the example below:
Example Goodreads response:
The easiest way to get started using our API is with curl. Just replace YOUR_KEY with your developer key in the example below:
curl http://www.goodreads.com/api/book_url/Ender%27s%2BGame?key=YOUR_KEY
Example Goodreads response:
<GoodreadsResponse>
<Request>
<authentication>true</authentication>
<key>YOUR_KEY</key>
<method>api_book_url</method>
</Request>
<book id="375802">
<title>Ender's Game (Ender's Saga, Book 1)</title>
<isbn>0812550706</isbn>
<link>
http://www.goodreads.com/book/show/375802.Ender_s_Game?utm_medium=api&utm_source=book_link
</link>
</book>
</GoodreadsResponse>
using oauth
Writing data on Goodreads requires OAuth for authorization. To get started, you'll first need register your app.
OAuth is a simple way to allow third-party applications access to your data securly. It's based on existing standards and doesn't require you to give third-parties your username and password.
Learn more about OAuth.
OAuth is a simple way to allow third-party applications access to your data securly. It's based on existing standards and doesn't require you to give third-parties your username and password.
Learn more about OAuth.
example user flow
Once you've registered your app, you'll be able to request access on behalf of users to access their data using OAuth. Users will need to allow your application access from the Goodreads site. They'll be redirected to a page on Goodreads where they'll login in order to grant access. After allowing access they'll be redirected back to your site via the callback URL you provide us. At this point you'll be able to access their data using a token until they choose to revoke it.
example code
You can check out a Ruby example of how this works. We'll be adding examples in PHP and Python soon.
