Skip to content

Rate Limits

The API has a single free tier with the following limits:

Limit Value
Requests per second 10
Burst 20
Monthly requests 30,000

Per-endpoint throttle overrides

Historical endpoints have lower rate limits to protect against abuse:

Endpoint Rate limit
/gp/{id}/history 2 req/s
/gp/{id}/nearest 2 req/s
/gp/{id}/adjacent 2 req/s
All other endpoints 10 req/s (plan default)

Pagination limit

Maximum pagination offset is 10,000. Use filters to narrow results for large datasets.

Rate limit headers

Every response includes rate limit information:

Header Description
X-RateLimit-Limit Monthly quota
X-RateLimit-Reset UTC epoch seconds when the quota resets (start of next month)

Exceeding the limit

If you exceed the rate limit, you'll receive a 429 Too Many Requests response:

{
  "error": "TooManyRequests",
  "message": "Rate limit exceeded. Try again in 3 seconds.",
  "status": 429
}

Best practices

Cache responses locally. Current GP data is updated once per day. There's no need to poll more frequently than every few hours for most use cases.

Use bulk endpoints. Instead of requesting one satellite at a time in a loop, use GET /gp with filters (e.g., ?group=starlink) to fetch many records in a single request.

Respect X-RateLimit-Limit. Implement exponential backoff on 429 responses.