# 🐋 13F Holdings Delta Tracker — Hedge-Fund Position Changes (`nexgendata/13f-holdings-delta-tracker`) Actor

Track quarter-over-quarter CHANGES in institutional 13F filings. New positions, increased stakes, decreased stakes, full exits. What Buffett, Tiger Global, Bridgewater, Renaissance just bought or sold. Direct SEC EDGAR. Pay-per-delta. Bloomberg / WhaleWisdom alternative.

- **URL**: https://apify.com/nexgendata/13f-holdings-delta-tracker.md
- **Developed by:** [NexGenData](https://apify.com/nexgendata) (community)
- **Categories:** Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $250.00 / 1,000 13f delta records

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## 🐋 13F Holdings Delta Tracker — Quarterly Position Changes for Berkshire, Tiger, Bridgewater & Every Hedge Fund

> **Stop reading raw 13F filings. Start reading the deltas. This actor pulls each fund's two most recent SEC Form 13F-HR filings, diffs the positions by CUSIP, and returns one clean row per new position, increased stake, reduced stake, or full exit — the actionable hedge-fund signal that subscriptions like WhaleWisdom Premium charge $999/year for.**

When Warren Buffett's Berkshire Hathaway buys a brand-new $1.2 billion stake in Sirius XM, the raw 13F shows you 47 lines of identical Apple, Bank of America, and Coca-Cola holdings — same as last quarter, same as the quarter before. The **signal** is buried in those 47 lines as a single new row. The same is true for every whale: Tiger Global, Bridgewater, Renaissance, Pershing Square, Third Point, Greenlight, Appaloosa, Citadel, Point72, Coatue, Lone Pine, Viking. Each quarter their information tables run hundreds of pages — but the **delta** is what hedge funds, family offices, and quant shops actually pay to see.

This actor does that diff for you. Point it at a single fund or a list of 50 whales, and it returns:
- **NEW positions** (zero last quarter → non-zero this quarter — the freshest conviction trade)
- **INCREASED stakes** (existing position grew in shares)
- **DECREASED stakes** (existing position shrunk)
- **EXITED positions** (position went to zero — fund lost conviction or rotated)

Plus a `is_top10_new` boolean — true when a stock vaulted into the fund's top 10 holdings this quarter (the strongest single-delta signal in 13F land).

---

### What 13F Is (And Why The Deltas Matter)

Under SEC Rule 13F, **every institutional investment manager with $100 million or more in qualifying US-listed equities** must file Form 13F-HR within **45 days of each calendar quarter end**. The filing discloses every long equity position the manager held on the last day of the quarter — issuer name, CUSIP, share count, USD value, voting authority.

The raw 13F is public, free, and useless on its own at scale. A typical mega-fund (Renaissance, Citadel, Two Sigma) files **2,000–8,000 positions per quarter**. Berkshire is unusual in its concentration — most quants file what looks like a paint-by-numbers replica of the Russell 3000 with a tilt.

**The signal is in the diff.** When a fund:
- Initiates a brand new top-20 position → high-conviction fresh idea
- Doubles an existing stake → conviction reinforcement
- Fully exits a name → loss of conviction
- Vaults a new name into the top 10 → multi-hundred-million capital commitment

These are the moves the Sohn Conference talks, the Berkshire fan-club newsletters, and the Robinhood trades-of-the-day react to within 24 hours of every 45-day filing window.

---

### Output Schema

Each dataset item is **one stock-level position delta** for one fund-quarter:

| Field | Type | Example |
|---|---|---|
| `filer_name` | `str` | `BERKSHIRE HATHAWAY INC` |
| `filer_cik` | `str` | `0001067983` |
| `period_of_report` | `str` | `2025-12-31` |
| `prior_period_of_report` | `str` | `2025-09-30` |
| `symbol` | `str \| null` | `AAPL` (best-effort CUSIP→ticker lookup) |
| `company_name` | `str` | `APPLE INC` |
| `title_of_class` | `str` | `COM` |
| `cusip` | `str` | `037833100` |
| `delta_type` | `enum` | `NEW` / `INCREASED` / `DECREASED` / `EXITED` |
| `shares_current` | `int` | `300000000` |
| `shares_prior` | `int` | `400000000` |
| `shares_change` | `int` | `-100000000` (signed) |
| `pct_change` | `float \| null` | `-25.0` (null for NEW — undefined %) |
| `value_usd_current` | `int` | `72000000000` |
| `value_usd_prior` | `int` | `92000000000` |
| `value_usd_change` | `int` | `-20000000000` |
| `pct_of_portfolio_current` | `float` | `21.5` |
| `is_new_position` | `bool` | `false` |
| `is_full_exit` | `bool` | `false` |
| `is_top10_new` | `bool` | `false` (entered top 10 this quarter) |
| `filing_url` | `str` | `https://www.sec.gov/Archives/edgar/data/.../infotable.xml` |
| `data_source` | `str` | `sec.gov EDGAR 13F-HR` |

---

### Input Filters

| Filter | Type | Description |
|---|---|---|
| `fund_names` | array | Case-insensitive substring match against EDGAR filer names. Defaults to `["Berkshire Hathaway", "Tiger Global"]`. |
| `fund_ciks` | array | Exact 10-digit CIK lookups for ambiguous filer names. |
| `delta_types` | array | Subset of `NEW`/`INCREASED`/`DECREASED`/`EXITED`. Defaults to `["NEW","INCREASED"]`. |
| `min_value_usd` | int | Skip deltas under this USD position size. |
| `min_shares_change_pct` | int | Skip INCREASED/DECREASED where abs(% change) < this. NEW/EXITED always pass. |
| `limit` | int (1–2000) | Max delta records to return. |
| `include_top10_flag` | bool | Compute the `is_top10_new` boolean (true = entered top 10 this quarter). |

---

### Use Cases

#### 1. Hedge Funds & Quant Shops — Clone Strategies
Build a long-only basket that buys every NEW position the top 20 whales initiate above $50M. Backtests of "whale-clone" portfolios have shown 2–4% annualized alpha vs the S&P 500 over the last 15 years (with a 45-day lag from the filing date — the strategy isn't dead, but it's not free money either).

#### 2. Family Offices & RIAs — "What Did Buffett Just Buy?"
Run the actor weekly with `fund_names: ["Berkshire Hathaway"]` and email any NEW positions or top-10 entries to your investment committee. The Sohn-conference idea-of-the-day, but automated.

#### 3. Activists & M&A Bankers — Concentration Detection
Watch for INCREASED stakes by known activists (Icahn, Ackman, Loeb, Trian, Engaged Capital, JANA, Starboard) — these often precede public 13D/G campaigns by weeks.

#### 4. Single-Stock Conviction Tracking
Filter by `delta_types: ["EXITED"]` to see which whales are quietly selling a name you own. EXITED-by-3-whales-in-one-quarter is a strong "they know something" signal worth investigating.

#### 5. Retail Smart-Money Followers
The TikTok / r/wallstreetbets "Buffett bought X" hype cycle peaks 2–4 hours after each filing window. Run this actor at 4:01pm ET on the 45-day-from-quarter-end deadline date and you're ahead of 99% of retail.

---

### Comparison vs Bloomberg / WhaleWisdom Premium / HedgeFollow Pro / Backtrader / FactSet

| Capability | This Actor | Bloomberg Terminal | WhaleWisdom Premium | HedgeFollow Pro | Backtrader / Custom | FactSet |
|---|---|---|---|---|---|---|
| Quarterly position deltas (NEW/INCR/DECR/EXIT) | ✅ | ✅ | ✅ | ✅ | ⚠ DIY | ✅ |
| Top-10 entry flag | ✅ | ⚠ manual | ✅ | ⚠ partial | ❌ | ✅ |
| Full SEC filing URL per row | ✅ | ⚠ separate | ❌ | ⚠ link only | ⚠ DIY | ⚠ separate |
| CUSIP-level diff (not just ticker) | ✅ | ✅ | ⚠ ticker-only | ⚠ ticker-only | ⚠ DIY | ✅ |
| % portfolio weight current | ✅ | ✅ | ✅ | ✅ | ⚠ DIY | ✅ |
| 50-whale curated default list | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ |
| API / programmatic access | ✅ | ✅ ($24K/yr) | ✅ ($999/yr) | ✅ ($249/yr) | ⚠ self-host | ✅ ($30K/yr) |
| Anti-bot risk | None (direct SEC) | n/a | High (aggregator) | High (aggregator) | n/a | n/a |
| Data source | SEC EDGAR official | proprietary | aggregator | aggregator | SEC EDGAR | proprietary |
| Pay-per-result pricing | ✅ $0.25/delta | ❌ flat | ❌ flat | ❌ flat | ❌ infra cost | ❌ flat |
| Annual cost @ 500 deltas/yr | **$125** | $24,000+ | $999 | $249 | $0 + dev time | $30,000+ |

**Bottom line:** if you want the actionable delta — not the raw 47-row filing — at the price of a couple of coffees per quarter, this is the cheapest path. WhaleWisdom and HedgeFollow do this too but their aggregator-based pipelines are anti-bot-fragile; we hit SEC EDGAR directly (the source of truth) so the data is unblockable.

---

### Example Output

```json
{
  "filer_name": "BERKSHIRE HATHAWAY INC",
  "filer_cik": "0001067983",
  "period_of_report": "2025-12-31",
  "prior_period_of_report": "2025-09-30",
  "symbol": "SIRI",
  "company_name": "SIRIUS XM HLDGS INC",
  "title_of_class": "COM",
  "cusip": "82968B103",
  "delta_type": "NEW",
  "shares_current": 132311566,
  "shares_prior": 0,
  "shares_change": 132311566,
  "pct_change": null,
  "value_usd_current": 1180000000,
  "value_usd_prior": 0,
  "value_usd_change": 1180000000,
  "pct_of_portfolio_current": 0.41,
  "is_new_position": true,
  "is_full_exit": false,
  "is_top10_new": false,
  "filing_url": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526054580/50240.xml",
  "data_source": "sec.gov EDGAR 13F-HR (official, free)"
}
````

***

### Quickstart

#### Apify Console

1. Click **Start** on the actor page.
2. Set `fund_names: ["Berkshire Hathaway", "Tiger Global"]`, `delta_types: ["NEW","INCREASED"]`, `limit: 5`.
3. Hit Run. Results appear in ~30 seconds.

#### cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/nexgendata~13f-holdings-delta-tracker/run-sync-get-dataset-items?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"fund_names": ["Berkshire Hathaway"], "delta_types": ["NEW","INCREASED"], "limit": 20}'
```

#### Python SDK

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")
run = client.actor("nexgendata/13f-holdings-delta-tracker").call(run_input={
    "fund_names": ["Berkshire Hathaway", "Tiger Global", "Pershing Square"],
    "delta_types": ["NEW", "INCREASED"],
    "min_value_usd": 10000000,
    "limit": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['filer_name']}: {item['delta_type']} "
          f"{item['company_name']} (${item['value_usd_current']:,})")
```

***

### Pricing

**$0.25 per delta record returned**, plus **$0.01 per actor start**.

- Smoke test (5 deltas): **$1.26**
- Weekly whale-monitor (50 deltas): **$12.51/week**, ~$650/year
- Quarterly mega-pull (500 deltas across 50 whales): **$125.01/quarter**, ~$500/year

Compare to: WhaleWisdom Premium ($999/year flat), HedgeFollow Pro ($249/year, limited), Bloomberg Terminal ($24K+/year). The premium $0.25/record reflects that each delta record is high-value hedge-fund signal — not just raw filing data — and that the actor pre-computes the top-10-entry flag, % portfolio weight, and signed share change so you don't have to.

***

### How It Works

**Primary data source:** SEC EDGAR (`data.sec.gov/submissions/` + `www.sec.gov/Archives/edgar/data/`) — official, free, JSON+XML, no anti-bot.

**Pipeline per fund:**

1. Resolve fund\_name → CIK via curated 50-fund whale list, or accept exact CIKs.
2. Fetch the fund's EDGAR submissions JSON.
3. Identify the two most recent 13F-HR accession numbers.
4. Fetch each filing's information-table XML (the structured holdings list).
5. Parse + aggregate by CUSIP (a fund can hold multiple lots of the same CUSIP under different voting/discretion classifications).
6. Auto-normalize value fields (post-2022 files report USD; pre-2022 reported thousands).
7. Diff the two CUSIP sets → emit one record per non-zero delta.
8. Rank: NEW first, then by absolute USD change desc.

**No aggregator dependency.** Unlike WhaleWisdom or HedgeFollow, we don't rely on a third-party that can ban our IP or break their HTML. SEC EDGAR is the source of truth — it cannot rate-limit us beyond ~10 req/sec, which we already throttle below.

***

### FAQ

**Q: Why only US-listed equities?**
A: Form 13F is a US-only filing. Non-US institutional disclosures (UK FCA, ESMA, Japan TOSHO) follow different rules with different fields. For non-US: see the Schedule 13D/G Activist Tracker for cross-border activist stakes.

**Q: Are short positions or derivatives included?**
A: No. 13F is long-equity-only by SEC design. Short positions are not disclosed publicly; option positions (puts/calls) are filtered out by this actor because their delta signal is too noisy to be useful (most are hedges, not directional bets).

**Q: How do you handle 13F amendments (13F-HR/A)?**
A: We pull only the original 13F-HR filings (the as-of-quarter-end snapshot). Amendments are rare and usually correct minor CUSIP typos. If a fund frequently amends, consider running with their CIK and dialing `min_value_usd` higher.

**Q: What's the lag between quarter end and filing?**
A: Up to 45 days. Most mega-funds file on day 44 (the deadline). Berkshire is famously last (typically files at 4:01pm ET on day 45). The actor will surface deltas as soon as both quarter filings exist in EDGAR.

**Q: Can I monitor a fund whose CIK I don't know?**
A: Yes — pass `fund_names: ["Some Manager"]`. We match substring against the curated whale list. If your fund isn't in the list, supply the CIK directly via `fund_ciks: ["XXXXXXXXXX"]`. Look up CIKs at https://www.sec.gov/cgi-bin/browse-edgar.

**Q: How current is the curated whale list?**
A: Updated quarterly with the 50 highest-AUM US-equity institutional managers tracked by the major hedge-fund-follower communities (Sohn, Tiger Cubs, activist crowd, value crowd, quant crowd).

***

### Related Actors — Build A Full Smart-Money Stack

| Actor | What It Does |
|---|---|
| [SEC Form 13F Holdings Tracker](https://apify.com/nexgendata/sec-form-13f-holdings-tracker) | Raw quarterly 13F filings (all positions, not just deltas) — the upstream cousin to this actor. |
| [SEC Form 4 Insider Trading Tracker](https://apify.com/nexgendata/sec-form4-insider-tracker) | CEO/CFO/Director buys & sells with cluster-buy detection (2-day filing window). |
| [SEC Schedule 13D/G Activist Tracker](https://apify.com/nexgendata/sec-schedule-13dg-activist-tracker) | 5%+ ownership stakes by activists (Icahn, Ackman, Loeb, JANA). |
| [Short Interest Tracker](https://apify.com/nexgendata/short-interest-tracker) | Bi-monthly short-interest data — pair with EXITED deltas for "smart money + shorts" conviction screens. |
| [Startup Funding Tracker](https://apify.com/nexgendata/startup-funding-tracker) | Private-market raises — see when fund whales are deploying capital into pre-IPO names. |
| [Finance MCP Server](https://apify.com/nexgendata/finance-mcp-server) | LLM-ready finance data — give Claude / GPT access to whale flows, fundamentals, charts. |

***

### Disclaimer

This actor returns **public SEC Form 13F-HR filing data** sourced directly from SEC EDGAR. All positions are filed by the institutional managers themselves under SEC regulation; we add the quarter-over-quarter diff computation, the top-10-entry flag, and the % portfolio weight. **This is not investment advice.** 13F filings are reported with up to a 45-day lag — the fund may have already changed its position before the deltas reach you. Past performance does not predict future results.

***

### Affiliate / Referral

Like this actor? **Sign up for Apify with our referral link** to support more builds like this one:
[**https://apify.com/nexgendata?fpr=2ayu9b**](https://apify.com/nexgendata?fpr=2ayu9b)

You get the same free tier; we get a small commission. No price difference for you.

# Actor input Schema

## `fund_names` (type: `array`):

List of fund / institutional manager names to track. Matches case-insensitive substring against the SEC EDGAR 13F filer name. Examples: 'Berkshire Hathaway' (Warren Buffett), 'Tiger Global', 'Bridgewater', 'Renaissance Technologies', 'Pershing Square' (Ackman), 'Third Point' (Loeb), 'Greenlight' (Einhorn), 'Appaloosa' (Tepper), 'Citadel', 'Point72' (Cohen), 'Coatue', 'Lone Pine'. Leave empty and use fund\_ciks for exact-match lookups, or leave both empty to use the curated 50-fund whale list.

## `fund_ciks` (type: `array`):

List of SEC CIK numbers for exact-match fund lookups. CIK is the SEC's permanent identifier for every registered filer. Examples: 0001067983 (Berkshire Hathaway), 0001167483 (Tiger Global Management), 0001350694 (Bridgewater Associates), 0001037389 (Renaissance Technologies), 0001336528 (Pershing Square), 0001040273 (Third Point), 0001079114 (Greenlight Capital). Use this when fund\_names is ambiguous or the manager has multiple entities. Look up CIKs at https://www.sec.gov/cgi-bin/browse-edgar.

## `delta_types` (type: `array`):

Which categories of position changes to include. NEW = position went from zero last quarter to non-zero this quarter (highest-signal — fresh conviction trade). INCREASED = existing position grew in share count. DECREASED = existing position shrunk. EXITED = position went to zero (full exit, also high-signal — fund lost conviction or rotated). Most quant signal portfolios use only NEW + INCREASED.

## `min_value_usd` (type: `integer`):

Skip delta records where the current-quarter position value is below this threshold. Filters out trivial $1K rebalances. Common thresholds: $1,000,000 (material trades only), $10,000,000 (top-50 holdings for mega-funds), $100,000,000 (mega-cap conviction trades — Berkshire-tier signals). Leave at 0 to include every delta no matter how small.

## `min_shares_change_pct` (type: `integer`):

For INCREASED and DECREASED deltas only — require the absolute percentage change in share count to exceed this threshold. Filters out routine 1-2% rebalances. Recommended: 10 (material rebalance), 25 (meaningful conviction shift), 50 (high-conviction add/trim). NEW and EXITED records always pass (infinite/full %). Leave at 0 for no filter.

## `limit` (type: `integer`):

Maximum number of delta records to push to the dataset (one row per stock-level position change per fund). Typical hedge-fund-tracker analysts pull 50–200 deltas per refresh — that's the top conviction moves across the whale list. Heavy backtesters pull 1000+. Each delta record is a pay-per-result charge of $0.25.

## `include_top10_flag` (type: `boolean`):

If true, compute the boolean is\_top10\_new flag for each NEW / INCREASED delta — true means the stock entered the fund's top 10 portfolio positions this quarter (by USD value). This is the strongest single-delta signal — when a mega-fund vaults a new name into the top 10 it usually means a multi-billion-dollar capital commitment. Set to false to skip the extra computation if you only need raw deltas.

## Actor input object example

```json
{
  "fund_names": [
    "Berkshire Hathaway",
    "Tiger Global"
  ],
  "fund_ciks": [],
  "delta_types": [
    "NEW",
    "INCREASED"
  ],
  "min_value_usd": 1000000,
  "min_shares_change_pct": 10,
  "limit": 5,
  "include_top10_flag": true
}
```

# 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 = {
    "fund_names": [
        "Berkshire Hathaway",
        "Tiger Global"
    ],
    "fund_ciks": [],
    "delta_types": [
        "NEW",
        "INCREASED"
    ],
    "min_value_usd": 1000000,
    "min_shares_change_pct": 10,
    "limit": 5,
    "include_top10_flag": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("nexgendata/13f-holdings-delta-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 = {
    "fund_names": [
        "Berkshire Hathaway",
        "Tiger Global",
    ],
    "fund_ciks": [],
    "delta_types": [
        "NEW",
        "INCREASED",
    ],
    "min_value_usd": 1000000,
    "min_shares_change_pct": 10,
    "limit": 5,
    "include_top10_flag": True,
}

# Run the Actor and wait for it to finish
run = client.actor("nexgendata/13f-holdings-delta-tracker").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 '{
  "fund_names": [
    "Berkshire Hathaway",
    "Tiger Global"
  ],
  "fund_ciks": [],
  "delta_types": [
    "NEW",
    "INCREASED"
  ],
  "min_value_usd": 1000000,
  "min_shares_change_pct": 10,
  "limit": 5,
  "include_top10_flag": true
}' |
apify call nexgendata/13f-holdings-delta-tracker --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nexgendata/13f-holdings-delta-tracker",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "🐋 13F Holdings Delta Tracker — Hedge-Fund Position Changes",
        "description": "Track quarter-over-quarter CHANGES in institutional 13F filings. New positions, increased stakes, decreased stakes, full exits. What Buffett, Tiger Global, Bridgewater, Renaissance just bought or sold. Direct SEC EDGAR. Pay-per-delta. Bloomberg / WhaleWisdom alternative.",
        "version": "0.0",
        "x-build-id": "f3lQXcyvt5jBflBLB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/nexgendata~13f-holdings-delta-tracker/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-nexgendata-13f-holdings-delta-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/nexgendata~13f-holdings-delta-tracker/runs": {
            "post": {
                "operationId": "runs-sync-nexgendata-13f-holdings-delta-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/nexgendata~13f-holdings-delta-tracker/run-sync": {
            "post": {
                "operationId": "run-sync-nexgendata-13f-holdings-delta-tracker",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "fund_names": {
                        "title": "Fund names to track",
                        "type": "array",
                        "description": "List of fund / institutional manager names to track. Matches case-insensitive substring against the SEC EDGAR 13F filer name. Examples: 'Berkshire Hathaway' (Warren Buffett), 'Tiger Global', 'Bridgewater', 'Renaissance Technologies', 'Pershing Square' (Ackman), 'Third Point' (Loeb), 'Greenlight' (Einhorn), 'Appaloosa' (Tepper), 'Citadel', 'Point72' (Cohen), 'Coatue', 'Lone Pine'. Leave empty and use fund_ciks for exact-match lookups, or leave both empty to use the curated 50-fund whale list.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "fund_ciks": {
                        "title": "Fund CIKs (exact match)",
                        "type": "array",
                        "description": "List of SEC CIK numbers for exact-match fund lookups. CIK is the SEC's permanent identifier for every registered filer. Examples: 0001067983 (Berkshire Hathaway), 0001167483 (Tiger Global Management), 0001350694 (Bridgewater Associates), 0001037389 (Renaissance Technologies), 0001336528 (Pershing Square), 0001040273 (Third Point), 0001079114 (Greenlight Capital). Use this when fund_names is ambiguous or the manager has multiple entities. Look up CIKs at https://www.sec.gov/cgi-bin/browse-edgar.",
                        "default": [],
                        "items": {
                            "type": "string"
                        }
                    },
                    "delta_types": {
                        "title": "Delta types to include",
                        "type": "array",
                        "description": "Which categories of position changes to include. NEW = position went from zero last quarter to non-zero this quarter (highest-signal — fresh conviction trade). INCREASED = existing position grew in share count. DECREASED = existing position shrunk. EXITED = position went to zero (full exit, also high-signal — fund lost conviction or rotated). Most quant signal portfolios use only NEW + INCREASED.",
                        "default": [
                            "NEW",
                            "INCREASED",
                            "DECREASED",
                            "EXITED"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "min_value_usd": {
                        "title": "Minimum position value (USD)",
                        "minimum": 0,
                        "maximum": 10000000000,
                        "type": "integer",
                        "description": "Skip delta records where the current-quarter position value is below this threshold. Filters out trivial $1K rebalances. Common thresholds: $1,000,000 (material trades only), $10,000,000 (top-50 holdings for mega-funds), $100,000,000 (mega-cap conviction trades — Berkshire-tier signals). Leave at 0 to include every delta no matter how small.",
                        "default": 0
                    },
                    "min_shares_change_pct": {
                        "title": "Minimum % share change",
                        "minimum": 0,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "For INCREASED and DECREASED deltas only — require the absolute percentage change in share count to exceed this threshold. Filters out routine 1-2% rebalances. Recommended: 10 (material rebalance), 25 (meaningful conviction shift), 50 (high-conviction add/trim). NEW and EXITED records always pass (infinite/full %). Leave at 0 for no filter.",
                        "default": 0
                    },
                    "limit": {
                        "title": "Max delta records to return",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Maximum number of delta records to push to the dataset (one row per stock-level position change per fund). Typical hedge-fund-tracker analysts pull 50–200 deltas per refresh — that's the top conviction moves across the whale list. Heavy backtesters pull 1000+. Each delta record is a pay-per-result charge of $0.25.",
                        "default": 50
                    },
                    "include_top10_flag": {
                        "title": "Flag entries into the top 10 holdings",
                        "type": "boolean",
                        "description": "If true, compute the boolean is_top10_new flag for each NEW / INCREASED delta — true means the stock entered the fund's top 10 portfolio positions this quarter (by USD value). This is the strongest single-delta signal — when a mega-fund vaults a new name into the top 10 it usually means a multi-billion-dollar capital commitment. Set to false to skip the extra computation if you only need raw deltas.",
                        "default": true
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
