API rate limits by plan tier and how to handle throttling
The GeoSheet API enforces rate limits to ensure fair usage and platform stability. Limits are applied per API key using a sliding window algorithm.
Limits by plan
| Plan | Requests per minute |
|---|---|
| Professional | 100 |
| Enterprise | 1,000 |
How the sliding window works
Rate limits use a 60-second sliding window. Each request is timestamped, and the API counts how many requests the key has made in the most recent 60-second period. If the count exceeds the plan limit, subsequent requests are rejected until older requests fall outside the window.
Exceeding the limit
When your key exceeds its rate limit, the API returns:
HTTP 429 Too Many Requests
The response includes a Retry-After header indicating how many seconds to wait before retrying:
Retry-After: 12
Best practices
- Batch operations -- use the bulk cells endpoint (
PUT /v1/geosheets/:id/cells) to write multiple cells in a single request instead of one request per cell. - Cache reads -- if your application reads the same data frequently, cache responses on your side.
- Implement backoff -- when you receive a 429, wait for the duration specified in
Retry-Afterbefore retrying. Exponential backoff with jitter is recommended for high-throughput applications. - Monitor usage -- track your request count to stay within limits and avoid disruptions.
Need higher limits?
Enterprise plans support custom rate limits. Contact us to discuss your requirements.