# Court Records Scraper - PACER Alternative API

Court records scraper and PACER alternative. Export federal court dockets AND case-law opinions from CourtListener's public archive to CSV/JSON. No PACER account needed.

Canonical product page: https://mayd-it.com/data-tools/actors/us-court-cases-scraper/
Public Actor: https://apify.com/maydit/us-court-cases-scraper

## Example input

```json
{
  "searchType": "dockets",
  "keyword": "\"data breach\"",
  "filedSince": "2026-01-01",
  "orderBy": "dateFiled desc",
  "maxResults": 10
}
```

## Full guide

![Find the public case record — illustrative workflow](https://api.apify.com/v2/key-value-stores/YGxD9JRpduom8Q5Zd/records/us-court-cases-scraper-3e3a68b97e41.png?signature=1KFX98JT8OZV1ZvWOIQKQ)

## Find the public case record

For legal and public-record research: search federal dockets in CourtListener's public RECAP archive or published case-law opinions. Export source identifiers, courts, dates and case links without a PACER account.

[Open this Actor in Console](https://console.apify.com/actors/cjLNkDqsBxobJ02Hb/input) · [First run](#try-this-actor) · [Results](#result-preview) · [Cost](#usage-and-pricing) · [Full guide](#full-guide)

## Try this Actor

- **First run:** Begin with the documented **Dockets** mode and review its maximum-results cap. Inspect that record shape before adding a court, keyword or filing-date filter; opinion rows have different available fields.
- **Read the results:** Open the default Dataset for source records and **SUMMARY** for search status. The case link and docket or opinion identifier are the route back to the underlying public record.
- **Keep in mind:** CourtListener is a public archive, not complete PACER coverage. Docket allegations are not judicial findings, and fields or document availability vary with the selected record type and source coverage.

## Result preview

The dataset view highlights these columns:

- **Record type** · `type`
- **Case name** · `caseName`
- **Court** · `court`
- **Docket number** · `docketNumber`
- **Docket ID** · `docketId`
- **Opinion cluster ID** · `clusterId`

Use the original source links and the field definitions below when interpreting the results. CSV works well for flat columns; JSON preserves nested values.

## Usage and pricing

Base result rate on the FREE tier: **$3 per 1,000 results**. The [Pricing tab](https://apify.com/maydit/us-court-cases-scraper/pricing) shows your plan's result rate and any Actor Start charge. Set a small result limit for the first run; the requested limit is not a guarantee of that many results.

---

## Full guide

> Pull US court records without a PACER account: federal dockets AND case-law opinions in one Actor, exported straight to CSV or JSON.

### What it does

This **court records scraper** searches US federal court dockets and published case-law opinions through the official **CourtListener / RECAP** public API and returns clean, normalized records. It provides a CourtListener-backed public-record workflow without a PACER account. RECAP is not complete PACER coverage, and this Actor has its own listed result charges. Run it in two modes from a single Actor: **dockets** mode pulls RECAP federal case records (parties, judges, law firms, causes), and **opinions** mode pulls case law with reporter citations and precedential status. Filter by keyword, court, and date window, then export to CSV, JSON, or Excel, or wire it into your own pipeline via the Apify API. Because it covers both federal dockets and court opinions, it doubles as a **litigation data scraper**, a **court opinions scraper**, and a **court docket monitoring** tool.

### Who it's for

- **Legal tech and litigation intelligence teams** building case databases and analytics
- **Law firms** running due diligence and conflict / party checks
- **Journalists and investigative reporters** tracking court activity
- **Academic and legal researchers** assembling case-law and citation datasets
- **Compliance, risk, and litigation-finance analysts** monitoring new filings

### What you get / Output

Every record is normalized to consistent fields. Availability of some fields depends on the mode (dockets vs. opinions) and what the source publishes for a given case.

| Field | Description |
|---|---|
| `type` | Record type (docket or opinion) |
| `caseName` | Full case / matter name |
| `court` | Court name |
| `courtId` | CourtListener court identifier (e.g. `scotus`, `cand`, `nysd`) |
| `docketNumber` | Docket number for the case |
| `dateFiled` | Date the case or opinion was filed |
| `dateTerminated` | Date the case was terminated (dockets) |
| `dateArgued` | Date the case was argued (where available) |
| `judge` | Assigned or authoring judge |
| `cause` | Legal cause of action |
| `natureOfSuit` | Nature of suit classification |
| `jurisdictionType` | Jurisdiction type |
| `citation` | Reporter citation(s) for opinions |
| `status` | Precedential / case status |
| `attorneys` | Counsel of record (where available) |
| `firm` | Law firm(s) associated with the case (where available) |
| `url` | Source link to the record on CourtListener |

### Input / How to query

Configure a run with these inputs:

- **`searchType`** - choose the mode: `dockets` (RECAP federal cases with parties, judges, firms, causes) or `opinions` (published case law with citations and precedential status).
- **`keyword`** - full-text query, e.g. a company name, `data breach`, or `patent infringement`. Leave empty to browse the newest records with filters only.
- **`court`** - restrict to one CourtListener court by ID, e.g. `scotus` (Supreme Court), `cand` (N.D. Cal.), `nysd` (S.D.N.Y.), `dcd` (D.D.C.). Leave empty for all courts.
- **`filedSince`** - only records filed on or after this date (`YYYY-MM-DD`). Ideal for weekly monitoring.
- **`filedUntil`** - only records filed on or before this date (`YYYY-MM-DD`).
- **`orderBy`** - sort results, e.g. `dateFiled desc` (newest first) or `dateFiled asc` (oldest first).
- **`maxResults`** - upper bound on records returned per run.
- **`maxRunSeconds`** - wall-clock budget for the run (default 240). CourtListener returns 20 records per request, so a large `maxResults` needs many requests; when the budget is reached the Actor stops cleanly and finishes successfully with the records it already has, and records `stoppedEarlyOnTimeLimit: true` in the run's `SUMMARY`. Raise it, together with the run timeout, for a deliberately large pull.

For an unfiltered run with no `keyword`, `court`, `filedSince`, or `filedUntil`, the Actor sets `filedUntil` to the current UTC day. This keeps erroneous future-dated source records out of the default results. Explicit queries and date filters remain unchanged, and returned source dates are never rewritten. `SUMMARY.filedUntil` records the effective bound; `filedUntilWasDefaulted` identifies when it was added automatically.

### Example use cases

- **Track lawsuits against a company** - set `searchType=dockets`, `keyword="Acme Corp"`, `orderBy=dateFiled desc` to surface the newest federal cases naming that party.
- **Weekly new-filings monitor** - schedule a run with `filedSince` set to the past week and a `court` (e.g. `nysd`) to capture fresh litigation in a jurisdiction you care about.
- **Build a case-law dataset** - set `searchType=opinions` to export published opinions with their reporter citations and precedential status for research.
- **Due-diligence conflict check** - run keyword searches on parties and counsel across all courts, then export to CSV for review before onboarding a client or closing a deal.
- **Topic-based litigation intelligence** - search `data breach` or `patent infringement` to feed a compliance or risk dashboard with structured docket metadata.

### Recurring use / scheduling

This Actor is built for **court docket monitoring** on a schedule. Use Apify **Schedules** to run it daily or weekly with a rolling `filedSince` date so each run captures only newly filed cases and opinions. Point runs at the same named dataset to accumulate a growing corpus over time, or keep runs separate and dedupe downstream on `url` or `docketNumber`, which are stable identifiers for each record. Pair scheduling with Apify integrations (webhooks, Zapier, Make, Slack, or email) to get alerts whenever new records match your keyword or court.

### FAQ

#### How do I get court case data without paying PACER fees?

Run this Actor. It pulls federal case records from the CourtListener RECAP archive, a free public source, so you get structured docket data without a PACER account or per-page fees.

#### How can I scrape federal court dockets from CourtListener?

Set `searchType=dockets`, add a `keyword` and optional `court` / date filters, then run. You get normalized docket records with case name, docket number, court, judge, cause, nature of suit, and counsel where available.

#### What is the best free alternative to the PACER API?

CourtListener's RECAP archive is the leading free source for federal docket data, and this Actor turns it into clean CSV / JSON output. It needs no PACER account and charges no per-page PACER fees - you pay only Apify's per-result price shown on the Pricing tab, which new accounts can cover with their monthly free credits.

#### How do I download court opinions and case law as CSV or JSON?

Set `searchType=opinions` and run, then export the dataset from Apify as CSV, JSON, or Excel, or fetch it via the API. Opinion records include reporter citations and precedential status.

#### How can I track lawsuits filed against a specific company?

Use `searchType=dockets` with the company name as your `keyword` and `orderBy=dateFiled desc`. Schedule it weekly with a rolling `filedSince` to catch each new case as it is filed.

#### How do I monitor new federal court filings by court or date?

Combine the `court` filter (e.g. `cand`, `nysd`) with `filedSince` / `filedUntil`, sorted `dateFiled desc`, and schedule the run so each execution returns only the latest filings in that court and window.

#### What court data fields can I export?

Records include case name, court and court ID, docket number, filing / argued / terminated dates, judge, cause, nature of suit, jurisdiction type, citation, status, attorneys, firm, and a source URL - see the output table above.

#### Is scraping public court records legal?

This Actor reads public court data from CourtListener's official API. Court records in these sources are public. As with any data use, follow CourtListener's terms and apply your own judgment for your jurisdiction and use case.

#### How do I search both federal dockets and case-law opinions in one tool?

That is this Actor's core advantage: flip the `searchType` input between `dockets` and `opinions` to search RECAP federal dockets or published case law from the same Actor - no second tool needed.

#### How can I set up alerts for new litigation matching a keyword?

Schedule the Actor with your `keyword` and a rolling `filedSince`, then connect an Apify integration (webhook, Slack, email, Zapier, or Make) so you are notified whenever a new matching record appears.

### Data source & notes

- **Source:** [CourtListener](https://www.courtlistener.com/) by the **Free Law Project**, via its official public API (including the RECAP federal docket archive).
- **Coverage:** US federal court dockets (RECAP) and published court opinions / case law. Field availability varies by mode and by what the source publishes for each record - for example, `attorneys`, `firm`, and some dates may be absent on individual cases.
- **Access:** No PACER account and no CourtListener API key required. Runs are billed per result at the price on the Pricing tab; an optional free CourtListener API token raises the source's rate limit on large jobs.
- **Use responsibly:** Data reflects what is publicly available on CourtListener at run time. Verify critical facts against primary court sources for legal decisions, and follow the source's terms of use.
- **Actor:** `maydit/us-court-cases-scraper` (id `cjLNkDqsBxobJ02Hb`).

### Related actors

Part of a set of US public-records tools that work well together:

- [SEC EDGAR Filings Scraper](https://apify.com/maydit/sec-edgar-filings-scraper) - company filings to pair with litigation research
- [Federal Register Scraper](https://apify.com/maydit/us-federal-register-scraper) - the regulatory backdrop to many federal cases

See the full collection at [apify.com/maydit](https://apify.com/maydit).

### Found this useful?

If this actor saved you time, a short review on the Apify Store genuinely helps. Reviews are how the next person decides whether a tool is worth trying.

Something broken, missing a field, or a source you want covered? Open an issue on the **Issues** tab and it will get looked at - that is the fastest route to getting it changed.

#### Run spending limits

The run stops at its spending limit. `SUMMARY.datasetItemsSaved` reports the number of rows actually saved, and `SUMMARY.stoppedOnChargeLimit` identifies this stop. A final batch may be saved only in part; increase the spending limit to collect more results.

## Help with your run

Open the **Issues** tab on this Actor with the run URL, the input field that caused trouble and what you expected to receive. Remove API keys and private information before posting.

[Explore more Mayd-It Actors](https://apify.com/maydit)

## Understand your run

Open **Run report** in the run’s Output tab for saved-record counts, reported source issues and limits, and suggested next steps. Use **CSV export** to take the saved results into a spreadsheet. The existing JSON results and detailed machine-readable summary remain available.

The report reflects this run’s recorded coverage. A successful run or a saved result does not establish that every possible source record was collected.
