A working proof of concept for turning public U.S. federal IP litigation court records into structured, normalized, searchable data — presented as a discussion of where Chrisian could extend or support Clarivate's Darts-ip data operations, not replace them.
Darts-ip has spent over a decade building the dominant global IP litigation index — 10M+ cases, 140+ countries, 4,100+ courts, ~60,000 new cases added every month, each classified against a proprietary "points of law" taxonomy (300+ categories for patents, 350+ for trademarks) by expert analysts. That scale and legal taxonomy is not something worth trying to out-build.
What is replicable in a short proof of concept is the automation layer underneath it: acquiring source court data, extracting and normalizing it into structured fields, and making it searchable — without a human touching each record. Chrisian has already built and operated this pattern for county civil records; this POC retargets the same pipeline at U.S. federal patent, trademark, and copyright litigation to show it generalizes, and to open a conversation about where Clarivate's own pipeline still leans on manual, costly, or simply out-of-scope work that we could take on.
Rather than scraping PACER or individual court portals directly — fragile, rate-limited, and legally noisy — this POC pulls from CourtListener's RECAP API (operated by the nonprofit Free Law Project), which republishes PACER federal docket data and is fully readable by machine, with no API token required for the search endpoints used here:
/api/rest/v4/search/?type=r, filtered by free-text query and court, returning real docket metadata: case name, docket number, court, filing/termination dates, assigned judge, and cause of action.Each raw docket hit is mapped into a canonical schema before storage:
| Field group | What we capture | Status |
|---|---|---|
| Case identity | Court, docket number, case name, cause of action, PACER case ID | Automated |
| Dates | Filed, terminated, argued | Automated |
| People | Parties, attorneys, law firms (per docket, where the source exposes it) | Automated |
| IP type classification | Patent / trademark / copyright, from cause-of-action code + case name | Automated |
| Patent numbers referenced | Regex extraction from case captions & filing text/snippets | Partial — shallow |
| Disposition | Pending vs. terminated, from docket dates | Automated |
| Outcome / winner | Who prevailed, on what grounds | Not built — needs document read |
| Source documents | Linked filings with description, page count, filing date, OCR’d text snippet | Automated |
Sample of a real normalized record from this run:
{
"case_name": "The American Psychiatric Association v. EmblemHealth, Inc.",
"court": "District Court, S.D. New York",
"docket_number": "1:25-cv-10783",
"cause": "15:1125la Trademark Infringement (Lanham Act)",
"ip_type": "TRADEMARK",
"date_filed": "2025-12-30",
"disposition_status": "PENDING",
"assigned_judge": "John George Koeltl",
"parties": ["EmblemHealth Plan, Inc.", "The American Psychiatric Association", "..."],
"attorneys": ["Jason Samuel Cowart", "Raphael Janove", "..."],
"firms": ["Zuckerman Spaeder LLP", "Janove PLLC", "..."],
"documents": [ { "description": "NOTICE TO ATTORNEY REGARDING CIVIL...", "page_count": 2 } ]
}
Ingestion, snapshotting, field normalization, IP-type classification, and search are 100% automated end-to-end in this POC — confirmed by re-running the pipeline live and inspecting the code path, with no manual data-entry step anywhere between the API call and the search response.
Two things are deliberately not automated, because they can't responsibly be — and this is exactly where Darts-ip itself pays for expert analyst time. Rather than leave that as a slide bullet, the demo portal includes a working Human Review Console: cases needing outcome confirmation or asset verification land in a review queue, an analyst reads the linked source documents and submits a decision, and the structured record is updated with a visible "Human-Verified" badge and audit trail (reviewer name, timestamp, what was confirmed).
We are not proposing to re-index 10M global cases or rebuild an 11-jurisdiction legal taxonomy. We're proposing to take on the acquisition, normalization, and QA-augmented extraction work that is manual, costly to scale, or outside where Clarivate wants to invest engineering time internally — as an extension of the data operations Clarivate already trusts us to run. The review console is the concrete shape of that offer: automation for the 90% that's mechanical, a staffed human-in-the-loop workflow for the 10% that requires legal judgment.
The normalized store is exposed both as a queryable REST API and a browsable demo view:
GET /api/v1/cases/search?ipType=PATENT&court=txed&limit=10 GET /api/v1/stats
The same shape also exports cleanly as batch JSONL for bulk delivery, matching the modality Clarivate's own data-onboarding teams are used to receiving from vendors.