# 13D & 13G API — Activist Investor Stakes & 5% Owners (`smartmoney-data/sec-13d-13g-activist-stakes`) Actor

SEC Schedule 13D and 13G filings: activist investors and funds crossing 5% ownership. Shares owned, % of class, voting power, stated purpose and source of funds, for any ticker or the whole market. Official EDGAR data, pay per result.

- **URL**: https://apify.com/smartmoney-data/sec-13d-13g-activist-stakes.md
- **Developed by:** [SmartMoney Data](https://apify.com/smartmoney-data) (community)
- **Categories:** Business, AI, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 stake filings

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/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

## 13D & 13G API — Activist Investor Stakes & 5% Owners

**Know the moment an activist fund or big investor crosses 5% of a company, what they own, and what they say they want.**

Anyone who acquires more than 5% of a US public company's voting stock must tell the SEC. **Schedule 13D** is filed by holders who may try to influence the company: activists like Elliott, Icahn, Starboard or Trian. It must state the *purpose* of the stake, such as board seats, a sale of the company or buybacks. **Schedule 13G** is the short form for passive holders such as index funds. This Actor turns both into clean rows: who, how many shares, what % of the class, voting power, stated purpose and source of funds.

> Part of the **SmartMoney Data** suite: [Insider Trades](https://apify.com/smartmoney-data/sec-insider-trades-tracker) · [Hedge Fund 13F Holdings](https://apify.com/smartmoney-data/sec-13f-hedge-fund-tracker) · [Congress Stock Trades](https://apify.com/smartmoney-data/congress-stock-trades-tracker) · [Form 144 Planned Sales](https://apify.com/smartmoney-data/sec-form-144-planned-insider-sales) · [13D/13G Activist Stakes](https://apify.com/smartmoney-data/sec-13d-13g-activist-stakes)

### What you can do with it

- 🚨 **Activist alerts:** get notified when a new 13D lands on a stock you own or follow. New activist stakes often move the price the same day.
- 🎯 **Follow famous activists:** filter by filer name (Elliott, Icahn, Starboard, Pershing Square, Trian…) across the whole market.
- 📈 **Track stake changes:** amendments (13D/A, 13G/A) report increases, cuts and exits.
- 🏦 **Who owns 5%+:** see the big institutional holders of any ticker from 13G filings.
- 🤖 **AI agents:** "Has any activist taken a stake in Disney this month, and what do they want?" as a single tool call.

### Features

- ✅ **13D (activist) and 13G (passive)**, originals and amendments
- ✅ **Shares owned and % of class**, with sole and shared voting power
- ✅ **Stated purpose of the stake** (13D Item 4): board seats, strategic alternatives, buybacks…
- ✅ **Source of funds** (13D Item 3) and **recent transactions** (Item 5)
- ✅ **Swaps and agreements** (Item 6)
- ✅ **Every reporting person in a group**, with type (fund, adviser, individual…) and their own holdings
- ✅ **Any ticker, or the latest filings market-wide**
- ✅ Filters for schedule type, minimum % of class, filer name and amendments. **You only pay for rows you keep.**
- ✅ Per-ticker **summary**, activist filings first
- ✅ Link to the official filing on every row

### How to use it

#### Activist and 5% filings for your watchlist, last 90 days

```json
{ "tickers": ["DIS", "SBUX", "PFE"], "lookbackDays": 90 }
```

#### Latest activist (13D) filings across the whole market

```json
{ "scheduleType": "13D" }
```

#### Follow specific activists

```json
{ "scheduleType": "13D", "filerNames": ["Elliott", "Icahn", "Starboard", "Trian"] }
```

### Output

One row per filing. A group of reporting persons (for example a fund, its general partner and the portfolio manager) stays in one row, and the headline figures come from the largest holder in the group. Example (illustrative values):

```json
{
  "ticker": "DIS",
  "issuerName": "Walt Disney Co",
  "issuerCik": "0001744489",
  "issuerCusip": "254687106",
  "securitiesClass": "Common Stock",
  "scheduleType": "13D",
  "isActivist": true,
  "isAmendment": false,
  "filerName": "Example Activist Partners LP",
  "filerType": "Partnership",
  "sharesOwned": 95000000,
  "percentOfClass": 5.2,
  "soleVotingPower": 0,
  "sharedVotingPower": 95000000,
  "eventDate": "2026-09-15",
  "filingDate": "2026-09-25",
  "purpose": "The Reporting Persons believe the shares are undervalued and intend to engage with the Board…",
  "sourceOfFunds": "Working capital of the funds…",
  "recentTransactions": "Open market purchases between 07/20/2026 and 09/15/2026.",
  "agreements": "Cash-settled swaps referencing 4,000,000 shares.",
  "rule13d1": null,
  "reportingPersonCount": 2,
  "reportingPersons": [
    { "name": "Example Activist Partners LP", "cik": "0001791786", "type": "Partnership", "sharesOwned": 95000000, "percentOfClass": 5.2, "soleVotingPower": 0, "sharedVotingPower": 95000000, "sourceOfFunds": "Working capital" }
  ],
  "accessionNumber": "0000921895-26-000002",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/1744489/000092189526000002/0000921895-26-000002-index.htm"
}
```

A `SUMMARY` record in the key-value store rolls up each ticker: number of filings, activist filings, largest stake and the filers.

### Input

| Field | What it does | Default |
|---|---|---|
| `tickers` | Tickers to track. Empty = latest filings market-wide | `[]` |
| `scheduleType` | `all`, `13D` (activist) or `13G` (passive) | `all` |
| `lookbackDays` | Ticker mode: only filings from the last N days | `30` |
| `maxFilingsPerTicker` | Cap per ticker | `50` |
| `latestFilingsCount` | Market-wide mode: latest filings per schedule type | `40` |
| `minPercent` | Skip stakes below this % of class | `0` |
| `filerNames` | Keep filings where a reporting person's name contains one of these | `[]` |
| `includeAmendments` | Include 13D/A and 13G/A | `true` |

### Pricing

Pay per result: you are charged for each filing returned after filters, never for filings that are filtered out. Set a maximum cost per run and the Actor stops cleanly when it is reached.

### FAQ

**What's the difference between 13D and 13G?**
13D is the long form, required when the holder may seek to influence or control the company. It includes the purpose of the stake. 13G is the short form for passive investors, and for banks, brokers and funds that bought in the ordinary course of business.

**How fast is the data?**
13D filings are due within 5 business days of crossing 5%, and amendments within 2 business days of a material change. The Actor reads EDGAR directly, so a filing is available as soon as the SEC publishes it.

**Which filings are covered?**
Filings in the structured XML format (form types `SCHEDULE 13D` and `SCHEDULE 13G`), which the SEC has required since 18 December 2024. Older HTML-only `SC 13D`/`SC 13G` filings are skipped and counted in the summary.

**Is this legal to use?**
Yes. Beneficial ownership filings are public records published by the SEC. The Actor follows the SEC's fair-access rules: rate-limited, identified with a User-Agent.

### Related Actors

- [Insider Trades Tracker (Form 4)](https://apify.com/smartmoney-data/sec-insider-trades-tracker): executive and director buys and sells
- [Hedge Fund 13F Holdings](https://apify.com/smartmoney-data/sec-13f-hedge-fund-tracker): full quarterly portfolios of funds like the activists above
- [Form 144 Planned Sales](https://apify.com/smartmoney-data/sec-form-144-planned-insider-sales): insider sales before they happen
- [Congress Stock Trades](https://apify.com/smartmoney-data/congress-stock-trades-tracker): trades by US Senators and Representatives

### Support

Found a bug or need a feature? Open an issue on the **Issues** tab or email **smartmoney-data@googlegroups.com**. We usually reply within a day.

*Data is provided for informational purposes only and is not investment advice.*

# Actor input Schema

## `tickers` (type: `array`):

US stock tickers to track (e.g. DIS, SBUX). Leave empty to pull the latest 13D/13G filings market-wide.

## `scheduleType` (type: `string`):

13D is filed by holders who may seek to influence the company (activists). 13G is filed by passive holders such as index funds.

## `lookbackDays` (type: `integer`):

Only include filings made within this many days (ticker mode).

## `maxFilingsPerTicker` (type: `integer`):

Upper bound on 13D/13G filings parsed for each ticker.

## `latestFilingsCount` (type: `integer`):

When no tickers are given, how many of the most recent filings of each schedule type to parse.

## `minPercent` (type: `number`):

Skip filings where the largest reported stake is below this percentage. 0 keeps everything (including exits reported as amendments).

## `filerNames` (type: `array`):

Keep only filings where a reporting person's name contains one of these, e.g. Elliott, Icahn, Starboard, Vanguard. Leave empty for all.

## `includeAmendments` (type: `boolean`):

Amendments report stake increases, decreases and exits, so they are usually worth keeping.

## `secUserAgent` (type: `string`):

The SEC asks automated clients to identify themselves as 'Company Name email@domain.com'. Put your own contact here for heavy use.

## Actor input object example

```json
{
  "tickers": [
    "DIS",
    "SBUX",
    "PFE"
  ],
  "scheduleType": "all",
  "lookbackDays": 30,
  "maxFilingsPerTicker": 50,
  "latestFilingsCount": 40,
  "minPercent": 0,
  "filerNames": [],
  "includeAmendments": true,
  "secUserAgent": "SmartMoney Data 13D-13G Tracker smartmoney-data@googlegroups.com"
}
```

# Actor output Schema

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

No description

## `summary` (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 = {
    "tickers": [
        "DIS",
        "SBUX",
        "PFE"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("smartmoney-data/sec-13d-13g-activist-stakes").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 = { "tickers": [
        "DIS",
        "SBUX",
        "PFE",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("smartmoney-data/sec-13d-13g-activist-stakes").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 '{
  "tickers": [
    "DIS",
    "SBUX",
    "PFE"
  ]
}' |
apify call smartmoney-data/sec-13d-13g-activist-stakes --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,smartmoney-data/sec-13d-13g-activist-stakes"
        }
    }
}
```

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/EQQK3s1vfIG0dzAPA/builds/adtwKZGukbK26VMoD/openapi.json
