Take a live AI-guided product tour with Lando.Launch AI demo
Document type

Extracting data from litigation complaints

Most civil lawsuits open with a complaint, drafted by the plaintiff's lawyers to the rules of the court that receives it. Federal district courts take in more than a quarter of a million civil cases a year. Diligence, insurance and litigation teams pull complaints from court dockets, through PACER or a state e-filing portal.

A reader needs the court, the case number, the parties, each claim with its statute and the relief requested. A litigation tracking system logs each case against the named parties, where a diligence team or insurer reviews it to size the exposure.

Page 1 of a sample Litigation Complaint, with extracted values outlined
49,979Markdown characters
205parse blocks
28fields extracted
The problem

What makes litigation complaints hard

Pleading paper adds its own text

California courts require numbered lines down the left margin. A footer title and the court's filing stamp add more text outside the pleading itself.

Claims live in numbered prose

A complaint sets out its claims and the facts behind them across dozens of numbered paragraphs, with headings that vary by drafter.

The caption packs the parties

The caption sets every party in a box beside the case number, and a multi-party suit can carry it onto a second page.

How it works

Parse, extract, verify

1

Parse

Parse turns the document into reading-order Markdown and a hierarchy of blocks (text, tables, figures), and grounds each block to its exact location on the page.

2

Extract

You define the fields in a JSON schema, and Extract returns their values in a consistent, structured format, each linked back to where it appears in the Markdown.

3

Verify

Each value links back to where it appears, down to the character range in the Markdown, and the page and bounding box in the source document, so every result can be verified.

Worked example

One litigation complaint, end to end

About this document: The Justice Department's antitrust complaint against Hewlett Packard Enterprise and Juniper Networks, filed in the Northern District of California to block HPE's acquisition of Juniper. Its 21 portrait pages sit on numbered pleading paper, with the court's filing stamp across the top of each. Page 1 carries the caption, and numbered paragraphs of allegations run to the request for relief. Page 1 is featured.

Processing objective: The objective is to identify the case from its caption: which court, which docket and who is suing whom. The caption's case number box is blank, as on any complaint at filing, so the number comes from the court's filing stamp at the top of the page.

Demonstration fields: Court, Case number, Plaintiff, First defendant, Second defendant

The document

4 of 21 pages
  • Page 1 of the sample Litigation ComplaintPage 1shown below
  • Page 2 of the sample Litigation ComplaintPage 2
  • Page 11 of the sample Litigation ComplaintPage 11
  • Page 20 of the sample Litigation ComplaintPage 20

Where each value came from

Page 1 of the sample Litigation Complaint, with every featured field outlined
Courtcourt_district
NORTHERN DISTRICT OF CALIFORNIA
The region of the sample Litigation Complaint containing Court, with the extracted value outlined
extraction_metadata["court_district"]
{
  "value": "NORTHERN DISTRICT OF CALIFORNIA",
  "page": 1,
  "range": {
    "end": 538,
    "start": 507
  },
  "box": {
    "xmin": 0.33781,
    "ymin": 0.36525,
    "xmax": 0.71923,
    "ymax": 0.37989
  }
}
Case numbercase_number
3:25-cv-00951
The region of the sample Litigation Complaint containing Case number, with the extracted value outlined
extraction_metadata["case_number"]
{
  "value": "3:25-cv-00951",
  "page": 1,
  "range": {
    "end": 18,
    "start": 0
  },
  "box": {
    "xmin": 0.19888,
    "ymin": 0.01537,
    "xmax": 0.3777,
    "ymax": 0.03046
  }
}
Plaintiffplaintiff
UNITED STATES OF AMERICA
The region of the sample Litigation Complaint containing Plaintiff, with the extracted value outlined
extraction_metadata["plaintiff"]
{
  "value": "UNITED STATES OF AMERICA",
  "page": 1,
  "range": {
    "end": 565,
    "start": 541
  },
  "box": {
    "xmin": 0.11679,
    "ymin": 0.41531,
    "xmax": 0.38746,
    "ymax": 0.42964
  }
}
First defendantdefendants[0]
HEWLETT PACKARD ENTERPRISE CO.
The region of the sample Litigation Complaint containing First defendant, with the extracted value outlined
extraction_metadata["defendants[0]"]
{
  "value": "HEWLETT PACKARD ENTERPRISE CO.",
  "page": 1,
  "range": {
    "end": 611,
    "start": 581
  },
  "box": {
    "xmin": 0.11657,
    "ymin": 0.51913,
    "xmax": 0.46749,
    "ymax": 0.53514
  }
}
Second defendantdefendants[1]
JUNIPER NETWORKS, INC.
The region of the sample Litigation Complaint containing Second defendant, with the extracted value outlined
extraction_metadata["defendants[1]"]
{
  "value": "JUNIPER NETWORKS, INC.",
  "page": 1,
  "range": {
    "end": 638,
    "start": 612
  },
  "box": {
    "xmin": 0.11618,
    "ymin": 0.53697,
    "xmax": 0.39346,
    "ymax": 0.5536
  }
}

How to try it yourself

Everything on this page is reproducible. The sample, its schema, and the Parse and Extract API outputs are published. You can repeat the same two calls from whichever surface you already build on.

  • Claude Skilldescribe the job; the agent writes it
  • CLIno code at all
  • MCPexpose ADE docs as an agent tool
  • REST APIany language
  • Pythonlandingai-ade
  • TypeScriptlandingai-ade
Why LandingAI?

Documents into data

Accurate

The best accuracy on the difficult documents other tools get wrong, such as messy scans, complicated tables, checkboxes and handwriting.

Auditable

Every answer cites its sources. Values come back with an audit trail (page, bounding box, character range) so a human can review them.

Agentic

Applies multi-step reasoning, and plans before it acts. Handles documents it has never seen before and adapts to variations.

API-first

Composable APIs that drop into any tech stack and can be called from anywhere. Easy to build on and embed in your pipelines and products.

Affordable

Cost-competitive rates with complete price transparency. Spend controls before you run, and every job reports its exact cost.

Enterprise-grade

Built for production and scale from day one. Fully observable and monitored, running securely in our cloud or yours.

Built for high-volume, high-throughput production

  • Zero data retention
  • Priority rate limits
  • Enhanced support
  • VPC and on-prem deployment

Available on Team and Enterprise plans. VPC and on-prem deployment require an Enterprise plan.

Compare plans
Capabilities

Litigation Complaint processing highlights

Caption, court and case number
Multiple plaintiffs and defendants
Court filing stamps
Causes of action with citations
Numbered paragraph counts
Prayer for relief items
Jurisdiction and venue bases
Line numbers kept as marginalia
Counsel and signature blocks
Long filings with exhibits
Native PDFs and scans
Bounding box for every value
FAQs

Questions, answered

Parsing returns the line number column and the page footers as marginalia blocks, separate from the body text, so the numbered paragraphs read continuously. Setting blocks.marginalia.markdown to false drops marginalia from the Markdown altogether.

Yes. Define claims and relief as arrays in the schema. Each cause of action comes back with its statute and citation. Each lettered item of the prayer for relief is its own entry, in the order the complaint lists them.

Parse Jobs on the standard tier accept PDFs up to 6,000 pages and 1 GiB, so a complaint with its exhibits runs as one document. Synchronous requests suit shorter filings, within your plan's per-minute page limit.

Yes. A schema names the fields and describes them in plain language, and property order is independent of the page. Extraction is schema-driven, so results stay consistent across federal and state court layouts.

Every extracted value carries the character ranges it was quoted from in the parsed Markdown. The Ground API maps those ranges to a page and a bounding box, so a reviewer opens the complaint at the paragraph that states the claim.

Start extracting litigation complaint data

Reliable, structured outputs with full traceability in minutes