Skip to main content

Rate Limiting

The API implements rate limiting to ensure fair usage. Please reach out to [email protected] for requests regarding rate limit adjustments.
  • HTTP 429: Too Many Requests
  • Rate limit: 2 requests per second with burst capacity up to 10 requests
  • Implement exponential backoff when receiving rate limit errors

Server Errors

  • HTTP 502/504: Server errors may occur with large queries
  • Reduce page size and retry when encountering server errors
  • Maximum recommended page size: 1000 items

Payload and Timeout Limits

The API has the following technical limitations:
  • Request timeout: 30 seconds maximum
  • Request payload size: 10 MB maximum
  • Response payload size: 6 MB maximum
  • Query complexity: Deep nested queries may hit processing limits
Best practices to avoid limits:
  • Use pagination for large result sets
  • Limit field selection to only required data
  • Avoid deeply nested queries (>5 levels)
  • Consider breaking complex queries or add filtering like grade level or subject.

GraphQL Errors

GraphQL errors are returned in the response body:
{
  "errors": [
    {
      "message": "Field 'invalidField' doesn't exist on type 'Lesson'",
      "locations": [{"line": 2, "column": 5}]
    }
  ]
}