API

Rate Limiting

A PDF 429 response includes a Retry-After header (seconds to wait)

HTTP/1.1 429 Too Many Requests
retry-after: 42
content-type: application/json
{
  "errors": [
    {
      "message": "PDF download rate limit exceeded (20/minute, 1000/day per account, aggregated across all PDF endpoints). Retry after the Retry-After period.",
      "pointer": ["base"]
    }
  ]
}

Two rate limits apply:

  • Paginated list endpoints with an updated_datetime filter: see List rate limits under Incremental Sync.
  • PDF downloads (any path ending in /pdf): described below.

The PDF limit is per account, aggregated across every PDF endpoint — not per endpoint:

WindowLimit
Per minute20 successful downloads
Per day1,000 successful downloads

Only successful (2xx) downloads count toward the limit. Requests that are rate limited (429), forbidden, or fail to render do not consume quota.

When you exceed the PDF limit, the API returns 429 Too Many Requests with a Retry-After header giving the number of seconds to wait before retrying. The window is sliding, so Retry-After reflects when the oldest counted request ages out — honor it rather than retrying on a fixed schedule.