API rate limits and error codes
How your requests are counted, what the API returns when something goes wrong, and which errors are worth retrying.
Rate limits
Your plan allows a number of API requests per minute: 300 unless your plan says otherwise, counted per account across all of your API keys.
| Kind of call | Counts as |
|---|---|
| Most calls | 1 request |
| Actions that fetch live court data: case lookup, order download, summarization, discovery, refresh, export | 10 requests |
| Bulk imports | 50 requests |
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Over the limit you get 429 with a Retry-After header in seconds. Wait that long and retry. The Historical Search API has its own limit, described on its endpoints.
Error format
Errors use the HTTP status code and a JSON body. The code is a stable number you can branch on in your own code; the message is for people and may be reworded.
{
"httpStatusCode": 400,
"code": 60001,
"message": "Malformed data or missing required parameter values",
"appError": true
}A plan that does not include the product
403 with the code 61470 (PRODUCT_NOT_IN_PLAN). Nothing is charged. Contact CasePrimus.ai to add the product.Error codes
These are the errors documented across the API, with the endpoints where each can occur.
| Status | Code | Message and where it occurs |
|---|---|---|
| 400 | 60001 | Malformed data or missing required parameter values Add entity to watchlist, Search discovered case candidates for an entity |
| 400 | 60400 | Watchlist entity does not exist Get a watchlist entity, Update a watchlist entity, Stop monitoring an entity and 1 more |
| 400 | 60401 | Watchlist case does not exist Get a watchlist case, Update a watchlist case, Stop monitoring a case |
| 400 | 60405 | Real-time court search is only available for company entities - add cases for a person entity manually |
| 400 | 60411 | This candidate has not been approved yet |
| 400 | 60412 | This candidate has already been added to the watchlist |
| 400 | 60415 | You've already made a decision on this candidate |
| 400 | 60435 | This case summary request does not exist |
| 400 | 60436 | This search record does not exist |
| 400 | 61453 | The page token is not valid for this search |
| 400 | 61454 | The search filters are not valid |
| 402 | 61455 | Your plan's search allowance has been used up |
| 403 | 61456 | No data source is enabled for this account |
| 403 | 61465 | Asynchronous collection is not available on your plan. Page through the results with a normal search instead |
| 404 | 60434 | No matching order was found for the number and date provided |
| 404 | 61449 | This search was not found Status of a search, Delete a search now, Next page of a search and 1 more |
| 404 | 61468 | There is no download for this search: only a completed asynchronous search has one |
| 409 | 61451 | Another request on this search is still running. Wait for it to finish, then retry |
| 409 | 61467 | This search is still being collected. Its results can be read once its status is COMPLETE Next page of a search, Download a completed asynchronous search |
| 410 | 61450 | This search is older than its retention period and its results have been deleted. Start a new search |
| 422 | 60433 | Could not download this order right now, please try again shortly |
| 429 | 61457 | Too many requests - slow down and retry after the indicated time |
| 429 | 61466 | Too many of your searches are still being collected. Wait for one to finish, then start another |
| 500 | 60406 | Could not look up this case right now, please try again shortly |
| 503 | 61452 | This page could not be assembled in time. Nothing was delivered or charged - retry with the same page token |
| 503 | 61469 | This order is still being downloaded from the court. Send the same request again in a few seconds - nothing is charged until it is delivered |
Frequently asked questions
What is the CasePrimus.ai API rate limit?
By default your plan allows 300 API requests per minute, counted per account across all of your API keys, unless your plan says otherwise. Most calls count as 1 request. Actions that fetch live court data count as 10, and bulk imports count as 50.
What happens when I go over the limit?
The API returns 429 with a Retry-After header giving the number of seconds to wait. Wait that long and retry. Every response also carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset headers so you can slow down before you hit the limit.
Which errors are safe to retry?
429, and 503 or 500 responses whose message says to try again shortly. Retry the same request after a short wait. A 400, 403, 404 or 422 will not succeed unchanged, so fix the request first.
Am I charged for a failed request?
Calls to a product your plan does not include are refused with 403 PRODUCT_NOT_IN_PLAN and nothing is charged. Where an error message says nothing was delivered or charged, as on some 503 responses, that applies as written.
Last updated 14 October 2026