CaliforniaCourtIntel enforces rate limits to ensure fair API access for all users. Limits are applied per API key on a rolling one-minute window.
Rate limits by plan. Firm plan: 1,000 requests per minute. Enterprise plan: custom limit (negotiated at signup; default is 5,000 requests per minute). Contact your account manager to request a higher limit.
Rate limit headers. Every API response includes the following headers so you can monitor your usage in real time: X-RateLimit-Limit (your plan's limit per minute), X-RateLimit-Remaining (requests remaining in the current window), X-RateLimit-Reset (Unix timestamp when the window resets), and Retry-After (only present on 429 responses — seconds until you can retry).
What happens when you exceed the limit. If you exceed your rate limit, the API returns a 429 Too Many Requests response with a Retry-After header. The request is not queued — you must retry after the specified delay. Your application should implement exponential backoff on 429 responses.
Best practices for staying under limits. (1) Cache responses. Judge profiles and court directory data change infrequently. Cache GET /v1/judges/:id responses for at least one hour. (2) Use bulk endpoints. Prefer GET /v1/judges?ids=id1,id2,id3 over three separate judge requests when fetching multiple profiles. (3) Use webhooks instead of polling. Subscribe to CaliforniaCourtIntel webhooks for tentative ruling events instead of polling GET /v1/rulings on a schedule. (4) Paginate efficiently. Use the cursor-based pagination (cursor parameter) on list endpoints rather than offset pagination for large datasets — it is more efficient and does not count against your limit differently.
Monitoring usage. Go to Settings, then API Keys and click Usage next to any key to see a 30-day chart of request volume broken down by endpoint and response code. Usage spikes and 429 trends are visible here before they become a problem.