# SEC 13F Holdings — Fund Manager Portfolios as Clean JSON (`jdepablos/sec-13f-holdings-feed`) Actor

What any US institutional manager owns, from official SEC 13F filings: top holdings with weights plus quarter-over-quarter changes. For investors, analysts and AI agents.

- **URL**: https://apify.com/jdepablos/sec-13f-holdings-feed.md
- **Developed by:** [Juan de Pablos](https://apify.com/jdepablos) (community)
- **Categories:** Business, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $25.00 / 1,000 manager holdings reports

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

## SEC 13F Holdings — Fund Manager Portfolios as Clean JSON

**What does Berkshire own? What did Bridgewater buy last quarter?** Every US institutional manager above $100M must disclose its holdings quarterly in SEC Form 13F. This Actor reads those filings and returns one structured report per manager: top holdings with portfolio weights, plus what changed since the previous quarter.

Portfolio-tracking sites charge $50+/month for this and still make you click through pages. This is the same primary source, as an API call.

### What you get per manager

```json
{
  "manager": "BERKSHIRE HATHAWAY INC",
  "cik": 1067983,
  "periodOfReport": "2026-03-31",
  "filedAt": "2026-05-15",
  "totalValueUsd": 263100000000,
  "positionsCount": 29,
  "topHoldings": [
    { "issuer": "APPLE INC", "cusip": "037833100", "valueUsd": 57850000000, "shares": 280000000, "putCall": null, "pctOfPortfolio": 21.99 }
  ],
  "quarterOverQuarter": {
    "previousPeriod": "2025-12-31",
    "previousTotalValueUsd": 271400000000,
    "newPositions": [{ "issuer": "ALLY FINL INC", "cusip": "02005N100", "valueUsd": 498992850, "shares": 12719675 }],
    "exitedPositions": [],
    "increased": [],
    "decreased": []
  },
  "url": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0001067983&type=13F-HR"
}
```

Pass fund names or CIK numbers, up to 25 per run. Names are resolved against EDGAR's own company search.

### Why filings beat portfolio-tracking sites

- **Primary source**: the numbers come from the manager's own filing, not a third-party rescrape of it.
- **Quarter-over-quarter computed for you**: new positions, exits, increases and decreases, sorted by size.
- **Combined filings handled correctly**: large managers file through multiple sub-managers and repeat the same security several times. Positions here are aggregated by CUSIP, so Apple shows up once with the real total.
- **Options flagged**: `putCall` distinguishes puts and calls from common stock positions.

### Use cases

- **Idea generation**: what did the managers you respect start buying last quarter?
- **Conviction tracking**: position weight changes across quarters for a watchlist of funds.
- **Client reporting**: automated "smart money" summaries for newsletters or dashboards.
- **AI agents**: "compare the top 10 holdings of Berkshire and Markel" is two tool calls and a prompt.

### Input

| Field | Description |
|---|---|
| `managers` | Fund names or CIKs, up to 25: `["Berkshire Hathaway", "1350694"]` |
| `topN` | Holdings per report, by value (default 50) |
| `quarterOverQuarter` | Diff vs the previous 13F (default true) |
| `minPositionValueUsd` | Drop positions below this value from the list |

### Use with AI agents (MCP)

This Actor is exposed as a tool on the [Apify MCP Server](https://mcp.apify.com):

```json
{
  "mcpServers": {
    "sec-13f-holdings-feed": {
      "url": "https://mcp.apify.com?tools=jdepablos/sec-13f-holdings-feed",
      "headers": { "Authorization": "Bearer <APIFY_TOKEN>" }
    }
  }
}
```

Completes the SEC suite with [Insider Trading Feed (Form 4)](https://apify.com/jdepablos/insider-trading-feed) and [Startup Funding Feed (Form D)](https://apify.com/jdepablos/startup-funding-feed): insiders, private rounds and institutional portfolios, all from the primary source.

### Pricing

Pay per event: **one flat fee per manager report**. A report includes the full top-holdings list and the quarter-over-quarter analysis. Failed lookups are never charged.

### FAQ

**How fresh is the data?** 13F filings are due 45 days after quarter end, so holdings lag the market by up to a quarter and a half. That is a property of the disclosure regime, not of this feed. `filedAt` and `periodOfReport` are always included so you know exactly what you are looking at.

**Why don't the exits match what the news said?** News often reports 13F/A amendments or combines family entities. This feed reads original 13F-HR filings per CIK. If a manager files an amendment with confidential positions revealed later, those appear when the amendment is the source of record.

**Are short positions included?** No. 13F discloses long positions and options (see `putCall`); shorts are not reportable.

**What is `value` measured in?** US dollars, as reported in current filings.

### More data tools by this developer

- [Insider Trading Feed — SEC Form 4 buys & sells](https://apify.com/jdepablos/insider-trading-feed)
- [Startup Funding Feed — SEC Form D rounds as clean JSON](https://apify.com/jdepablos/startup-funding-feed)
- [US Contract Opportunities Feed — SAM.gov as clean JSON](https://apify.com/jdepablos/samgov-opportunities-feed)
- [Clinical Trials Watch — new & updated studies](https://apify.com/jdepablos/clinical-trials-watch)
- [Global Trademark Watch (TMview) — new filings & opposition deadlines](https://apify.com/jdepablos/trademark-watch-tmview)
- [USPTO Patent Watch — new patent filings by keyword](https://apify.com/jdepablos/patent-watch)

# Actor input Schema

## `managers` (type: `array`):

Fund names or CIK numbers, up to 25 per run. E.g. \["Berkshire Hathaway", "Bridgewater Associates", "1350694"].

## `topN` (type: `integer`):

How many holdings to include in the report, sorted by value.

## `quarterOverQuarter` (type: `boolean`):

Compare against the previous 13F: new positions, exits, increases and decreases.

## `minPositionValueUsd` (type: `integer`):

Only include holdings worth at least this much in the top holdings list.

## Actor input object example

```json
{
  "managers": [
    "Berkshire Hathaway"
  ],
  "topN": 50,
  "quarterOverQuarter": 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 = {
    "managers": [
        "Berkshire Hathaway"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("jdepablos/sec-13f-holdings-feed").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 = { "managers": ["Berkshire Hathaway"] }

# Run the Actor and wait for it to finish
run = client.actor("jdepablos/sec-13f-holdings-feed").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 '{
  "managers": [
    "Berkshire Hathaway"
  ]
}' |
apify call jdepablos/sec-13f-holdings-feed --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/I12vkRafcXsyganio/builds/O38H3XqbMVH7e9zTa/openapi.json
