LEGAL

CourtListener Case Automation

Automated daily extraction of federal court records across all US circuit courts. Scheduling system that tracks new filings, downloads documents, and exports structured data for legal research teams.

50K+ recordsGoogle Sheets + Daily Email AlertsOngoing daily

The challenge.

A legal research firm needed daily access to new federal court filings across all 13 US circuit courts, but CourtListener's interface only supports manual case-by-case searches. Their paralegals were spending 15+ hours per week copying case data into spreadsheets, and still missing filings due to the volume.

The approach.

01

API Integration & Rate Management

Built a Python client around CourtListener's REST API with intelligent rate limiting, automatic retry logic, and pagination handling to pull filings across all circuit courts without triggering blocks.

02

Scheduling & Change Detection

Implemented a daily cron job that tracks the last-seen filing ID per court, fetching only new records each run. Deduplication logic prevents double-counting when filings appear in multiple searches.

03

CAPTCHA Bypass & Session Management

Integrated an auto-CAPTCHA solving service for the occasional challenge pages, with persistent session cookies to minimize solve frequency and keep the pipeline uninterrupted.

04

Structured Export Pipeline

Parsed raw API responses into normalized rows with case number, parties, judge, filing date, document type, and docket text. Automated delivery to Google Sheets with per-court tabs and daily summary alerts.

Sample output.

courtlistener-case-automation.json
{
  "case_number": "23-cv-04817",
  "court": "US Court of Appeals, 9th Circuit",
  "parties": "Martinez v. State Farm Insurance",
  "judge": "Hon. Sandra Ikuta",
  "filing_date": "2024-11-18",
  "document_type": "Motion to Dismiss"
}

The results.

50K+

Records extracted

15hrs/wk

Manual work eliminated

99.7%

Data accuracy rate

<2min

Daily pipeline runtime

Tech stack.

PythonAPI IntegrationGoogle SheetsDaily SchedulingAuto CAPTCHA

Ready to get your data?

Book a 30-minute call and I’ll scope your project live. No commitment required.

Or reach out directly:

hello@sidb.work