Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A Ruby client for Evernote
Branch: master
Failed to load latest commit information.
lib version bump
spec fix two failing tests
vendor/gen-rb Upgrade to Evernote API SDK 1.21 for ruby
.gitignore ignores
LICENSE get rid of Jeweler, add contributors
README.mkd update readme
Rakefile get rid of Jeweler, add contributors
example.rb add example as runnable script, version bump for new api version



This gem is a high level wrapper around Evernote's Thrift-generated ruby code. It bundles up Evernote's thrift-generated code and creates some simple wrapper classes.


Get a "Client application" API key from Evernote (, which gives you a "consumer_key" and "consumer_secret" (note that a "web application" API key uses OAuth to authenticate and will not work). Put the key in a YML file or any other place you put configuration information. Also, get yourself a username and password on both their sandbox system ( and live system. You will be using sandbox for testing.


This script is also located in /example.rb

require 'evernote'

user_store_url = ""

config = {
   :username => 'YOUR_USERNAME',
   :password => 'YOUR_PASSWORD',
   :consumer_key => 'YOUR_CONSUMER_KEY_FROM_EVERNOTE',

user_store =, config)

auth_result = user_store.authenticate
user = auth_result.user
auth_token = auth_result.authenticationToken
puts "Authentication was successful for #{user.username}"
puts "Authentication token = #{auth_token}"

Once you've authenticated, you could do something like list all of your notebooks:

note_store_url = "{user.shardId}"
note_store =

notebooks = note_store.listNotebooks(auth_token)
puts "Found #{notebooks.size} notebooks:"
default_notebook = notebooks[0]
notebooks.each { |notebook| puts "  * #{}"}

The evernote API can be viewed at

If the vendored code is out of date and you get an error indicating so, feel free to create an issue at


  • OAuth support - will gladly accept a patch for this!


Thanks to the following peeps for helping out:

  • Peter Mangiafico (peetucket)
  • d1
  • Mikhail Zelenin (MioGreen)
  • Jimmy Zimmerman (jimmyz)
  • Buck Doyle (backspace)
  • Philippe Creux (pcreux)


Copyright (c) 2011 Chris Sepic. See LICENSE for details.

Something went wrong with that request. Please try again.