# CourtListener State Court Dockets Scraper (`parseforge/courtlistener-dockets-scraper`) Actor

Scrape state court dockets from CourtListener by keyword or browse the latest filings. Returns case name, docket number, jurisdiction, date filed, and status. No API key required.

- **URL**: https://apify.com/parseforge/courtlistener-dockets-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Business, News, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $11.95 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### CourtListener State Court Dockets Scraper

**Scrape state court dockets from CourtListener by keyword or browse the latest filings.** Each docket includes case name, docket number, jurisdiction, date filed, and status. No API key or login required. Export to CSV, JSON, Excel, or XML.

CourtListener does not provide a dedicated listing endpoint for state court dockets; they are only available on individual case pages. This Actor reads the latest opinions feed and filters for state court dockets, returning each match as a record. It works without an API key, by scraping the public HTML.

| Who uses it | Purpose |
|---|---|
| Legal researchers | Track new state court filings by jurisdiction or keyword without manual browsing. |
| Journalists | Monitor emerging litigation trends across state courts for investigative stories. |
| Compliance analysts | Identify state-level cases relevant to regulatory changes or industry risks. |
| Data analysts | Build datasets of state court dockets for predictive modeling or trend analysis. |

### What it does

This Actor collects state court dockets from CourtListener by keyword or by scraping the latest filings, and returns each docket as a record with case name, docket number, jurisdiction, date filed, and status.

- 🔍 **Keyword search:** Filter dockets by case name or keyword, or leave the field empty to scrape the latest filings across all state courts.
- 📅 **Sort options:** Choose date filed (newest or oldest first) or sort by relevance to prioritize results.

Results export to CSV, JSON, Excel, or XML, or via the API.

### What you can do with CourtListener data

**📈 Monitor state court filings by jurisdiction.**

A legal researcher runs the Actor daily without a keyword to scrape the latest dockets from all state courts, tracking new cases for a litigation watch report.

**🔍 Find cases by keyword across state courts.**

A journalist enters a keyword like 'data breach' to scrape state court dockets mentioning that term, to find lawsuits for an investigative piece.

**📊 Build a dataset of state court docket trends.**

A data analyst scrapes dockets sorted by date filed for a month, then analyzes filing volumes by jurisdiction for a market intelligence report.

**⚖️ Support compliance monitoring.**

A compliance analyst uses keyword search to scrape dockets related to a new regulation, flagging cases that could affect their industry.

### Why use this scraper

| | What you get |
|---|---|
| **No API key** | Scrape CourtListener state court dockets by scraping the public HTML, no registration or token needed. |
| **Structured output** | Each docket returned as a record with case name, docket number, jurisdiction, date filed, and status. |
| **Sort by date or relevance** | Choose newest first, oldest first, or sort by relevance to prioritize results. |
| **Export formats** | Download as CSV, JSON, Excel, or XML for use in your workflow. |

### How it compares

This Actor focuses on state court dockets from CourtListener, while competitors offer different coverage.

| Feature | ParseForge | Court Records Scraper | CourtListener Opinion Scraper - US Court Case Law API | PACER Court Records Intel - MCP Server |
|---|---|---|---|---|
| State court dockets | Yes | Not listed | Not listed | Not listed |
| Keyword search | Yes | Yes | Yes | Not listed |
| Sort by date filed | Yes | Not listed | Not listed | Not listed |
| No API key required | Yes | Yes | Not listed | Not listed |
| Export to CSV/JSON/Excel/XML | Yes | Not listed | Not listed | Not listed |
| Max 1,000,000 items per run | Yes | Not listed | Not listed | Not listed |

### What a CourtListener record looks like

Every record returns as one JSON object. Here is an example from a run:

```json
{
 "title": "Integración De Las Salas De Despacho Durante Los Meses De Mayo Y Junio De 2018",
 "url": "https://www.courtlistener.com/opinion/10791709/integracion-de-las-salas-de-despacho-durante-los-meses-de-mayo-y-junio-de/?order_by=dateFiled+desc",
 "court": " 2028",
 "dateFiled": "2028-04-13",
 "status": "Published",
 "docketNumber": "ES-2018-1",
 "citation": "2018 TSPR 58",
 "scrapedAt": "2026-09-04T00:23:56.300Z"
}
```

Every value above is from a real run. A field a record does not have is returned as `null`.

### Configure the run

Run the Actor from a keyword search or scrape the latest state court dockets. The sort order and max items filter results as they are collected, so only matching dockets reach your dataset. The Input tab shows all parameters.

An example run with the defaults:

```json
{
 "orderBy": "dateFiled desc",
 "maxItems": 10
}
```

A larger run:

```json
{
 "orderBy": "dateFiled desc",
 "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.01321 per result**. You pay only for the results stored in your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $1.32 |
| 1,000 results | $13.21 |
| 10,000 results | $132.10 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a sample. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [CourtListener State Court Dockets Scraper](https://apify.com/parseforge/courtlistener-dockets-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent direct access to CourtListener through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/courtlistener-dockets-scraper"
```

Then ask it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Make sure your search query is not too narrow. Try leaving the field empty to scrape the latest filings. Also check that maxItems is set high enough.

**The output has fewer dockets than expected.**

CourtListener's latest opinions feed may have a limited number of entries. Increase maxItems or run the Actor multiple times to capture more data.

**Why are some dockets missing jurisdiction?**

Jurisdiction may not be listed for every case in the feed. The Actor returns what CourtListener provides.

**Can I scrape dockets from a specific date range?**

The current input schema does not support date range filtering. Use the sort order to get newest or oldest first, then filter manually.

**The Actor fails with a timeout error.**

CourtListener's site may be slow. Reduce maxItems or run during off-peak hours. If the issue persists, contact support.

### FAQ

| Question | Answer |
|---|---|
| Do I need an API key to use this Actor? | No. The Actor scrapes CourtListener's public HTML, so no API key or login is required. |
| What data does each docket record contain? | Each record includes title, url, court, dateFiled, status, docketNumber, citation, scrapedAt, and error. The exact fields come from a real run. |
| Can I scrape dockets from a specific state court? | Yes. Use the search query to filter by jurisdiction name (e.g., 'California') or leave it empty to scrape all state courts. |
| How many dockets can I scrape per run? | Free users are limited to 10 items as a sample. Paid users can set maxItems up to 1,000,000. |
| What sort options are available? | You can sort by date filed (newest first or oldest first) or by relevance to the search query. |
| Does this scrape federal court dockets too? | No. This Actor focuses on state court dockets from CourtListener. For federal dockets, consider a PACER-based scraper. |
| Can I export the data to Excel? | Yes. The Actor supports export to CSV, JSON, Excel, and XML formats. |
| Is the data updated in real time? | The Actor scrapes the latest opinions feed at the time of the run. Data freshness depends on CourtListener's update frequency. |
| What happens if the search query returns no results? | The Actor will return an empty dataset. Try a broader keyword or leave the query blank to scrape the latest filings. |
| Can I schedule this Actor to run daily? | Yes. You can set up a recurring task in Apify to run the Actor on a schedule. |

### Related actors

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by Free Law Project. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `searchQuery` (type: `string`):

Enter a keyword or case name to filter dockets. Leave empty to scrape the latest filings across all state courts.

## `orderBy` (type: `string`):

Choose how results are sorted. dateFiled desc shows the newest dockets first.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## Actor input object example

```json
{
  "orderBy": "dateFiled desc",
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Complete dataset of all scraped records.

# 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 = {
    "searchQuery": "",
    "orderBy": "dateFiled desc",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/courtlistener-dockets-scraper").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 = {
    "searchQuery": "",
    "orderBy": "dateFiled desc",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("parseforge/courtlistener-dockets-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchQuery": "",
  "orderBy": "dateFiled desc",
  "maxItems": 10
}' |
apify call parseforge/courtlistener-dockets-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/courtlistener-dockets-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/J1PLSa2jLzzsiyZ5a/builds/YWz2OxFGqN98iU6eR/openapi.json
