SEC Ownership API: 13F, N-PORT Fund Holdings, 13D/13G, Form 144
Pricing
from $1.80 / 1,000 ownership rows
SEC Ownership API: 13F, N-PORT Fund Holdings, 13D/13G, Form 144
Who owns a stock, from official SEC filings: a fund manager's 13F holdings, a mutual fund's or ETF's N-PORT holdings (with changes), the funds holding a ticker, 5%+ stakes (13D/13G) and Form 144 planned insider sales. One ticker or fund in, JSON out, a source link per row.
Pricing
from $1.80 / 1,000 ownership rows
Rating
0.0
(0)
Developer
Bosco Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Security
Limited permissionsShare
Who owns a stock and who is about to sell it, from official SEC filings: what a fund such as Berkshire Hathaway holds (13F, with changes vs the previous quarter), what a mutual fund or ETF such as VOO or ARKK holds (N-PORT), which managers and funds hold a ticker, who filed a 5%+ stake (13D activist, 13G passive), and which insiders filed to sell (Form 144). For investors, analysts and AI agents.
Pricing (pay per event): $0.0018 per row ($1.80 per 1,000), plus $0.01 per "who holds this stock" search (13F or N-PORT data set), no start fee. Empty or failed runs cost nothing.
One ticker or fund name in, a small JSON answer out, with a link to the exact SEC file on every row. Data comes straight from the SEC: 13F information tables, N-PORT-P fund reports, the SEC's quarterly Form 13F and Form N-PORT data sets, and the structured XML of Schedule 13D/13G and Form 144. No scraping of third-party sites, no logins.
Four modes
mode | Question it answers | Input |
|---|---|---|
holdings13f | "What does Berkshire Hathaway hold, and what changed?" | filer: name or CIK |
holdings13f | "Which funds hold Apple?" | ticker or cusip |
holdingsNport | "What does VOO / ARKK hold, and what changed?" | fund: fund or ETF ticker, series ID or name |
holdingsNport | "Which mutual funds and ETFs hold Apple?" | ticker or cusip |
stakes13dg | "Who filed a 5%+ stake in X?" / "New activist 13Ds this week?" | ticker, or nothing |
planned144 | "Which insiders filed to sell X?" / "Big Form 144s this week?" | ticker, or nothing + minValueUsd |
Example outputs (real runs, 2026-11-05)
Berkshire Hathaway's 13F ({"mode": "holdings13f", "filer": "Berkshire Hathaway"}, 30 rows
in about 3 seconds): one row per position, largest first, plus positions closed since the
previous quarter.
{"record_type": "holding","filer_name": "BERKSHIRE HATHAWAY INC","filer_cik": "0001067983","period_of_report": "2026-06-30","form": "13F-HR","filing_date": "2026-08-14","issuer_name": "ALPHABET INC","title_of_class": "CAP STK CL A","cusip": "02079K305","ticker": "GOOGL","ticker_candidates": [],"put_call": null,"shares": 78791167,"share_type": "SH","value_usd": 28157599351,"portfolio_pct": 9.41,"previous_period": "2026-03-31","previous_shares": 54249798,"previous_value_usd": 15600071913,"shares_change": 24541369,"shares_change_pct": 45.24,"change": "increased","filing_url": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526352200/0001193125-26-352200-index.htm","source": "edgar-13f","source_url": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526352200/56757.xml"}
Which funds hold Apple ({"mode": "holdings13f", "ticker": "AAPL"}, the 50 largest of 6,137
holders in about 15 seconds). Rows have record_type: "holder" and the same fields without the
change columns; the 8th largest:
{"record_type": "holder","filer_name": "Berkshire Hathaway Inc","filer_cik": "0001067983","period_of_report": "2026-06-30","issuer_name": "APPLE INC","cusip": "037833100","ticker": "AAPL","shares": 227917808,"value_usd": 65950296923,"source": "sec-13f-data-set","source_url": "https://www.sec.gov/files/datastandardsinnovation/data/form-13f-data-sets/01jun2026-31aug2026_form13f.zip"}
ARK Innovation ETF's holdings ({"mode": "holdingsNport", "fund": "ARKK"}, under 1 second):
one row per position from the fund's newest public N-PORT-P, with changes vs its report before
that. N-PORT rows add the fund's series, net assets and each security's ISIN, LEI, asset category
and currency; portfolio_pct is the share of the fund's net assets.
{"record_type": "fund_holding","filer_name": "ARK Innovation ETF","filer_cik": "0001579982","series_id": "S000042977","registrant_name": "ARK ETF Trust","fund_net_assets_usd": 5562264980.05,"period_of_report": "2026-07-31","form": "NPORT-P","filing_date": "2026-09-22","issuer_name": "TESLA INC","cusip": "88160R101","isin": "US88160R1014","ticker": "TSLA","shares": 1740376,"share_type": "SH","value_usd": 541622414.96,"portfolio_pct": 9.7374,"previous_period": "2026-04-30","previous_shares": 1653653,"shares_change": 86723,"change": "increased","asset_category": "EC","currency": "USD","source": "edgar-nport","source_url": "https://www.sec.gov/Archives/edgar/data/1579982/000094040026037955/primary_doc.xml"}
Which mutual funds and ETFs hold Apple ({"mode": "holdingsNport", "ticker": "AAPL"}, the 50
largest of 2,129 funds in about a minute): record_type: "fund_holder", one row per fund from
its newest report in the SEC's quarterly Form N-PORT data set, largest first (Vanguard Total
Stock Market Index Fund, Vanguard 500 Index Fund, Fidelity 500 Index Fund, iShares Core S&P 500
ETF, ...).
A new activist stake ({"mode": "stakes13dg"}: new 13D filings market-wide, last 7 days):
{"record_type": "stake","form": "13D","stake_type": "activist","amendment_no": null,"issuer_name": "cbdMD, Inc.","issuer_cik": "0001644903","ticker": "YCBD","cusips": ["12482W408"],"security_class": "Common Stock, $0.001 par value","filer_name": "Akretive Holdings LLC","filer_cik": "0001655238","percent_of_class": 15.9,"shares": 2229805,"reporting_persons": [{"name": "Akretive Holdings LLC", "cik": "0001655238", "percent_of_class": 15.9,"shares": 2229805, "person_type": ["OO"]}],"event_date": "2026-10-30","filing_date": "2026-11-04","filing_url": "https://www.sec.gov/Archives/edgar/data/1644903/000143774926035032/0001437749-26-035032-index.htm","source_url": "https://www.sec.gov/Archives/edgar/data/1644903/000143774926035032/primary_doc.xml"}
A planned insider sale ({"mode": "planned144", "minValueUsd": 1000000}):
{"record_type": "form144","form": "144","issuer_name": "STRYKER CORP","issuer_cik": "0000310764","ticker": "SYK","seller_name": "STRYKER RONDA E","relationships": ["Director"],"security_class": "Common","shares_to_be_sold": 550000,"aggregate_market_value_usd": 186807500,"shares_outstanding": 383573000,"approx_sale_date": "2026-11-06","exchanges": ["NYSE"],"broker_names": ["APEX CLEARING"],"plan_adoption_dates": [],"notice_date": "2026-11-05","filing_date": "2026-11-05","filing_url": "https://www.sec.gov/Archives/edgar/data/1242914/000124291426000011/0001242914-26-000011-index.htm","source_url": "https://www.sec.gov/Archives/edgar/data/1242914/000124291426000011/primary_doc.xml"}
Every row also has schema_version, accession_number and retrieved_at. Field descriptions
are in the dataset schema.
Input
| Field | Meaning |
|---|---|
mode | holdings13f (default), holdingsNport, stakes13dg or planned144 |
filer | 13F: fund manager name or CIK, e.g. "Berkshire Hathaway" or "1067983" |
fund | N-PORT: mutual fund or ETF ticker (any share class), e.g. "VOO"; series ID "S000002839"; or name, e.g. "Vanguard 500 Index Fund" |
ticker / issuerCik | The company: holders of it (13F, N-PORT), stakes in it, planned sales of it |
cusip | 13F and N-PORT: one share class, e.g. "037833100" |
quarter | 13F and N-PORT: e.g. "2026Q2". Empty = newest |
stakeForms | 13D, 13D/A, 13G, 13G/A. Empty = all for a ticker, 13D + 13D/A market-wide |
minValueUsd | Form 144 aggregate value, or 13F / N-PORT position value |
dateFrom / dateTo / lookbackDays | 13D/13G and Form 144 filing dates. Default: 365 days (13D/G of a ticker), 90 days (Form 144 of a ticker), 7 days (whole market) |
maxResults | Default 50 |
Use from an AI agent (MCP)
Agents can call this Actor as a tool through the Apify MCP server. Add this server URL to your MCP client (Claude, Cursor, VS Code, ...):
https://mcp.apify.com?tools=bosco_labs/sec-ownership
It loads this Actor as a tool, plus the tools that read its results (get-actor-run,
get-dataset-items). The hosted server signs you in with OAuth, or accepts your Apify token as
Authorization: Bearer <APIFY_TOKEN>.
Example prompts this Actor answers:
- "What did Berkshire Hathaway buy and sell last quarter?"
- "Which funds hold the most Nvidia stock?"
- "What are ARKK's top holdings and what did it add last quarter?"
- "Which ETFs and mutual funds hold Palantir?"
- "Has anyone filed an activist 13D on Peraso?"
- "Which insiders filed to sell more than $1 million of stock this week?"
For the first one, the agent passes:
{"mode": "holdings13f", "filer": "Berkshire Hathaway"}
Output for agents: small, typed JSON, one row per position, holder or filing, with
schema_version, a source_url pointing to the exact SEC file and a filing_url for the
filing, so the agent can cite its source. Bad input fails within seconds with a status message
that says what to fix and shows a valid input.
Cost: $0.0018 per row, plus $0.01 per "who holds this stock" search (13F or N-PORT data set), billed to the Apify account the MCP server is signed in with. A fund's 50 largest holdings cost $0.09; the 50 largest holders of Apple cost $0.10. Runs without rows cost nothing.
How fresh, how fast
- A fund's holdings (
filer) come straight from its newest 13F on EDGAR: a few requests, about 3 seconds. - The holders of a stock come from the SEC's quarterly Form 13F data set (about 100 MB, downloaded per run): about 15 seconds. The data set is published a few weeks after the 45-day filing deadline, so this answer is one quarter behind a fund's own newest 13F.
- A mutual fund's or ETF's holdings (
fund) come straight from its two newest N-PORT-P reports on EDGAR: under 1 second for an equity ETF, about 3 seconds for a bond fund with 17,000 holdings. - The mutual funds and ETFs holding a stock come from the SEC's quarterly Form N-PORT data set (about 460 MB, downloaded per run): about a minute. A set holds the reports filed in one calendar quarter, so the default answer is each fund's newest report filed last quarter.
- 13D/13G and Form 144 come from EDGAR, today's filings included (live feed): seconds for
one company. A whole-market week reads one small XML file per filing, newest first, and stops
at
maxResults: about 15 seconds for 50 13Ds, under 30 seconds for 50 Form 144s over $1 million.
FAQ (limits)
How current is 13F data? 13F reports are quarterly and due 45 days after quarter end, so holdings are up to 4.5 months old when they appear. Positions are what the manager reported: long US-listed equities, options and convertibles on the SEC's 13(f) list; no shorts, no non-US holdings, no cash.
How current is N-PORT data? Funds report holdings monthly, but only the report for the last
month of each fiscal quarter is made public, 60 days after that month ends. A fund's
period_of_report is therefore its own fiscal quarter end (ARKK: 2026-07-31; VOO: 2026-06-30),
and the holders of a stock can be as of different month ends (each row says which). N-PORT covers
registered funds and ETFs (open-end funds, closed-end funds, most ETFs), not money market funds or
unit investment trusts such as SPY; it includes bonds, cash vehicles, derivatives and short
positions (payoff_profile).
Values? As reported, in US dollars at quarter end (reports filed before 2023 used $1,000s and are converted). Amendments are applied: a restatement replaces the original report, a "new holdings" amendment adds to it.
Tickers? 13F filings carry CUSIPs, not tickers, and the SEC publishes no CUSIP-to-ticker list.
The company is found by its CIK or, on 13F rows, its name in the SEC's ticker list (renamed or
oddly abbreviated names stay null). The share class comes from the CUSIP (Alphabet class C
02079K107 is GOOG, class A 02079K305 is GOOGL; likewise Fox, News Corp, Under Armour, Zillow
and the Liberty tracking stocks) or from the class in title_of_class when the ticker names it
(BRK-A / BRK-B, LEN / LEN-B, HEI / HEI-A). When a company has several listed classes and the row
doesn't say which, ticker is null and ticker_candidates lists the company's tickers; a
ticker filter matches those too. cusip is always the exact security.
Which funds hold a ticker: which CUSIP? The ticker's CUSIPs are read from the company's
recent Schedule 13D/13G filings, which can cover several share classes; CUSIPs of another class
(GOOGL when you ask for GOOG) are left out and named in the status message. Pass cusip for one
exact security, or when the company has no recent 13D/13G.
A name matched the wrong fund? Manager names (filer) go through EDGAR's company search;
the status message lists the other matches. Pass the CIK as filer to be exact. Fund names
(fund) are matched with the SEC's yearly series and class list: case, punctuation and words
like "fund", "index", "trust", "ETF" and share classes ("Admiral Shares", "Class K") are ignored;
an exact name wins, then names containing all your words, funds with a ticker and shorter names
first. The status message names the fund picked and up to 3 alternatives; pass the ticker or
series ID to be exact. Funds launched after the list's yearly update (June) are found by ticker
only.
Older 13D/13G? Only filings since 2024-12-18, when Schedule 13D/13G became structured XML. For older ones, use our SEC EDGAR Filings Actor for the filing links.
13D vs 13G? A 13D is filed by a holder of more than 5% who may seek to influence the company
(activist); a 13G by passive holders and institutions. percent_of_class is the highest among
the filing's reporting persons; all of them are in reporting_persons.
Form 144? A notice by an insider or affiliate of a planned sale of restricted or control stock, filed when the order is placed. It is not proof that the sale happened (Form 4 reports that: see our SEC Insider Trading Actor). Not every Form 144 is followed by a sale.
Legal basis? SEC filings are US government public records; see LEGAL.md. This is data, not investment advice.