Skip to main content
Search federal court dockets or retrieve a specific docket with optional filing entries via CourtListener’s RECAP archive. Covers all federal district and appellate courts. Use legal.listCourts() to resolve court slugs for filtering.

Search dockets

Endpoint
POST /legal/v1/docket
const results = await client.legal.docket({
  type: 'search',
  query: 'Apple v. Samsung',
  court: 'cand',                // Northern District of California
  dateFiledAfter: '2020-01-01',
  limit: 10,
});

console.log(`Found ${results.found} dockets`);

for (const docket of results.dockets) {
  console.log(`${docket.caseName} (${docket.docketNumber})`);
  console.log(`  Court: ${docket.court}`);
  console.log(`  Filed: ${docket.dateFiled}`);
}

Look up a docket

Retrieve a specific docket by CourtListener ID, optionally including the full list of filings.
const docket = await client.legal.docket({
  type: 'lookup',
  docketId: '4214664',
  includeEntries: true,
  limit: 50,
});

console.log(`${docket.docket.caseName}`);
console.log(`Assigned to: ${docket.docket.assignedTo}`);

if (docket.entries) {
  for (const entry of docket.entries) {
    console.log(`#${entry.entryNumber} (${entry.date}): ${entry.description}`);
    for (const doc of entry.documents) {
      const status = doc.isAvailable ? 'FREE via RECAP' : 'PACER only';
      console.log(`  Doc ${doc.documentNumber}: ${status}`);
    }
  }
}

Resolve court IDs

Court slugs like cand, nysd, ca9 are CourtListener identifiers. Use legal.listCourts() to search for the correct slug.
Endpoint
POST /legal/v1/courts
const courts = await client.legal.listCourts({
  query: 'northern district california',
  jurisdiction: 'FD',  // Federal District
});

for (const court of courts.courts) {
  console.log(`${court.name} → ${court.id}`);
  // "U.S. District Court for the Northern District of California → cand"
}

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)
courtstringNoCourtListener court slug (e.g. cand, ca9)
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
docketIdstringYesCourtListener docket ID
includeEntriesbooleanNoInclude docket entries/filings (default false)
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
idstringCourtListener docket ID
caseNamestringFull case name
docketNumberstringCourt docket number (e.g. 5:11-cv-01846)
courtstringFull court name
courtIdstringCourtListener court 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
urlstringCourtListener 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 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

Document availability

Documents on a docket have an isAvailable flag:
  • true — The PDF is freely available via the RECAP archive. The pdfUrl field contains a direct download link.
  • false — The document exists but is only available via PACER (paid). The document metadata (number, description, page count) is still returned so you know it exists.
This lets you build UIs that show the full filing history while clearly indicating which documents are free to access.

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.