To prevent errant or resource-intensive scripts from negatively impacting the
availability of the service, Earth Engine has a per user quota on concurrent queries.
There are separate limits for computation requests (that is, requests with paths that begin
/api/…) and map tile requests (that is, requests with paths that begin
Service accounts and quota
Applications that proxy API requests through a single
service account are subject to the same
concurrent request quota as individual users. If the quota is exceeded, Earth Engine
HTTP 429: Too Many Requests errors. Generally, these errors are
handled by the Earth Engine client library, which
requests in exponential backoff, retrying the query until it succeeds. The Earth
Engine client library will retry the request five times. To help avoid
receiving 429 errors, you may want to enable caching for your application, for example using
memcache, to avoid redundant queries when possible. If using an older version of
the Earth Engine client library that does not retry queries automatically, or if a query
is still not completed after five retries, you may need to implement exponential backoff
In special cases, we may raise the limits for specific uses. Contact email@example.com if your app is consistently hitting request limits and you would like to be considered for a quota increase.
App Engine deadlines
Although recent versions of the Earth Engine client library retry queries for you,
computationally intensive queries may take longer than App Engine deadlines.
Specifically, you may need to increase the default deadline for queries to external
endpoints by specifying a
urlfetch deadline as shown in
example. Another approach is to wrap the App Engine requests in exponential
backoff. For example, you can use the
library to decorate
get calls. Note: these deadlines are App Engine
limits (not Earth Engine limits), but strategies to deal with them are presented here for
convenience. See this
article for more details.