# US Court Records Intel - Party, Attorney, Litigation Portfolio (`seibs.co/court-records-intel`) Actor

Federal + state court records intelligence via CourtListener. Party monitoring, attorney tracking, litigation portfolio analysis, recent filings alerts, RECAP document lookup. For law firms, debt collectors, insurance due diligence, journalists, M\&A intel.

- **URL**: https://apify.com/seibs.co/court-records-intel.md
- **Developed by:** [Seibs.co](https://apify.com/seibs.co) (community)
- **Categories:** Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 60.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 case records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## US Court Records Intel

Federal + state court records intelligence via CourtListener + RECAP - party monitoring, attorney tracking, litigation portfolios, recent-filings alerts, document lookup.

### What does US Court Records Intel do?

It hits the CourtListener REST API and the RECAP archive to return actionable case intelligence rather than raw search dumps - per-party rollups, attorney case-load by year, corporate-entity litigation portfolios with settlement-ratio estimates, recent-filings alerts since a date, and metadata + optional plain text for documents already archived in RECAP.

### AI / RAG / Agent

Federal and state court records prepared for legal AI agents and paralegal LLMs. RECAP document text is returned in clean plain-text ready to embed, and party / attorney / portfolio rollups give an agent the structured context it needs to answer "what has this entity been sued for" without scraping PACER. Compatible with **LangChain**, **LlamaIndex**, **Pinecone**, **Weaviate**, **Chroma**, and **MCP**-aware agent runtimes (Claude Desktop, GPT, custom).

```python
from apify_client import ApifyClient
from langchain.schema import Document
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings

client = ApifyClient("APIFY_TOKEN")
run = client.actor("you/court-records-intel").call(run_input={
    "mode": "litigation_portfolio",
    "entity": "Acme Corp",
    "includeRecapText": True,
})

splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=150)
raw = [
    Document(
        page_content=doc["plain_text"],
        metadata={
            "case_name": item["case_name"],
            "court": item["court"],
            "docket_number": item["docket_number"],
            "filed": item["date_filed"],
            "judge": item.get("judge"),
            "doc_id": doc["recap_id"],
        },
    )
    for item in client.dataset(run["defaultDatasetId"]).iterate_items()
    for doc in item.get("documents", []) if doc.get("plain_text")
]

Chroma.from_documents(splitter.split_documents(raw), OpenAIEmbeddings(),
                       collection_name="litigation-rag")
````

### Features

- Party monitoring - feed in a person or company; get every case they appear in with role, status, jurisdiction, judge, filing + termination dates.
- Litigation portfolio analysis - corporate-entity rollup: active vs closed counts, settlement-ratio estimate, average case duration, top jurisdictions, top judges, top opposing counsel.
- Attorney tracking - case load by year, derived practice areas, frequency of opposing counsel.
- Recent filings monitor - new dockets in specified courts / by specified parties / matching keywords since a date.
- RECAP document lookup - URLs + metadata + optional extracted plain text for documents already in the free RECAP archive.
- Patent-litigation crossover (schema-only stub) - reserved field for a future USPTO assignee cross-reference.

### Use cases

- Law firms - competitive intel on opposing firms, conflict-check pre-screen, attorney book-of-business audits.
- Debt collection - find every active case where a target is a defendant.
- Insurance and M\&A due diligence - litigation-portfolio rollups for a target entity in one shot.
- Litigation funders - filter by nature of suit + entity to surface fundable cases.
- Investigative journalists - track filing patterns, cluster by judge / firm / party.
- Competitive intel - monitor patent-litigation hot courts (E.D. Tex.) or securities-litigation hot courts (S.D.N.Y.).

### FAQ

**Q: Is this legal?**
A: Yes. Federal court dockets and documents are public records. The actor pulls primarily from RECAP (a free, donation-funded mirror of PACER documents) and CourtListener's open API. No PACER credentials are required and no PACER fees are incurred for documents already in RECAP.

**Q: What's RECAP?**
A: RECAP is a free public archive of federal court documents hosted by the Free Law Project. When PACER users install the RECAP browser extension, every document they pay PACER to download is also uploaded to RECAP for free public access. RECAP now mirrors millions of dockets and tens of millions of documents from all 94 federal districts, 13 circuit courts, the bankruptcy courts, and SCOTUS. This actor reads RECAP via CourtListener's API so you get PACER coverage without PACER bills.

**Q: Why might a run fail?**
A: The three most common failure modes are (1) CourtListener API rate-limiting on very wide party / keyword searches (the actor handles backoff), (2) a target case existing in PACER but not yet mirrored to RECAP - that document will return a "not in RECAP" sentinel rather than crash the run, and (3) ambiguous party names that match dozens of unrelated entities - tighten by court, date window, or nature-of-suit code.

**Q: How fresh is the data?**
A: RECAP coverage of new filings depends on PACER users with the RECAP extension - hot dockets (high-profile cases, securities litigation, IP cases) are mirrored within hours, while obscure cases may take days or weeks. Docket metadata via CourtListener's PACER-RSS integration is typically same-day for participating courts.

**Q: Can I schedule this daily or weekly?**
A: Yes. Daily cron is appropriate for `recent_filings` and `attorney_tracking` (new dockets land daily). Weekly is fine for `litigation_portfolio` and `party_search` (rollup reports). Apify Schedules + dedupe on `docket_id` gives clean deltas.

**Q: Does it integrate with my CRM or data tooling?**
A: Yes. Apify webhooks POST every run to HubSpot, Salesforce, Pipedrive, Apollo, Slack, or any HTTP endpoint. Zapier, Make.com, and n8n templates available. Dataset exports as JSON / CSV / Excel / XML for litigation-management systems (LegalTracker, Mitratech, Tymetrix), conflict-check workflows, or BI tools.

**Q: How does pricing work?**
A: PAY\_PER\_EVENT. You pay per case / docket record emitted, with surcharges on per-document `document_lookup` events and per-attorney / per-portfolio rollups. You only pay for what the actor actually emits.

### Related Actors

- [sec-edgar-intel](https://apify.com/) - cross-reference securities-litigation defendants against EDGAR filings (10-K risk factors, 8-K disclosures, restatements) for full due-diligence context.
- [uspto-patent-intel](https://apify.com/) - pull the patent portfolios of parties in E.D. Tex. / D. Del. / N.D. Cal. patent-litigation cases to map the asserted IP.
- [b2b-sales-triggers](https://apify.com/) - convert new lawsuits, judgments, and litigation-portfolio events into outbound sales triggers for legal-tech and insurance teams.

### Integrations

- Zapier - push to HubSpot/Salesforce/Pipedrive/Apollo
- Make.com - workflow automation
- n8n - self-hosted automation
- Apify webhooks - POST to your endpoint
- API + dataset export (JSON/CSV/Excel/XML)
- MCP / AI agents - call from Claude/GPT/LangChain

### Modes

| Mode | Required inputs | Emits |
|---|---|---|
| `party_search` | `party_names` | case records + per-party rollup |
| `case_search` | `case_numbers` or `keywords` or `courts` | case records |
| `attorney_tracking` | `attorney_names` | case records + attorney rollup |
| `litigation_portfolio` | `party_names` (corporate) | case records + portfolio rollup |
| `recent_filings` | optional `courts`, `party_names`, `keywords` | case records since `date_from` |
| `document_lookup` | `case_numbers` | one record per RECAP document |

### Input

See `.actor/INPUT_SCHEMA.json`. Sample - litigation portfolio for a corporate entity:

```json
{
    "mode": "litigation_portfolio",
    "courtlistener_api_key": "YOUR_KEY",
    "party_names": ["Apple Inc."],
    "date_from": "2018-01-01",
    "include_documents": false,
    "max_results": 500
}
```

A free CourtListener API key raises the rate limit from ~60 req/min to ~5000/hr. Sign up at https://www.courtlistener.com/help/api/rest/.

### Output

**Sample output:** [`.actor/sample-output.json`](./.actor/sample-output.json) — copy-paste-ready preview of real-looking records.

First record inline:

```json
{
  "record_type": "case",
  "mode": "case_lookup",
  "source": "courtlistener",
  "scraped_at": "2026-05-13T22:01:14Z",
  "available": true,
  "reason": null,
  "case_id": 4488210,
  "case_name": "Aurora Signal Holdings, LLC v. Helion Compute, Inc.",
  "case_name_short": "Aurora Signal v. Helion Compute",
  "court": "United States District Court for the Northern District of California",
  "court_short_name": "N.D. Cal.",
  "jurisdiction": "federal",
  "case_number": "3:26-cv-01882",
  "docket_number": "3:26-cv-01882-VC",
  "nature_of_suit": "830 Patent",
  "cause": "35:271 Patent Infringement",
  "filing_date": "2026-03-18",
  "terminated_date": null,
  "status": "active",
  "assigned_to_judge": "Hon. Vince Chhabria",
  "referred_to_judge": "Hon. Sallie Kim (Magistrate)",
  "parties": [
    {
      "name": "Aurora Signal Holdings, LLC",
      "role": "plaintiff",
      "attorneys": [
        "Jessica Vega-Roth",
        "Marcus L. Tan"
      ]
    },
    {
      "name": "Helion Compute, Inc.",
      "role": "defendant",
      "attorneys": [
        "Priya Sundararajan",
        "Connor Whelan"
      ]
    }
  ],
  "attorneys": [
    {
      "name": "Jessica Vega-Roth",
      "firm": "Vega-Roth IP PLLC",
      "role": "for plaintiff"
    },
    {
      "name": "Marcus L. Tan",
      "firm": "Vega-Roth IP PLLC",
      "role": "for plaintiff"
    },
    {
      "name": "Priya Sundararajan",
      "firm": "Wilson Sonsini Goodrich & Rosati",
      "role": "for defendant"
    },
    {
      "name": "Connor Whelan",
      "firm": "Wilson Sonsini Goodrich & Rosati",
      "role": "for defendant"
    }
  ],
  "recent_docket_entries": [
    {
      "entry_number": 18,
      "date_filed": "2026-05-09",
      "description": "ORDER granting in part and denying in part defendant's motion to stay pending IPR. Signed by Judge Chhabria."
    },
    {
      "entry_number": 17,
      "date_filed": "2026-04-28",
      "description": "REPLY in support of motion to stay (Helion Compute, Inc.)"
    },
    {
      "entry_number": 16,
      "date_filed": "2026-04-21",
      "description": "OPPOSITION to motion to stay filed by Aurora Signal Holdings"
    },
    {
      "entry_number": 15,
      "date_filed": "2026-04-07",
      "description": "MOTION to stay pending Inter Partes Review (Helion Compute, Inc.)"
    }
  ],
  "tags": [
    "patent",
    "ipr",
    "stay_motion"
  ],
  "recap_documents": [
    {
      "doc_id": 31182144,
      "description": "Order on motion to stay",
      "url": "https://www.courtlistener.com/recap/3-26-cv-01882/order-stay.pdf",
      "page_count": 14,
      "filed_date": "2026-05-09",
      "text": null
    }
  ],
  "party_name": null,
  "total_cases": null,
  "active_cases": null,
  "closed_cases": null,
  "cases_as_plaintiff_count": null,
  "cases_as_defendant_count": null,
  "top_courts": null,
  "sample_cases": null,
  "attorney_name": null,
  "firm": null,
  "case_count_year": null,
  "top_practice_areas": null,
  "opposing_attorneys": null,
  "entity_name": null,
  "settlement_ratio_estimate": null,
  "avg_case_duration_days": null,
  "jurisdictions": null,
  "top_judges": null,
  "top_opposing_counsel": null,
  "patent_crossover_flag": null
}
```

Sample case record:

```json
{
    "record_type": "case",
    "mode": "party_search",
    "source": "courtlistener",
    "case_id": 64902131,
    "case_name": "Apple Inc. v. Samsung Electronics Co., Ltd.",
    "court": "United States District Court for the Northern District of California",
    "court_short_name": "cand",
    "jurisdiction": "federal",
    "case_number": "5:11-cv-01846",
    "nature_of_suit": "830 Patent",
    "filing_date": "2011-04-15",
    "terminated_date": "2018-12-27",
    "status": "settled",
    "assigned_to_judge": "Lucy H. Koh",
    "parties": [
        {"name": "Apple Inc.", "role": "plaintiff", "attorneys": ["..."]},
        {"name": "Samsung Electronics Co., Ltd.", "role": "defendant", "attorneys": ["..."]}
    ],
    "tags": ["patent"],
    "available": true,
    "scraped_at": "2026-05-14T12:00:00Z"
}
```

### Pricing

Pay-per-event:

| Event | Price |
|---|---|
| `case_record` | $0.005 |
| `document_record` | $0.003 |
| `document_text_charge` | $0.010 |
| `intelligence_record` | $0.015 |

A typical `party_search` for one company that returns 50 cases costs `50 * $0.005 + 1 * $0.015 = $0.265`.

### FAQ

**Q: Do I need a CourtListener API key?**
A: Optional but strongly recommended. Anonymous use is rate-limited to ~60 req/min; with a free key you get ~5000/hr.

**Q: Does this hit PACER directly?**
A: No - PACER is paywalled and out of scope. We use only what RECAP has already archived. Coverage is excellent for federal district / appellate, thinner for state and bankruptcy.

**Q: How accurate is `settlement_ratio_estimate`?**
A: It's a heuristic - we infer settlement from termination text ("stipulation of dismissal", "settle"), trial verdict from "judgment" / "verdict", dismissal from "dismiss". Directionally useful, not authoritative.

**Q: Can I get document text?**
A: Set `include_document_text=true`. Text is only available where CourtListener has already OCRed / extracted the PDF; we do not run OCR ourselves.

### Support

Open an issue on the actor's GitHub or email via the Apify Store contact link. Include the run ID and input config.

### Changelog

See [CHANGELOG.md](./CHANGELOG.md).

### Found this useful?

If this actor saved you time or money, please consider leaving a quick review on the Apify Store. Reviews help other buyers find work that solves their problem and let me prioritize the features paying customers actually use. Leave a review: https://apify.com/seibs.co/court-records-intel#reviews

# Actor input Schema

## `mode` (type: `string`):

party\_search = all cases for a given person/company (plaintiff or defendant). case\_search = search dockets by case number, court, keyword, date. attorney\_tracking = case load + practice areas + opposing counsel for an attorney. litigation\_portfolio = aggregate intel for one corporate entity (active/closed, jurisdictions, top judges, settlement-ratio estimate). recent\_filings = new dockets in specified courts / by parties / matching keywords since date\_from. document\_lookup = RECAP document URLs + metadata for given case numbers.

## `courtlistener_api_key` (type: `string`):

Your free CourtListener API key. Get one at https://www.courtlistener.com/help/api/rest/ after creating a free account. Without a key rate limits are ~60 requests/min; with a key ~5000/hr. Leave empty to run anonymously.

## `party_names` (type: `array`):

Person or company names to search for as plaintiff or defendant. Used in party\_search, litigation\_portfolio, and recent\_filings modes. Examples: 'Apple Inc.', 'Elon Musk', 'Acme Holdings LLC'.

## `attorney_names` (type: `array`):

Attorney full names for attorney\_tracking mode. Examples: 'David Boies', 'Jane Smith'. Matched against CourtListener attorney records.

## `case_numbers` (type: `array`):

Case or docket numbers for case\_search and document\_lookup modes. Examples: '1:23-cv-04570', '20-cv-01234'. Combine with the courts field for best results.

## `courts` (type: `array`):

CourtListener court IDs or short names. Examples: 'scotus' (Supreme Court), 'ca9' (9th Circuit), 'nysd' (SDNY), 'txed' (E.D. Texas), 'cand' (N.D. Cal). Empty = all courts.

## `keywords` (type: `array`):

Free-text keywords for case\_search and recent\_filings modes. Matched against case name, nature-of-suit, and docket text. Multiple keywords are OR-combined.

## `date_from` (type: `string`):

Lower bound for filing\_date. Format: YYYY-MM-DD. For recent\_filings mode this is the alert window start. Empty = 90 days ago for recent\_filings, no lower bound otherwise.

## `date_to` (type: `string`):

Upper bound for filing\_date. Format: YYYY-MM-DD. Empty = today.

## `include_documents` (type: `boolean`):

If true, for each case emit RECAP-available document URLs + metadata (description, page count, doc\_id). Charged at $0.003 per document record.

## `include_document_text` (type: `boolean`):

If true and include\_documents is true, fetch and extract plain text from the main RECAP filings (where available). Charged at $0.010 per document with extracted text. Significantly slower.

## `max_results` (type: `integer`):

Hard cap on emitted case records. The actor paginates CourtListener results and stops once this cap is reached.

## `concurrency` (type: `integer`):

Parallel CourtListener API requests. Keep low (default 4) to stay inside the anonymous rate limit; 8 is fine with an API key.

## `use_apify_proxy` (type: `boolean`):

Route CourtListener requests through Apify Proxy. CourtListener does not anti-bot aggressively, so off is fine. Turn on if you hit rate limits.

## Actor input object example

```json
{
  "mode": "case_search",
  "party_names": [],
  "attorney_names": [],
  "case_numbers": [],
  "courts": [
    "scotus"
  ],
  "keywords": [],
  "date_from": "2026-04-01",
  "include_documents": false,
  "include_document_text": false,
  "max_results": 25,
  "concurrency": 4,
  "use_apify_proxy": false
}
```

# Actor output Schema

## `datasetItems` (type: `string`):

Narrow, token-efficient slice of every record. Consumer: LLM agents (Claude, GPT, LangChain tools), MCP hosts, dashboards. Intel fields: case #, case name, court, filing date, status, parties, attorney, total cases.

## `datasetItemsDetailed` (type: `string`):

All fields for every record. Consumer: humans browsing the dataset in the Apify UI, RAG ingest pipelines, and full backups. Larger payload — not recommended as a direct LLM tool response.

## `datasetItemsUnwind` (type: `string`):

Same records, but each element of the `cases` array is promoted to its own row. Consumer: Zapier / Make / n8n / Google Sheets users who want one row per item, and LLM agents that prefer flat rows over nested arrays.

## `datasetItemsMcp` (type: `string`):

First 50 overview records as a clean JSON array. Wrap on the agent side in an MCP tool-call response envelope, e.g. `{ "ok": true, "data": <this array>, "meta": { "actor": "court-records-intel", "count": <len>, "view": "overview" } }`. Consumer: MCP servers, Claude Desktop, Cursor, OpenAI Assistants tool calls.

## `datasetItemsCsv` (type: `string`):

Spreadsheet-friendly export of the overview view. Consumer: humans, sales-ops teams, Excel / Google Sheets users.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "case_search",
    "courts": [
        "scotus"
    ],
    "date_from": "2026-04-01",
    "max_results": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("seibs.co/court-records-intel").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "case_search",
    "courts": ["scotus"],
    "date_from": "2026-04-01",
    "max_results": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("seibs.co/court-records-intel").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "case_search",
  "courts": [
    "scotus"
  ],
  "date_from": "2026-04-01",
  "max_results": 25
}' |
apify call seibs.co/court-records-intel --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=seibs.co/court-records-intel",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "US Court Records Intel - Party, Attorney, Litigation Portfolio",
        "description": "Federal + state court records intelligence via CourtListener. Party monitoring, attorney tracking, litigation portfolio analysis, recent filings alerts, RECAP document lookup. For law firms, debt collectors, insurance due diligence, journalists, M&A intel.",
        "version": "0.1",
        "x-build-id": "dbJNGIcle4dPNTtzw"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/seibs.co~court-records-intel/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-seibs.co-court-records-intel",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/seibs.co~court-records-intel/runs": {
            "post": {
                "operationId": "runs-sync-seibs.co-court-records-intel",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/seibs.co~court-records-intel/run-sync": {
            "post": {
                "operationId": "run-sync-seibs.co-court-records-intel",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "party_search",
                            "case_search",
                            "attorney_tracking",
                            "litigation_portfolio",
                            "recent_filings",
                            "document_lookup"
                        ],
                        "type": "string",
                        "description": "party_search = all cases for a given person/company (plaintiff or defendant). case_search = search dockets by case number, court, keyword, date. attorney_tracking = case load + practice areas + opposing counsel for an attorney. litigation_portfolio = aggregate intel for one corporate entity (active/closed, jurisdictions, top judges, settlement-ratio estimate). recent_filings = new dockets in specified courts / by parties / matching keywords since date_from. document_lookup = RECAP document URLs + metadata for given case numbers.",
                        "default": "party_search"
                    },
                    "courtlistener_api_key": {
                        "title": "CourtListener API key (free, optional)",
                        "type": "string",
                        "description": "Your free CourtListener API key. Get one at https://www.courtlistener.com/help/api/rest/ after creating a free account. Without a key rate limits are ~60 requests/min; with a key ~5000/hr. Leave empty to run anonymously."
                    },
                    "party_names": {
                        "title": "Party names",
                        "type": "array",
                        "description": "Person or company names to search for as plaintiff or defendant. Used in party_search, litigation_portfolio, and recent_filings modes. Examples: 'Apple Inc.', 'Elon Musk', 'Acme Holdings LLC'.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "attorney_names": {
                        "title": "Attorney names",
                        "type": "array",
                        "description": "Attorney full names for attorney_tracking mode. Examples: 'David Boies', 'Jane Smith'. Matched against CourtListener attorney records.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "case_numbers": {
                        "title": "Case / docket numbers",
                        "type": "array",
                        "description": "Case or docket numbers for case_search and document_lookup modes. Examples: '1:23-cv-04570', '20-cv-01234'. Combine with the courts field for best results.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "courts": {
                        "title": "Court IDs / names",
                        "type": "array",
                        "description": "CourtListener court IDs or short names. Examples: 'scotus' (Supreme Court), 'ca9' (9th Circuit), 'nysd' (SDNY), 'txed' (E.D. Texas), 'cand' (N.D. Cal). Empty = all courts.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "keywords": {
                        "title": "Keywords",
                        "type": "array",
                        "description": "Free-text keywords for case_search and recent_filings modes. Matched against case name, nature-of-suit, and docket text. Multiple keywords are OR-combined.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "date_from": {
                        "title": "Date from (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Lower bound for filing_date. Format: YYYY-MM-DD. For recent_filings mode this is the alert window start. Empty = 90 days ago for recent_filings, no lower bound otherwise."
                    },
                    "date_to": {
                        "title": "Date to (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Upper bound for filing_date. Format: YYYY-MM-DD. Empty = today."
                    },
                    "include_documents": {
                        "title": "Include RECAP document URLs",
                        "type": "boolean",
                        "description": "If true, for each case emit RECAP-available document URLs + metadata (description, page count, doc_id). Charged at $0.003 per document record.",
                        "default": false
                    },
                    "include_document_text": {
                        "title": "Extract document text",
                        "type": "boolean",
                        "description": "If true and include_documents is true, fetch and extract plain text from the main RECAP filings (where available). Charged at $0.010 per document with extracted text. Significantly slower.",
                        "default": false
                    },
                    "max_results": {
                        "title": "Max records",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Hard cap on emitted case records. The actor paginates CourtListener results and stops once this cap is reached.",
                        "default": 100
                    },
                    "concurrency": {
                        "title": "Concurrency",
                        "minimum": 1,
                        "maximum": 8,
                        "type": "integer",
                        "description": "Parallel CourtListener API requests. Keep low (default 4) to stay inside the anonymous rate limit; 8 is fine with an API key.",
                        "default": 4
                    },
                    "use_apify_proxy": {
                        "title": "Use Apify Proxy",
                        "type": "boolean",
                        "description": "Route CourtListener requests through Apify Proxy. CourtListener does not anti-bot aggressively, so off is fine. Turn on if you hit rate limits.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
