# 13F Filings Tracker: Hedge Fund Holdings, Buys and Exits (`datasignalslab/smart-money-13f`) Actor

13F holdings from SEC filings: hedge fund positions, new buys, exits and cross-fund consensus per quarter, scored on conviction. WhaleWisdom and Quiver alternative, pay per fund.

- **URL**: https://apify.com/datasignalslab/smart-money-13f.md
- **Developed by:** [DataSignals Lab](https://apify.com/datasignalslab) (community)
- **Categories:** AI, News, Agents
- **Stats:** 3 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $200.00 / 1,000 analyzed filers

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## Smart Money 13F: Hedge Fund Holdings, Buys, Exits and Consensus

**See what hedge funds are actually buying, selling and exiting - and where the smart money agrees.** This Actor turns raw SEC 13F filings into a clean intelligence layer for tracking 13F hedge fund holdings. Give it one or more fund CIK numbers and it returns each fund's latest quarter-over-quarter moves plus a cross-fund consensus ranking that surfaces the institutional holdings the smartest money is piling into.

It is not another raw holdings dump. It is a hedge fund tracker that computes the signal: new positions, add-ons, trims, full exits, and a conviction score across funds.

### Why this is different

Most 13F scrapers hand you a static list of institutional holdings and leave the analysis to you. This Actor reads the two most recent 13F filings per fund and diffs them, so you get the quarterly change, not just a snapshot:

- **New buys** - positions a fund opened this quarter.
- **Increased and decreased** - existing positions sized up or trimmed, with the percent change in shares.
- **Exits** - positions fully sold out of.
- **Consensus and conviction** - across multiple funds, which stocks the most funds hold and are actively buying, scored 0 to 100.

Tracking smart money 13F activity, especially when multiple funds buy the same stock in the same quarter, is a widely followed institutional-flow research approach. This Actor surfaces that signal automatically instead of making you reconcile two filings by hand.

### Who it's for

- **Traders and quants** - a ready-made, machine-readable institutional-ownership dataset for screening and backtesting research.
- **Fintech and research apps** - drop hedge fund activity and 13F filings data straight into your product or dashboard.
- **Competitive-intelligence analysts** - track exactly what specific funds did each quarter, fund by fund.

### Use cases

- Build a weekly or quarterly screen of the stocks the most-followed funds are accumulating.
- Monitor a single manager (for example Berkshire, Scion, or Pershing Square) and get alerted to new positions and full exits.
- Feed cross-fund consensus picks into a quant research pipeline as one institutional-flow factor among many.
- Power a fintech dashboard that shows hedge fund buys, trims and exits without maintaining your own EDGAR parser.
- Run competitive intelligence on a peer set of funds to see where their conviction overlaps.

### Input

| Field | Type | Description |
|---|---|---|
| `filerCiks` | array | One or more SEC CIK numbers of 13F filers. Examples: `1067983` (Berkshire Hathaway), `1649339` (Scion / Michael Burry), `1336528` (Pershing Square). Add several CIKs to get a cross-fund consensus ranking. Required. |

That is the only input. The default prefill analyzes Berkshire, Scion and Pershing Square together so you get both per-fund activity and a consensus across all three.

### Output

The Actor pushes one `filer_activity` item per fund, and one `consensus` item when you supply two or more funds.

```json
{
  "type": "filer_activity",
  "cik": "1067983",
  "filer": "BERKSHIRE HATHAWAY INC",
  "filed": "2024-08-14",
  "holdings": 41,
  "total_value": 279969000000,
  "new_buys": [
    { "issuer": "DELTA AIR LINES INC", "cusip": "247361702", "kind": "NEW", "value": 2600000000, "shares": 50000000, "prev_shares": 0, "pct_change": 100.0 },
    { "issuer": "ALPHABET INC", "cusip": "02079K305", "kind": "NEW", "value": 1000000000, "shares": 5000000, "prev_shares": 0, "pct_change": 100.0 }
  ],
  "increased": [
    { "issuer": "ALPHABET INC", "cusip": "02079K305", "kind": "INCREASED", "value": 1000000000, "shares": 5000000, "prev_shares": 1644000, "pct_change": 204.0 }
  ],
  "decreased": [],
  "exits": [
    { "issuer": "VISA INC", "cusip": "92826C839", "kind": "EXITED", "value": 0, "shares": 0, "prev_shares": 8297460, "pct_change": -100.0 }
  ],
  "sec_url": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=1067983&type=13F&owner=include&count=40"
}
```

```json
{
  "type": "consensus",
  "picks": [
    {
      "issuer": "ALPHABET INC",
      "cusip": "02079K305",
      "funds_holding": 2,
      "buyers": 2,
      "total_value": 2000000000,
      "holders": ["BERKSHIRE HATHAWAY INC", "PERSHING SQUARE CAPITAL MANAGEMENT"],
      "conviction": 100.0
    }
  ]
}
```

Real example from live SEC data: Berkshire Hathaway in a recent quarter opened new positions in Delta Air Lines (about $2.6B) and Alphabet (about $1B), increased Alphabet by +204 percent, and exited Visa, UnitedHealth and Mastercard. Every `filer_activity` item carries a `sec_url` so you can verify the underlying 13F filings on EDGAR in one click.

### How consensus and conviction work

The logic is transparent and lives in `src/smart_money.py`. For each fund the Actor aggregates holdings by CUSIP (summing multiple class lines for the same issuer), then compares the latest filing to the prior one:

- A position present now but absent last quarter is a `NEW` buy (only flagged when a prior filing exists to compare against).
- A position with shares up more than 5 percent is `INCREASED`; down more than 5 percent is `DECREASED`; gone entirely is `EXITED`.

The consensus step then aggregates these moves across every fund you analyzed. For each stock it counts `funds_holding` (how many funds moved on it) and `buyers` (how many opened or added to it this quarter). The `conviction` score combines both: up to 60 points for the share of funds holding it and up to 40 points for the share of funds buying it, capped at 100. Picks are sorted by buyers, then by funds holding, then by total value, so the strongest cross-fund signals rise to the top.

### Use with AI agents and automation

The Actor returns plain JSON, so it drops into agent and no-code stacks cleanly:

- **AI agents and frameworks** - call it from LangChain or LlamaIndex tools, or expose it through the Apify MCP server so assistants like Claude, ChatGPT or Cursor can run it directly.
- **No-code automation** - trigger it from Zapier or Make to route fresh holdings into a sheet or Slack channel.
- **Webhooks and scheduling** - run it on demand, on an Apify schedule, or fire a webhook on finish.

### Pricing

Pay-per-event, charged per fund analyzed. Analyzing 3 funds is 3 charges. There is no subscription and no monthly minimum - you pay only for the funds you actually run.

#### Reports and subscriptions

Scored signals from SEC, FDA, Congress and other official filings. The daily output is hashed and anchored, so past signals cannot be edited. Agents call it over MCP. [See the track record](https://datasignalslab.com/proof.html)

Every score in every report lists the terms it was built from, so you can check the number instead of trusting it.

This Actor also powers the [DataSignals Lab](https://datasignalslab.com) reports. All prices are listed on the [pricing page](https://datasignalslab.com/pricing.html):

- **Free.** Report previews, a weekly signal digest and 50 free MCP calls per month for AI agents.
- **Snapshot, $19 one time.** The current edition of one report plus 30 days of updates.
- **DataSignals Pro, $29 per month or $290 per year.** All three reports refreshed monthly, MCP access for AI agents (2000 calls per month fair use), email alerts. Cancel anytime.

### Data source and compliance

Data comes from SEC EDGAR, the public US regulatory filing system, using each filer's official 13F-HR filings and their Information Table XML. The source is free, public and stable, with no anti-bot scraping involved. 13F filings disclose institutional holdings only and contain no personal data. The Actor reads public regulatory documents and does not collect or process information about individuals.

### FAQ

**How fresh is the data?** 13F filings are quarterly and are filed up to 45 days after each quarter-end, so the latest available filing always reflects positions as of the prior quarter-end. The Actor always uses the most recent 13F-HR on file per fund.

**Where do I find a fund's CIK?** Search the fund name on SEC EDGAR full-text search; the CIK appears in the filer profile. Common examples are listed in the input description.

**Can an AI agent call this automatically?** Yes. Expose it through the Apify MCP server and assistants like Claude, ChatGPT or Cursor can invoke it on their own, or call it as a LangChain or LlamaIndex tool inside an agent.

**What if a fund has only one 13F on file?** New buys, increases and decreases are only flagged when there is a prior quarter to diff against, so a first-ever filing returns holdings without quarterly deltas.

**Why is an exit shown with a value of 0?** An exit means the position was fully sold, so it has no current value or shares; the prior share count is preserved in `prev_shares` for context.

**Do I need an SEC or API key?** No. EDGAR is free and public; you only need fund CIK numbers.

*Keywords: 13F hedge fund holdings, hedge fund tracker, smart money, institutional holdings, 13F filings, hedge fund buys and sells, institutional ownership, institutional flow, consensus stock picks, conviction score, SEC EDGAR, quant research data.*

***

**Note:** Provided as data for research, screening and monitoring - not investment advice. Historical patterns do not guarantee future results.

# Actor input Schema

## `filerCiks` (type: `array`):

One or more SEC CIK numbers of 13F filers (e.g. 1067983 = Berkshire Hathaway, 1649339 = Scion/Michael Burry, 1336528 = Pershing Square). Add several to get a cross-fund consensus ranking.

## Actor input object example

```json
{
  "filerCiks": [
    "1067983",
    "1649339",
    "1336528"
  ]
}
```

# 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 = {
    "filerCiks": [
        "1067983",
        "1649339",
        "1336528"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datasignalslab/smart-money-13f").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 = { "filerCiks": [
        "1067983",
        "1649339",
        "1336528",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("datasignalslab/smart-money-13f").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 '{
  "filerCiks": [
    "1067983",
    "1649339",
    "1336528"
  ]
}' |
apify call datasignalslab/smart-money-13f --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,datasignalslab/smart-money-13f"
        }
    }
}

```

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/WqXQB7VXkrOxgMcLq/builds/cUqehD7qqshFJyLMv/openapi.json
