Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.case.dev/llms.txt

Use this file to discover all available pages before exploring further.

Search federal court dockets or retrieve a specific docket with optional filing entries. Covers all federal district and appellate courts. Use legal.listCourts() to resolve court slugs for filtering.

Search dockets

Endpoint
POST /legal/v1/docket
curl -X POST https://api.case.dev/legal/v1/docket \
  -H "Authorization: Bearer $CASEDEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "search",
    "query": "Apple v. Samsung",
    "court": "cand",
    "dateFiledAfter": "2020-01-01",
    "limit": 10
  }'

Look up a docket

Retrieve a specific docket by ID.
curl -X POST https://api.case.dev/legal/v1/docket \
  -H "Authorization: Bearer $CASEDEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "lookup",
    "docketId": "4214664"
  }'

Look up docket entries

Pass includeEntries: true in lookup mode to return the docket plus filing entries and attached RECAP document metadata.
curl -X POST https://api.case.dev/legal/v1/docket \
  -H "Authorization: Bearer $CASEDEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "lookup",
    "docketId": "4214664",
    "includeEntries": true,
    "limit": 10,
    "offset": 0
  }'

Live PACER fetch

For dockets not yet in the RECAP archive, you can trigger a live fetch from PACER. This purchases fresh docket data using CaseMark’s PACER account and ingests it into the RECAP archive.
Live PACER fetches incur PACER fees of up to $3.00 per docket sheet, plus a $0.05 service fee. You must pass acknowledgePacerFees: true to confirm you accept these charges.
curl -X POST https://api.case.dev/legal/v1/docket \
  -H "Authorization: Bearer $CASEDEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "lookup",
    "docketId": "4214664",
    "live": true,
    "acknowledgePacerFees": true
  }'

How it works

  1. The endpoint first tries to fetch the docket from the free RECAP archive
  2. If live: true, it triggers a live PACER purchase to fetch fresh docket data
  3. CaseMark’s PACER account is used — you don’t need your own PACER credentials
  4. The fetch typically takes 5-30 seconds depending on docket size
  5. Once fetched, the docket is added to the RECAP archive and freely available for future lookups

Cost and guardrails

ItemCost
Service fee$0.05 per request
PACER feeUp to $3.00 per docket sheet (PACER’s cap)
Maximum total$3.05 per fetch
Additional guardrails:
  • Daily spend cap: $25/day per organization (resets at midnight UTC)
  • Fee acknowledgment required: Requests without acknowledgePacerFees: true return 400
  • Free tier users: The standard $10 free credit limit applies — live fetches count toward it

Live fetch response

When live: true, the response includes a pacerFees object:
{
  "type": "lookup",
  "live": true,
  "docket": { ... },
  "pacerFees": {
    "serviceFee": 0.05,
    "maxPacerCost": 3.00,
    "currency": "USD",
    "fetchDurationMs": 12500
  }
}

Resolve court IDs

Court slugs like cand, nysd, ca9 identify specific courts. Use legal.listCourts() to search for the correct slug to pass as the court parameter in legal.docket().
Endpoint
POST /legal/v1/courts
curl -X POST https://api.case.dev/legal/v1/courts \
  -H "Authorization: Bearer $CASEDEV_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "northern district california",
    "jurisdiction": "FD"
  }'

Jurisdiction codes

CodeJurisdiction
FFederal (all)
FDFederal District
FBFederal Bankruptcy
FAFederal Appellate
FSFederal Special (e.g. Tax Court)
SState (all)
SAState Appellate
SSState Supreme

Parameters

ParameterTypeRequiredDescription
type'search'YesSearch mode
querystringYesCase name or party name (2-500 chars)
courtstringNoCourt slug (e.g. cand, ca9). Use legal.listCourts() to find slugs.
dateFiledAfterstringNoLower bound filing date (YYYY-MM-DD)
dateFiledBeforestringNoUpper bound filing date (YYYY-MM-DD)
limitintegerNoPage size (1-100, default 25)
offsetintegerNoPagination offset (default 0)

Docket lookup

ParameterTypeRequiredDescription
type'lookup'YesLookup mode
docketIdstringYesDocket ID
includeEntriesbooleanNoInclude docket entries/filings (default false).
livebooleanNoTrigger live PACER fetch (default false)
acknowledgePacerFeesbooleanNoRequired when live: true — confirms PACER fee acceptance
limitintegerNoEntries page size (1-100, default 25)
offsetintegerNoEntries pagination offset (default 0)

Courts lookup

ParameterTypeRequiredDescription
querystringNoSearch court name (min 2 chars)
jurisdictionstringNoFilter by jurisdiction code
inUseOnlybooleanNoOnly courts with docket data (default true)
limitintegerNoPage size (1-100, default 50)
offsetintegerNoPagination offset (default 0)

Response fields

Docket object

FieldTypeDescription
idstringDocket ID
caseNamestringFull case name
docketNumberstringCourt docket number (e.g. 5:11-cv-01846)
courtstringFull court name
courtIdstringCourt slug
dateFiledstringFiling date
dateTerminatedstring | nullTermination date
causestring | nullCause of action (e.g. 35 U.S.C. 271 Patent Infringement)
natureOfSuitstring | nullNature of suit classification
partiesstring[]Party names
assignedTostring | nullAssigned judge
urlstringDocket detail URL
pacerCaseIdstring | nullPACER case ID

Docket entry

FieldTypeDescription
entryNumberintegerFiling number on the docket
datestringFiling date
descriptionstringDocket text (e.g. “COMPLAINT filed by Apple Inc.”)
documentsarrayAttached RECAP documents

Document

FieldTypeDescription
idstringDocument ID
documentNumberstringDocument number
attachmentNumberinteger | nullAttachment number (null for main document)
descriptionstringDocument description
pdfUrlstring | nullPDF download URL (if available in RECAP)
pageCountinteger | nullNumber of pages
isAvailablebooleantrue = free via RECAP archive, false = requires PACER

Pricing

MethodPrice
legal.docket()Free
legal.listCourts()Free

Data source

All docket data comes from CourtListener’s RECAP archive, which aggregates federal court filings contributed by the RECAP browser extension. Coverage includes:
  • All federal district courts
  • All federal appellate courts
  • Federal bankruptcy courts
  • Specialty courts (Tax Court, Court of Federal Claims, etc.)
RECAP coverage varies by court and case. High-profile cases and active litigation tend to have the most complete filing histories.