CasePrimus.ai API reference
A REST API for monitoring litigation across India. Keep a watchlist of companies and people, review the court cases found for them, look up a single case on demand, and search a company's case history. Everything the dashboard shows is available to your own systems.
At a glance
- Base URL
https://api.caseprimus.ai/api/caseprimus/v1- Authentication
- API key in the
X-CasePrimus-Api-Keyheader - Format
- JSON over HTTPS
- Default rate limit
- 300 requests per minute per account
- Specification
- OpenAPI 3 (JSON)
26 endpoints in 3 areas
Watchlist API
Add the companies and people you want monitored, review the court cases discovered for them, and manage the cases being tracked.
- POSTAdd entity to watchlistAdds a company or person to the account's watchlist.
- POSTSearch watchlist entitiesSearches the watchlist entities you can see: those in your account and those shared with you.
- GETGet a watchlist entityReturns a single watchlist entity by its id, including risk fields computed from its active cases.
- PUTUpdate a watchlist entityUpdates the details of a watchlist entity.
- DELETEStop monitoring an entityStops monitoring an entity.
- POSTSearch discovered case candidates for an entityCustomer's own view of court-case candidates found against this company.
- POSTAdd a candidate to the watchlistConfirms a discovered case candidate as a tracked case.
- POSTDecline a candidateDeclines a discovered case candidate: your "no" to it.
- POSTAdd a case to the watchlistAdds a case to the watchlist, either manually or by confirming a match from a case search (pass its result as snapshot).
- POSTSearch watchlist casesRequires case.read. Only cases visible to the caller (own + shared) are returned; archived cases are excluded. Also how the "Monitored" tab of a company's case list is populated (filter by watchlistEntityIds).
- GETGet a watchlist caseReturns a single tracked case by its id, including its case identifier, status, risk level and the entities it is linked to.
- PUTUpdate a watchlist caseChanges a case's riskLevel and/or status.
- DELETEStop monitoring a caseStops monitoring a case.
Live Case Lookup API
Look up a single case on demand by its case number or CNR, download its orders, and generate an AI summary. No watchlist entry needed.
- POSTLook up a case by its identifierDirect case-number/CNR lookup - one-time, on-demand, not tied to any watchlist entity.
- POSTDownload Case OrderReturns a link to ONE order's document - the same answer for every court.
- POSTGenerate an AI case summary and risk level, on demandCasePrimus's AI summarization - resolves every order's document itself and produces a case summary, risk justification, and risk level, for a case that's only been looked up via POST /case-lookup, not added to the watchlist.
- GETPoll an on-demand case summaryorderSummaries/riskLevel/caseSummary are returned on every poll (not just once COMPLETE) so per-order progress shows up as each order's own summary finishes.
- GETList case types and benches for a court typeReturns the options for the lookup form's court-specific fields.
- GETRecent case-number lookupsLast 10 DISTINCT cases looked up by anyone on this account (account- wide, not per-user) - one row per case, not per fetch: searching (or Discovery-candidate "Fetch Live Data"-ing) the same case again updates fetchCount/lastFetchedAt on the same row rather than adding a new one.
- GETRead back a previously looked-up caseReads back a case you looked up earlier, exactly as it was stored.
Historical Search API
Search a company's court-case history without adding it to a watchlist. Results come back in pages of 100.
- GETList recent searchesThis account's searches, newest first, with their status and counts.
- POSTStart a historical searchStarts a search for a company and returns its first page in the same call: exactly 100 cases (fewer only when that is all there is), a `searchId`, and a `nextPageToken` (null when there is nothing more).
- GETStatus of a searchStatus and counters.
- DELETEDelete a search nowDeletes the search's results immediately.
- GETNext page of a searchReturns the next 100 cases after `pageToken`.
- GETDownload a completed asynchronous searchFor an asynchronous search whose status is COMPLETE: a fresh link (valid for 15 minutes) to ONE JSON file with the whole result set - the search, its `resultCount`, any `warnings` and every result, in the same shape and order as the pages.
Before you start
Frequently asked questions
What is the base URL of the CasePrimus.ai API?
https://api.caseprimus.ai/api/caseprimus/v1. All requests use HTTPS, and request and response bodies are JSON.
How do I authenticate API requests?
Send your API key in the X-CasePrimus-Api-Key header. Create keys in the Developer console of your CasePrimus.ai dashboard. Requests can optionally be signed and encrypted for extra protection.
Is there an OpenAPI specification?
Yes. The public API is described in an OpenAPI 3 document you can download and import into Postman, Insomnia or a code generator.
How are API requests rate limited?
By default 300 requests per minute per account, counted across all your API keys, unless your plan says otherwise. Calls that fetch live court data count as 10 requests and bulk imports as 50.
Last updated 14 October 2026