API

Evernote API Rate Limits

Posted by Brett Kelly on 13 Aug 2013

Posted by Brett Kelly on 13 Aug 2013

Comment

On the Evernote Platform team, we are committed to providing our partners and users with the best experience possible. This means a usable, responsive API that handles data quickly and ensures that all applications, including official Evernote software, are able to effectively do the job they were hired to do.

As our Developer platform grows, we need to ensure that the Evernote API continues to function at peak performance. For this reason, the Evernote API will soon have rate limits in place.

Note: existing production applications will not be immediately affected by rate limits. See below for details.

What are rate limits?

In a nutshell, rate limits are a constraint on the number of API requests a given user can make using a given API key in a given time period. For example, if Bob is using an application called “Fake App” that integrates with Evernote, Fake App will be able to make a limited number of requests on behalf of Bob within the prescribed interval. If Fake App makes requests in excess of the rate limit, an exception will be thrown with error code RATE_LIMIT_REACHED. This exception will include an attribute called rateLimitDuration which indicates the number of seconds that must elapse before subsequent API requests will be allowed.

For more information about our implementation of rate limits, see the developer documentation.

Why add rate limits?

As previously mentioned, our primary goal is to provide a responsive interface for developers and users to use when accessing the data in their Evernote accounts. Since each request made to the API incurs a computational cost, it’s in the best interest of both Evernote and its developer partners that these costs be minimized to the greatest degree possible.

Rate limiting also helps third-party developers by encouraging them to build their integrations to make economical use of API requests. If a common function of your application can be performed using fewer requests than it currently does, it should.

What are the limits?

To start, each user will be limited to a finite number of requests per integrated application, per hour. The exact number of allowed requests will be subject to adjustment during the intial deployment of rate limiting, but we’re confident that the threshold will be more than sufficient for most users. We’ll be paying close attention to usage numbers to ensure that partner integrations function as expected under normal use.

Again, we expect the rate limits to be high enough that reasonable use of the API should not cause an integration to hit the limit.

What about integrations that sync?

A handful of integrations fully sync their users’ account and will almost certainly exceed the rate limit. If you maintain or are building a full-sync client, get in touch with us so we can work with you directly.

When do the rate limits take effect?

All non-production applications (i.e., API keys not yet activated on Evernote’s production servers) will be rate-limited starting on August 14, 2013. Existing production applications will be rate-limited starting November 1, 2013 November 18, 2013.

Will the Sandbox development server have the same limits?

Yes. The only difference is that if an application exceeds the allowed number of requests, the integration will only have to wait a few seconds before subsequent requests will succeed (as opposed to one hour, as on production). The offending application will receive the same exception on Sandbox as production applications including the rateLimitDuration attribute describing how long the application needs to wait before retrying the failed API request.

If you have any questions, feel free to post it in our developer forum or contact Developer support.

View more stories in 'API'