# Top Class Actions Scraper (`crawlerbros/top-class-actions-scraper`) Actor

Scrape TopClassActions.com - open, pending and closed class-action lawsuit settlements, legal news, and case-tracker entries. Get settlement eligibility, potential award, proof-of-purchase requirements, claim deadlines, and case details.

- **URL**: https://apify.com/crawlerbros/top-class-actions-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** News, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## Top Class Actions Scraper

Scrape [TopClassActions.com](https://topclassactions.com) for class-action lawsuit settlements, legal news, and active case-tracker entries. Get settlement eligibility criteria, potential award amounts, proof-of-purchase requirements, claim-form deadlines, case names, settlement websites, claims administrators, and legal counsel — all structured and ready to use.

Whether you're building a settlement-alert tool, researching consumer-rights cases, monitoring a specific company's litigation history, or tracking claim deadlines, this actor gives you clean, structured access to TopClassActions' entire public catalog.

### What this actor does

- **Eight modes:** latest articles, full-text search, browse by category/company, open settlements (currently accepting claims), closed settlements (claims period ended), the active case tracker, the legal/medical glossary, and exact-URL lookup
- **Settlement "quick facts" extraction:** who's eligible, potential award, proof of purchase, claim-form deadline, exclusion/objection deadline, case name, final hearing date, settlement website, claims administrator, class counsel, defense counsel
- **700+ categories:** browse by company (Amazon, Apple, BMW, Bank of America, ...) or by topic (data breach, auto news, banking news, beauty products, ...)
- **Date-range filtering** on publish date
- **No login, no cookies, no proxy required** — reads the site's public REST API

### Output fields

Every record includes:

- `postId`, `title`, `sourceUrl`, `slug`
- `publishedAt`, `modifiedAt` (UTC)
- `excerpt` — plain-text summary
- `bodyText` — full plain-text article/settlement body (HTML tags stripped)
- `featuredImageUrl`
- `categories[]`, `tags[]`
- `author` — the byline (e.g. "Top Class Actions" or a named staff writer)
- `readingTimeMinutes` — estimated reading time in minutes
- `wordCount` — article/settlement body word count (articles and settlements only, not case-tracker entries)
- `commentCount` — number of reader comments on the post (articles and settlements only, not case-tracker entries)
- `recordType` — `article`, `settlement`, or `caseTrackerEntry`

Settlement records (mode `openSettlements`/`closedSettlements`, or any article that has a settlement "quick facts" box) additionally include, where available:

- `whosEligible` — who qualifies to file a claim
- `potentialAward` — the payout amount/range
- `proofOfPurchase` — what documentation is required
- `claimFormDeadline` — the filing deadline
- `exclusionObjectionDeadline` — the deadline to opt out of or object to the settlement
- `caseName` — the legal case name and docket number
- `finalHearing` — the court's final approval hearing date
- `settlementWebsite` — the official claims-administrator site
- `claimFormUrl` — direct link to file a claim online, when the settlement offers one
- `claimsAdministrator`, `classCounsel`, `defenseCounsel`
- `settlementStatus` — `"open"` (mode=openSettlements) or `"closed"` (mode=closedSettlements)
- `settlementAmountRaw` — the total settlement fund amount as displayed in the headline, e.g. `"$359.9M"` or `"$750,000"` (omitted when the headline doesn't lead with a dollar figure)
- `settlementAmountUsd` — the same amount normalized to a plain USD number, e.g. `359900000`

Fields that TopClassActions hasn't published for a given record (e.g. a settlement with no fixed deadline, or a plain news article with no quick-facts box) are simply omitted — never sent as `null` or `"N/A"`.

Glossary records (mode `glossary`, `recordType: "glossaryTerm"`) are a separate record shape — plain-English definitions of legal/medical terms that come up in class-action cases (e.g. "What is shoulder dystocia?"), not articles:

- `postId`, `term` (the glossary headword/question), `sourceUrl`, `slug`
- `publishedAt`, `modifiedAt` (UTC)
- `definition` — full plain-text glossary entry (HTML tags stripped)
- `letter` — the A-Z index letter TopClassActions files this term under
- `glossaryCategory` — TopClassActions' own topical grouping for the term (e.g. `General`)
- `featuredImageUrl`, `readingTimeMinutes`
- `recordType: "glossaryTerm"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | select | `openSettlements` | `latest` / `search` / `byCategory` / `openSettlements` / `closedSettlements` / `caseTracker` / `glossary` / `byUrls` |
| `searchQuery` | string | – (Console suggests `settlement`) | Free-text query (required for mode=search; optional narrowing filter by case name/company for mode=caseTracker; optional narrowing filter by term/definition for mode=glossary — leave blank to fetch entries unfiltered) |
| `categorySlug` | string | – | Category/company slug, e.g. `data-breach`, `amazon-class-action-lawsuit-and-settlement-news`, `apple-open-settlements` |
| `tagSlug` | string | – | Optional topic-tag slug narrowing filter (separate taxonomy from `categorySlug`), e.g. `abortion`, `data-breach`, `data-privacy`. Not applicable to mode=byUrls/caseTracker/glossary |
| `glossaryLetter` | select | – | Optional A-Z narrowing filter for mode=glossary — only return terms filed under that letter |
| `postUrls` | array | `[]` | Exact article/settlement page URLs to fetch directly (mode=byUrls) |
| `dateFrom` | string | – | Only articles published on/after this date (`YYYY-MM-DD`) |
| `dateTo` | string | – | Only articles published on/before this date (`YYYY-MM-DD`) |
| `sortOrder` | select | `newest` | `newest` / `oldest` / `relevance` (search only) |
| `maxItems` | integer | 30 | Max records to return |

#### Modes explained

- **`latest`** — the most recent articles and settlement posts across the entire site, optionally narrowed with `categorySlug`.
- **`search`** — full-text search across all published posts.
- **`byCategory`** — browse a specific category or per-company archive (requires `categorySlug`).
- **`openSettlements`** (default) — the curated list of class-action settlements currently accepting claims. Narrow to one company with `categorySlug` (e.g. `apple-open-settlements`).
- **`closedSettlements`** — settlements whose claims period has ended (historical record). Narrow to one company with `categorySlug` (e.g. `apple-closed-settlements`).
- **`caseTracker`** — active lawsuits and investigations tracked by TopClassActions' Case Tracker (before they become open settlements). Optionally narrow with `searchQuery` to match a case name or company.
- **`glossary`** — TopClassActions' legal/medical term glossary (e.g. "What is shoulder dystocia?", "What is strict liability?") — plain-English definitions of terms that come up across class-action cases. Optionally narrow with `searchQuery` (matches term/definition text) and/or `glossaryLetter` (A-Z index).
- **`byUrls`** — fetch exact article or settlement page URLs directly (`postUrls`), resolved via the post's URL slug. Useful for refreshing a known set of settlement pages without re-browsing a category.

#### Example: currently open settlements

```json
{
  "mode": "openSettlements",
  "maxItems": 30
}
```

#### Example: one company's settlement history

```json
{
  "mode": "closedSettlements",
  "categorySlug": "apple-closed-settlements",
  "maxItems": 20
}
```

#### Example: search by keyword with a date range

```json
{
  "mode": "search",
  "searchQuery": "data breach settlement",
  "dateFrom": "2026-01-01",
  "maxItems": 30
}
```

#### Example: active case tracker

```json
{
  "mode": "caseTracker",
  "searchQuery": "T-Mobile",
  "maxItems": 20
}
```

### Use cases

- Build a daily digest of new class-action settlements you might be eligible for
- Monitor a specific company's (e.g. Amazon, Apple, T-Mobile) ongoing litigation and settlement history
- Feed a legal-research database with structured settlement metadata (deadlines, eligibility, payouts)
- Track claim-form deadlines across many open settlements at once
- Power a consumer-facing settlement-alert app or newsletter
- Research legal/medical terminology relevant to a case via the glossary mode

### FAQ

**Do I need an account or API key?**
No. This actor reads TopClassActions' public content and requires no login, cookies, or API key.

**How do I find a category slug?**
Browse [topclassactions.com](https://topclassactions.com), open any category/company archive page, and copy the last segment of the URL (e.g. `https://topclassactions.com/category/.../data-breach/` → `data-breach`).

**Why don't all settlement records have every field (e.g. `claimFormDeadline`)?**
TopClassActions doesn't publish every field for every settlement — some deadlines are marked "N/A" (rolling claims, no fixed deadline) or aren't disclosed. This actor omits fields it can't populate with real data rather than sending placeholders.

**Does this actor cover pending or closed settlements too?**
Yes — use `mode=closedSettlements` for the full historical archive of settlements whose claims period has ended, optionally narrowed to one company with `categorySlug` (e.g. `apple-closed-settlements`). You can also use `byCategory` with any `*-pending-settlements` slug, or `latest`/`search` without restricting to `openSettlements`.

**Is this actor reliable for daily monitoring?**
Yes. It reads TopClassActions' standard WordPress REST API over plain HTTPS, has automatic retry-with-backoff on rate limits/server errors, and requires no residential proxy or session management.

# Actor input Schema

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

What to fetch from TopClassActions.com.

## `postUrls` (type: `array`):

Exact topclassactions.com article or settlement page URLs to fetch directly.

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

Free-text search across article titles and content, e.g. `data breach settlement`. Required for mode=search; optional narrowing filter (matches case name/company) when mode=caseTracker; optional narrowing filter (matches term/definition) when mode=glossary.

## `glossaryLetter` (type: `string`):

Optional narrowing filter for mode=glossary: only return glossary terms starting with this letter. Leave blank to browse/search the full glossary.

## `categorySlug` (type: `string`):

TopClassActions category slug. Examples: `amazon-class-action-lawsuit-and-settlement-news` (company news), `data-breach` (topic), `apple-open-settlements` (per-company open settlements), `auto-news`, `banking-news`, `beauty-products`. Find slugs by browsing the site's category URLs (the last path segment). Leave empty to not filter by category.

## `tagSlug` (type: `string`):

Optional TopClassActions topic-tag slug to narrow results further, e.g. `abortion`, `data-breach`, `data-privacy`. This is a separate taxonomy from `categorySlug`. Find slugs by browsing the site's `/tag/<slug>/` URLs. Leave empty to not filter by tag. Not applicable to mode=byUrls or mode=caseTracker.

## `dateFrom` (type: `string`):

Only include articles published on/after this date (UTC).

## `dateTo` (type: `string`):

Only include articles published on/before this date (UTC).

## `sortOrder` (type: `string`):

Order results are fetched in. `relevance` only affects mode=search.

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

Hard cap on emitted records.

## Actor input object example

```json
{
  "mode": "openSettlements",
  "postUrls": [],
  "searchQuery": "settlement",
  "glossaryLetter": "",
  "categorySlug": "",
  "tagSlug": "",
  "sortOrder": "newest",
  "maxItems": 30
}
```

# Actor output Schema

## `items` (type: `string`):

Dataset containing 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 = {
    "mode": "openSettlements",
    "postUrls": [],
    "searchQuery": "settlement",
    "glossaryLetter": "",
    "categorySlug": "",
    "tagSlug": "",
    "sortOrder": "newest",
    "maxItems": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/top-class-actions-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 = {
    "mode": "openSettlements",
    "postUrls": [],
    "searchQuery": "settlement",
    "glossaryLetter": "",
    "categorySlug": "",
    "tagSlug": "",
    "sortOrder": "newest",
    "maxItems": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/top-class-actions-scraper").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": "openSettlements",
  "postUrls": [],
  "searchQuery": "settlement",
  "glossaryLetter": "",
  "categorySlug": "",
  "tagSlug": "",
  "sortOrder": "newest",
  "maxItems": 30
}' |
apify call crawlerbros/top-class-actions-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/top-class-actions-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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