Rate Limiting
Rate limits protect Planet's infrastructure and experience for all customers. Planet APIs will respond with an HTTP 429 Too Many Requests status code when rate limits have been exceeded. When this happens, we recommend retrying with an exponential backoff to slow down the request volume.
The Planet Python client will automatically handle this condition and retry several times.
Retry Guidance
When rate limits are exceeded, responses may include a Retry-After header indicating when to retry. If present, respect this header and use exponential backoff.
Rate limits vary by API and plan. Plan-level rate limits and quotas are published on the Platform pricing page. Some API references may also include endpoint-specific limits.
Rate Limit Scopes
Some API references include rate limits with scope labels such as unauthenticated, burst, and sustained.
unauthenticatedlimits apply to requests that are not authenticated.burstlimits apply to short spikes of traffic over a short time window, such as requests per second.sustainedlimits apply to continued request volume over a longer time window, such as requests per minute.
A request must stay within all applicable limits. For example, an API may allow a short burst of requests per second while also enforcing a lower sustained rate across a full minute.
Always handle HTTP 429 Too Many Requests responses by respecting the Retry-After header when present and retrying with exponential backoff.
Rate Limiting and Processing Units
Rate limiting can apply to both HTTP requests and processing units. Depending on the API and your account, a request may count toward:
- One or more request-based limits (for example, requests per minute or per month)
- One or more processing unit-based limits (for example, processing units per minute or per month)
- Both
Rate limits may be enforced across multiple time windows. A request can be within the per-minute limit but still be rate limited if you have exceeded a longer-term limit (for example, a monthly limit).
APIs are often protected by multiple rate limits. To avoid HTTP 429 responses, each limit must be satisfied.
Example
Assume the following limits:
- 100 requests per minute
- 100 processing units per minute
If each request costs 2 processing units, only 50 requests can succeed in a minute (50 × 2 = 100). The remaining requests exceed the processing unit limit and return HTTP 429, even though the request limit is 100 per minute.
Unused requests and unused processing units do not carry over to the next time period.
For more information, see processing units.