# FTC Enforcement Actions Scraper (`acquistion-automation/ftc-actions-scraper`) Actor

Scrapes FTC enforcement actions and press releases from ftc.gov. Returns each action as a flat row with title, date, URL, and full text. Export to CSV, JSON, Excel, or XML.

- **URL**: https://apify.com/acquistion-automation/ftc-actions-scraper.md
- **Developed by:** [Acquisition Automation Co.](https://apify.com/acquistion-automation) (community)
- **Categories:** News, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $19.00 / 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?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![Acquisition Automation Co. Search less. Close more.](https://api.apify.com/v2/key-value-stores/AOdPHdOpeDpzEPS5f/records/banner.jpg)

## ⚖️ FTC Enforcement Actions Scraper

> **Export the FTC's cases and proceedings library as rows: case name, matter number, docket number, whether it is administrative or federal, whether it is pending or closed, the date it was last updated, and the Commission's own summary.** No API key, no registration, no login.

The Federal Trade Commission publishes every case it brings at `ftc.gov/legal-library/browse/cases-proceedings`. It is the record of which companies were sued, which mergers were challenged, and how each one ended. The library paginates ten at a time, has no export, and the case type and status live in a sidebar rather than in the listing. This Actor walks the pages and writes each case into a dataset you can open in a spreadsheet.

| Who uses it | What they use the library for |
|---|---|
| 🏢 Acquisition entrepreneurs and search funds | Checking whether a target, its owner or its parent has an FTC action against it before an LOI |
| 📐 Private equity and corporate development | Reading how the Commission treated comparable deals in the same sector before signing |
| 🧾 Diligence and compliance teams | Building a dated file of consent orders, bans and settlements by company name |
| 📰 Legal researchers and reporters | Tracking pending matters by docket number without refreshing a listing page |

### 📋 What it does

> 💡 **Why it matters:** a blocked merger is public the day it is filed. The library holds both halves of the risk in one place: whether the business you are buying has been sued, and whether a deal like yours has been stopped.

- ⚖️ **Returns one row per case** from the FTC's cases and proceedings library, newest first.
- 🔢 **Carries the case identifiers.** Matter number and docket number, where the Commission assigns them, which is how a case is looked up in the record.
- 🏛 **Separates administrative from federal.** `caseType` tells you whether the matter sits before the Commission or in a district court.
- 🚦 **Tracks status.** `caseStatus` is `Pending` or `Closed`, so a watchlist can be re-run and diffed.
- 📝 **Includes the FTC's own summary** of the case, which names the parties, the conduct and the remedy.
- 📄 **Pages backwards through the archive.** `startPage` moves the run to older listing pages instead of the newest.
- 💾 **Exports to CSV, Excel, JSON or XML**, from the run page or the API.

### 📊 Output

Every case is one flat row, with the same ten fields on every run. `null` means the Commission publishes no value for that field on that case.

| Field | Type | Description |
|---|---|---|
| ⚖️ `title` | string | Case name as the FTC lists it, for example `Asbury Automotive Group, Inc., et al., In the Matter of` |
| 🔢 `matterNumber` | string | FTC matter number, for example `222 3135`. Often `null` on federal court cases |
| 📁 `docketNumber` | string | Docket number, for example `9436`. Usually present on administrative matters, `null` on many federal ones |
| 🏛 `caseType` | string | `Administrative` or `Federal` |
| 🚦 `caseStatus` | string | `Pending` or `Closed` |
| 📅 `lastUpdated` | string | ISO date the FTC last updated the case page |
| 📝 `summary` | string | The Commission's description of the case, its parties and its outcome |
| 🔗 `url` | string | Link to the case page on ftc.gov |
| 🕒 `scrapedAt` | string | ISO timestamp of collection |
| ⚠️ `error` | string | `null` on a normal row |

#### Example rows

```json
{
  "title": "Humboldt Merchant Services",
  "matterNumber": null,
  "docketNumber": null,
  "caseType": "Federal",
  "caseStatus": "Closed",
  "lastUpdated": "2026-09-11T12:00:00Z",
  "summary": "Payment processing company Humboldt Merchant Services will pay $12 million and be permanently banned from processing payments for merchants with a heightened risk of potential fraud to settle allegations that Humboldt processed payments for merchants that defrauded consumers. According to the FTC’s complaint ,  Humboldt processed payments for more than 1,000 merchants that were shell entities that served as fronts or pass-throughs for fraudulent companies engaged in unauthorized billing scams, including Legion Media, which the FTC shut down in 2024.",
  "url": "https://www.ftc.gov/legal-library/browse/cases-proceedings/humboldt-merchant-services",
  "scrapedAt": "2026-09-14T17:31:33.481Z",
  "error": null
}
```

```json
{
  "title": "Henkel, A-Paint",
  "matterNumber": null,
  "docketNumber": null,
  "caseType": "Administrative",
  "caseStatus": "Pending",
  "lastUpdated": "2026-09-11T12:00:00Z",
  "summary": "The Federal Trade Commission sued to block Henkel AG & Co. KGaA (Henkel), the manufacturer of the industry-leading Loctite brand construction adhesives, from acquiring Loctite’s main competitor, Liquid Nails. The FTC alleges that the merger would eliminate fierce competition between Loctite and Liquid Nails, leading to higher prices, lower quality, and reduced innovation, all of which would be detrimental to American consumers. On August 14, 2026, after a seven-day trial, the U.S. District Court for the Southern District of New York granted the FTC’s request for a permanent injunction to block Henkel’s proposed $725 million acquisition of Liquid Nails from private equity firm American Industrial Partners ",
  "url": "https://www.ftc.gov/legal-library/browse/cases-proceedings/henkel-paint",
  "scrapedAt": "2026-09-14T17:31:33.481Z",
  "error": null
}
```

### ✨ Why choose this Actor

| | What you get |
|---|---|
| **The primary record** | Rows come from the Commission's own case library, not from a news write-up of it. |
| **Status you can diff** | Re-run a watchlist and compare `caseStatus` and `lastUpdated` to see what moved. |
| **Identifiers, not just names** | Matter and docket numbers are what a lawyer will ask for when you escalate a finding. |
| **The archive, not only the front page** | `startPage` walks back through older listing pages. |
| **You pay per row** | No subscription. A run that returns nothing costs nothing. |

### 🚀 How to use it

1. [Create a free Apify account](https://console.apify.com/sign-up). New accounts start with $5 of credit.
2. Open the Actor and select **Try for free**.
3. Leave `startPage` at `0` for the newest cases, or raise it to reach older ones.
4. Set `maxItems` to cap the run.
5. Select **Start**, then export from the **Dataset** tab as CSV, Excel, JSON or XML.

The newest cases:

```json
{
  "maxItems": 10,
  "startPage": 0
}
```

A deeper pull from further back in the archive:

```json
{
  "maxItems": 200,
  "startPage": 5
}
```

### ⚙️ Input

| Field | Required | Description |
|---|---|---|
| `maxItems` | No | Maximum cases to collect in a run. Defaults to 10 |
| `startPage` | No | Listing page to start at. `0` is the newest. Defaults to `0` |

### 💰 Pricing

Pay per result. No subscription, and no Apify platform usage on top.

| Apify plan | Free | Bronze | Silver | Gold | Platinum | Diamond |
|---|---|---|---|---|---|---|
| Per case row | $0.021 | $0.02033 | $0.01967 | $0.019 | $0.019 | $0.019 |

| Rows collected | Cost on the Free plan |
|---|---|
| 100 | $2.10 |
| 1,000 | $21.00 |
| 10,000 | $210.00 |

**Free plan runs** return up to 10 rows as a preview. Any paid Apify plan lifts that to 1,000,000 per run.

### 🔌 Integrate with any app

The dataset is available through the Apify API as soon as the run finishes. Use `run-sync-get-dataset-items` for a one-shot call, webhooks to trigger what happens next, or the Make, Zapier, Airbyte and LangChain integrations listed on the Actor page.

### 🤖 Use with an AI agent

Give an agent live access to the case library over the Model Context Protocol:

```bash
claude mcp add --transport http apify "https://mcp.apify.com?tools=acquistion-automation/ftc-actions-scraper"
```

Then ask it in plain language which merger challenges are still pending and have it read the summaries back.

### ❓ Frequently asked questions

**Does this return press releases or the full legal documents?**
Neither. Each row is a case entry from the cases and proceedings library: its name, identifiers, type, status, date and the Commission's summary. The complaints, orders and exhibits live behind `url` on ftc.gov.

**Why are `matterNumber` and `docketNumber` sometimes `null`?**
The FTC does not assign both to every case. Administrative matters usually carry a docket number, and many federal court cases carry neither on the case page.

**Can I search by company name?**
There is no keyword input. Collect a range of pages and filter `title` and `summary` in your spreadsheet or database afterwards.

**How far back can I go?**
`startPage` walks the listing backwards as far as the library paginates. Each page holds the Commission's own batch of cases.

**Do I need a proxy?**
No. Requests and retries are handled inside the Actor and included in the price.

**What can I export?**
CSV, Excel, JSON and XML from the run page, or JSON straight from the API.

### 🔗 More from Acquisition Automation Co.

- [SEC Investor Alerts Scraper](https://apify.com/acquistion-automation/sec-investor-alerts-scraper)
- [SAM.gov Contract Opportunities Scraper](https://apify.com/acquistion-automation/sam-gov-contracts-scraper)
- [IRS Exempt Organizations Scraper](https://apify.com/acquistion-automation/irs-eo-master-file-scraper)
- [USCG PSIX Vessel Registry Scraper](https://apify.com/acquistion-automation/uscg-psix-vessel-incidents-scraper)
- [BizBuySell Scraper](https://apify.com/acquistion-automation/bizbuysell-scraper)

### About Acquisition Automation Co.

We build automation for people buying businesses. The repetitive part of an acquisition search, checking listings, pulling public records, tracking owners and assets, is work a machine should do, so the buyer's time goes into judging deals instead of collecting them.

We add new Actors regularly. If there is a source you need and do not see here, tell us.

### 🆘 Support

Open an issue in the **Issues** tab of this Actor with your run ID, the input you used, and what you expected to get back.

### ⚠️ Disclaimer

This Actor is independent and is not affiliated with, endorsed by, or sponsored by the Federal Trade Commission or any government agency. It collects only publicly available data, and nothing here is legal advice. You are responsible for using that data in compliance with the source's terms of service and applicable law.

# Actor input Schema

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

How many FTC actions to collect per run.

## `startPage` (type: `integer`):

Listing page to start at (0 = newest).

## Actor input object example

```json
{
  "maxItems": 10,
  "startPage": 0
}
```

# Actor output Schema

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

No description

# 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 = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("acquistion-automation/ftc-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 = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("acquistion-automation/ftc-actions-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 '{
  "maxItems": 10
}' |
apify call acquistion-automation/ftc-actions-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,acquistion-automation/ftc-actions-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/nvwOO29eMxJLxT5uk/builds/lL9kQ4qn0E44EQe9U/openapi.json
