REST API Connection and Request Limits

Summary

Handling 606 rate limiting, 607 daily quota, and 615 concurrency errors.

Issue

An API user is receiving rate (606), quota (607), or concurrency (615) errors when connecting to the Marketo Engage REST API. The errors will be evident in the responses to the requests creating them and in admin notifications as a web services error notification.
Web Services Error Notification Example  Error code 606 JSON example

Solution

The Marketo Engage REST API is protected by 3 limitations on the number of requests made: daily quota, request rate, and the number of simultaneous/concurrent requests. The errors generated when on of these limits is exceeded are recoverable by waiting the appropriate amount of time before retrying the request.

Daily Quota: Error Code 607

This error indicates that the number of requests made since 12:00AM CST has exceeded the daily quota. The daily quota varies and can be found in your Admin->Web Services menu.  Contact your account manager if you require increased daily quota.

Rate Limit: Error Code 606 and Concurrency Limit: Error Code 615

Handling concurrency and rate limiting errors is similar. In each case, the request should be tried again after a waiting period.

At most 10 requests can be processed by any Marketo Engage instance at a time. Error code 615 will be returned if there are already 10 open HTTP connections to the instance's REST API and an attempt is made to create an 11th connection.

At most, 100 requests can be processed by any Marketo Engage instance in any rolling 20 second window of time. Error code 606 will be returned if there have already been 100 requests in the last 20 seconds.

In both cases, an exponential backoff retry strategy will allow your application to eventually make a successful request. All popular web development languages have libraries available which implement exponential backoff: using an existing library is highly recommended.

Unlike daily quota which an be increased through your account manager, rate and  concurrency limits cannot be changed.

Further Reading

  • For information on implementing your own exponential backoff algorithm, see Devopedia's article on Binary Exponential Backoff.
  • For more best practices to apply when using the Marketo Engage REST API, see this page.

Labels (1)