# SEC 13F Institutional Holdings Tracker (`transparent_meteorite/sec-13f-institutional-holdings`) Actor

Tracker for institutional holdings from free SEC EDGAR 13F-HR filings: one row per position with issuer, CUSIP, value, shares, put/call, portfolio weight, quarter, filing date, accession link and quarter-over-quarter share change. Institutions only, no login, no personal data.

- **URL**: https://apify.com/transparent_meteorite/sec-13f-institutional-holdings.md
- **Developed by:** [Detroit Web Agent - Open Data](https://apify.com/transparent_meteorite) (community)
- **Categories:** Other, News, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.50 / 1,000 holding rows

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

## SEC 13F Institutional Holdings Tracker

**SEC 13F institutional holdings**: the latest 13F-HR portfolio of any institutional investment manager from free SEC EDGAR, one row per position with issuer, CUSIP, value, shares, portfolio weight and the quarter-over-quarter share change.

Pull the latest SEC 13F-HR portfolio of any institutional investment manager into one clean table. Each row is one position: issuer, CUSIP, share class, reported value in dollars, shares, put or call, portfolio weight, quarter, filing date and a link to the SEC filing, plus how the share count changed from the previous quarter. Data comes from free public SEC EDGAR. No login, no proxy, no personal data: these are institution-level filings only.

### What is SEC 13F Institutional Holdings Tracker?

Tracker for institutional holdings from free SEC EDGAR 13F-HR filings: one row per position with issuer, CUSIP, value, shares, put/call, portfolio weight, quarter, filing date, accession link and quarter-over-quarter share change. Institutions only, no login, no personal data. Run it from the Apify Console, the API or a schedule, and export the results as JSON, CSV, Excel or HTML.

### Why use it

- **Official source.** Data is SEC EDGAR, read directly from the filings.
- **Merged lines.** Duplicate sub-manager lines for the same security are combined into one position.
- **Repeatable.** Same filters give comparable runs every quarter.

### Output

One row per position:

| Field | Meaning |
|---|---|
| `filer`, `filerCik` | The institutional manager and its SEC CIK. |
| `issuer`, `titleOfClass`, `cusip`, `putCall` | The security held. `putCall` is set for option positions. |
| `valueUsd`, `shares`, `shareType` | Reported market value in US dollars and the quantity (shares or principal amount). |
| `portfolioPct`, `rankInPortfolio` | Weight of the position in the filing total and its rank by value. |
| `prevShares`, `shareChange`, `shareChangePct`, `changeType` | Change against the prior quarter: new, increased, decreased or unchanged. |
| `quarter`, `periodOfReport`, `filingDate` | Reporting quarter (for example 2026-Q2), period end and the date it was filed. |
| `accessionNumber`, `filingUrl` | SEC accession number and the link to the filing folder. |
| `portfolioTotalUsd`, `positionsInFiling` | Total reported value and number of distinct positions in the filing. |
| `scrapedAt` | When the run read the data. |

### Sample output

```json
{
  "filer": "BERKSHIRE HATHAWAY INC",
  "issuer": "APPLE INC",
  "titleOfClass": "COM",
  "cusip": "037833100",
  "valueUsd": 61960000000,
  "shares": 238212000,
  "portfolioPct": 21.4,
  "rankInPortfolio": 1,
  "shareChange": -20000000,
  "changeType": "decreased",
  "quarter": "2026-Q2",
  "filingDate": "2026-08-14"
}
```

Values above are illustrative of the format; your run returns the actual filed numbers.

### Input

| Field | What it does |
|---|---|
| `managers` | SEC CIK numbers or exact manager names. Default: Berkshire Hathaway, Pershing Square, Bridgewater, Renaissance Technologies, Tiger Global. |
| `topHoldingsPerManager` | Largest positions to keep per manager. Default 15. |
| `includeQuarterChange` | Compare with the previous quarter. Default on. |
| `minValueUsd` | Optional minimum reported position value. |
| `issuerContains` | Optional text that must appear in the issuer name. |
| `maxItems` | Stop after this many rows. Default 100. |

Sample input:

```json
{
  "managers": ["1067983", "1336528"],
  "topHoldingsPerManager": 25,
  "includeQuarterChange": true,
  "maxItems": 100
}
```

### Pricing

Pay per event. You pay a small fixed amount per position row delivered, listed on the Pricing tab, plus a tiny start fee per run. You can set a maximum cost per run in the run options.

### What does this Actor do?

For each manager you list, it finds the two most recent 13F-HR filings on SEC EDGAR, reads the information table of each, merges the duplicate lines large filers report per sub-manager, ranks the positions by value and compares share counts with the prior quarter. It reports what the manager filed. A 13F shows long positions in US-listed securities on the last day of a quarter and is filed up to 45 days later, so it is a delayed snapshot, not current holdings and not investment advice.

**Run in 30 seconds**

1. Open the Actor and press **Try for free** (a free Apify account is enough).
2. Keep the prefilled input (five well-known managers, top 15 positions each) and press **Start**.
3. Open the **Output** tab. Use the table view or download CSV, Excel or JSON.

### Use cases

- Follow what well-known hedge funds and institutions bought, sold or opened last quarter.
- Build a watchlist of stocks that several managers hold, or screen for new positions by filter on `changeType`.
- Research which institutions own a company by searching `issuerContains` across many managers.
- Feed rows into an n8n, Make or Zapier workflow that alerts you when a tracked manager files a new quarter.
- Give analysts and journalists a sourced table with a direct link to each SEC filing.

### Limits

- Long US-listed equity and option positions only, as filed. Short positions and non-US holdings are not part of a 13F.
- Values are as reported by the filer and may be restated later.
- The actor keeps to the SEC fair-access limit of 10 requests per second with a descriptive User-Agent.

### Related Actors

- [Developer Signals](https://apify.com/transparent_meteorite/developer-signals) tracks public developer activity signals for companies.
- [Website Tech Stack](https://apify.com/transparent_meteorite/website-tech-stack) detects which technologies a website runs on.
- [Sitemap Link Inventory](https://apify.com/transparent_meteorite/sitemap-link-inventory) lists every URL a site publishes in its sitemaps.

Found a bug or need a field? Open an issue on the Issues tab with the run URL.

### FAQ

**How fresh is the data?**
13F filings are due 45 days after each quarter end, so holdings are 6 weeks to 4 months old when you read them.

**Why is a manager missing or empty?**
Only managers that file Form 13F-HR appear. Use the 10-digit CIK if a name does not resolve. Amended filings (13F-HR/A) are not read.

**Is this an official SEC product?**
No. It is an independent tool that reads public SEC EDGAR filings. Check sec.gov for the authoritative record.

**This Actor vs ryanclinton/sec-13f-holdings:** that one searches 13F filings to find what institutions are buying and selling. Choose this one for one manager's full portfolio as clean position rows, with merged sub-manager lines, portfolio weight and share change from the previous quarter.

### Changelog

- 2026-10-25: Documentation updated: README refreshed.
- 2026-10-25: Initial release.
- 2026-10-25: Listing refresh: new Store icon, README reorganised (overview, data fields, pricing, FAQ) and changelog tab added. No code change.

# Changelog

This Actor's version history is a separate document: https://apify.com/transparent_meteorite/sec-13f-institutional-holdings/changelog.md

# Actor input Schema

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

SEC CIK numbers (digits) or exact manager names. Default: Berkshire Hathaway, Pershing Square, Bridgewater, Renaissance Technologies and Tiger Global.

## `topHoldingsPerManager` (type: `integer`):

Largest positions by reported value kept for each manager.

## `includeQuarterChange` (type: `boolean`):

Adds previous shares, share change and new/increased/decreased/unchanged from the prior 13F-HR filing.

## `minValueUsd` (type: `integer`):

Optional. Skip positions below this reported value.

## `issuerContains` (type: `string`):

Optional text that must appear in the issuer name, for example "apple" or "energy".

## `maxItems` (type: `integer`):

Stop after this many rows.

## Actor input object example

```json
{
  "managers": [
    "1067983",
    "1336528",
    "1350694",
    "1037389",
    "1167483"
  ],
  "topHoldingsPerManager": 15,
  "includeQuarterChange": true,
  "minValueUsd": 0,
  "maxItems": 100
}
```

# Actor output Schema

## `overview` (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 = {
    "managers": [
        "1067983",
        "1336528",
        "1350694",
        "1037389",
        "1167483"
    ],
    "topHoldingsPerManager": 15,
    "includeQuarterChange": true,
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("transparent_meteorite/sec-13f-institutional-holdings").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": [
        "1067983",
        "1336528",
        "1350694",
        "1037389",
        "1167483",
    ],
    "topHoldingsPerManager": 15,
    "includeQuarterChange": True,
    "maxItems": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("transparent_meteorite/sec-13f-institutional-holdings").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 '{
  "managers": [
    "1067983",
    "1336528",
    "1350694",
    "1037389",
    "1167483"
  ],
  "topHoldingsPerManager": 15,
  "includeQuarterChange": true,
  "maxItems": 100
}' |
apify call transparent_meteorite/sec-13f-institutional-holdings --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,transparent_meteorite/sec-13f-institutional-holdings"
        }
    }
}
```

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/G900q1S4EYEmo1xEK/builds/ar2Hh1B4E48Nb7RLI/openapi.json
