Introduction to the Cloud API
A Quick Overview
- The same API used by Evernote's apps
- Defines data structures & remote procedure calls
- Exposes all of the content within an Evernote account
The Evernote Cloud API gives your application access to the contents of an individual user's Evernote account. When you use the Cloud API, your application is interacting directly with the Evernote web service, which stores the authoritative master copy of each user's account. This API is used by all of Evernote's apps (e.g. Evernote for Windows and Evernote for iOS), and as such is full-featured, highly available, up-to-date, fully supported, and backwards compatible.
The Cloud API is made up of two parts: the data model (objects) that expresses the information stored by the Evernote service, and a set of remote procedures (functions) that retrieve or modify that data. The basic data model objects include notes, notebooks and tags, and the basic functions allow you to create, read, update, delete and search those objects. Internally, we refer to the Cloud API as EDAM - the Evernote Data Access and Management API. You can find the complete documentation of EDAM's objects and functions in our API reference.
The Cloud API is designed to be flexible and support almost any use case. It allows us to develop fully synchronizing desktop clients that maintain a full local copy of a user's data (e.g. Evernote for Windows), partially synchronizing mobile clients that keep a local copy of some but not all of a user's data (e.g. Evernote Food), and thin clients that keep no almost no local state (e.g. Evernote Web).
Unlike some web APIs, you don't access the Evernote Cloud API directly via HTTP. Instead, our SDK provides wrapper code that you use to interact with the API. This code, which we generate using the Apache Thrift framework, makes it easy for you to interact with Evernote without worrying about how data is sent and received on the network. The underlying transport is still HTTP, but this is abstracted away from your code. The SDK contains wrapper code for most major programming languages, including C++, C#, Objective-C, Java, JavaME, PHP, Perl, Python, Ruby, and ActionScript 3. You don't need to understand Thrift in order to use our API, but if you're curious, you can learn why we chose Thrift in this tech blog post by our CTO.
To get started with the Cloud API, download our SDK and get an API key, then continue on to the Core Concepts chapter to understand the basic patterns involved in using the API.