# SEC 13D/13G Ownership Tracker — New 5%+ Stake Filings (`m_ctim/sec-13d-ownership-tracker`) Actor

Track new SEC Schedule 13D and 13G filings — the disclosure an investor files within days of acquiring 5%+ ownership of a public company. 13D signals activist intent; 13G signals a passive stake. Search by ticker or keyword.

- **URL**: https://apify.com/m\_ctim/sec-13d-ownership-tracker.md
- **Developed by:** [Timothy Kelvin](https://apify.com/m_ctim) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 75.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

## SEC 13D/13G Ownership Tracker — New 5%+ Stake Filings

Track new SEC Schedule 13D and 13G filings — the mandatory disclosure an
investor must file within days of acquiring beneficial ownership of 5%
or more of a public company's stock. A **13D** signals activist or
control intent (the filer may seek to influence management, force a
sale, push for board seats); a **13G** signals a passive stake, typically
filed by index funds and institutional holders with no such intent.

Built for M\&A watchers, activist-investor trackers, and IR teams who
want to know the moment someone starts building a meaningful stake in a
company — often the earliest public signal of an activist campaign or
takeover interest.

### Input

```json
{
  "ticker": "AAPL",
  "keyword": "",
  "formType": "all",
  "daysBack": 14,
  "maxResults": 50
}
```

| Field | Type | Description |
|---|---|---|
| `ticker` | string (optional) | Stock ticker of the subject (target) company to filter by. |
| `keyword` | string (optional) | Free-text search across the filing (e.g. a company or investor name). |
| `formType` | string | `"all"`, `"13D"` (activist/control intent), or `"13G"` (passive stake). Default `"all"`. |
| `daysBack` | number | How many days back from today to search, by filing date. Default `14`, max `90`. |
| `maxResults` | number | Max filings to return, most recently filed first. Default `50`, max `100`. |

Leave both `ticker` and `keyword` blank to return all new 13D/13G
filings market-wide.

### Output

One record per filing:

```json
{
  "accessionNumber": "0002100119-26-000139",
  "formType": "SCHEDULE 13G",
  "subjectCompany": { "name": "Apple Inc.", "ticker": "AAPL", "cik": "0000320193" },
  "filedBy": [
    { "name": "VANGUARD CAPITAL MANAGEMENT LLC", "ticker": null, "cik": "0002100119" }
  ],
  "filingDate": "2026-08-11",
  "filingUrl": "https://www.sec.gov/Archives/edgar/data/320193/000210011926000139-index.htm"
}
```

A search with no matches in the requested window returns no items but
is still billed once for the search.

### How it works

Direct calls to the official [SEC EDGAR full text search
API](https://www.sec.gov/edgar/search/) (`efts.sec.gov`), filtered to
Schedule 13D and/or 13G filings. Ticker lookups resolve against SEC's own
company-ticker mapping file. No proxy, no key, no scraping.

**Note:** the filing itself (linked via `filingUrl`) discloses the
percent ownership and purpose of the transaction — the search index used
here doesn't expose those fields directly, so this actor tells you *who*
just crossed the 5% threshold on *what*, and you open the filing for the
stake size and stated intent.

### Pricing note

Billed per **search**, not per filing returned — one charge whether the
search returns 0 filings or 100.

### Related products

- [SEC 8-K Material Event Tracker](https://github.com/timmKal01/sec-8k-material-event-tracker) — material corporate events from public filings
- [Insider Trading Alert](https://github.com/timmKal01/insider-trading-alert) — the officer/director equivalent (SEC Form 4), smaller trades by company insiders rather than outside 5%+ stakebuilders

# Actor input Schema

## `ticker` (type: `string`):

Stock ticker of the subject (target) company to filter by, e.g. "AAPL". Leave blank to search across all companies.

## `keyword` (type: `string`):

Free-text search across the filing (e.g. a company or investor name). Leave blank, along with "ticker", to return all new 13D/13G filings market-wide.

## `formType` (type: `string`):

13D signals activist or control intent (the filer may seek to influence management); 13G signals a passive stake (no such intent), typically filed by index funds and institutional holders.

## `daysBack` (type: `integer`):

How many days back from today to search, by filing date.

## `maxResults` (type: `integer`):

Maximum number of filings to return, most recently filed first.

## Actor input object example

```json
{
  "formType": "all",
  "daysBack": 14,
  "maxResults": 50
}
```

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("m_ctim/sec-13d-ownership-tracker").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("m_ctim/sec-13d-ownership-tracker").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 '{}' |
apify call m_ctim/sec-13d-ownership-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,m_ctim/sec-13d-ownership-tracker"
        }
    }
}

```

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/hF8O6QZNyulUHDCzc/builds/Tv4uBmSdGIIaEqtvK/openapi.json
