Flock

13F API: pulling SEC fund holdings as structured data

By Flock Research · Filings research desk

A 13F API serves the holdings inside SEC Form 13F-HR filings as structured data you can query, instead of leaving you to parse EDGAR yourself. Institutional managers with at least $100 million in 13(f)-eligible US securities file quarterly, listing long positions by CUSIP with share counts and market values. The filings are public and free. What an API is actually selling is the work between the raw filing and a row you can join to your own data: identity resolution, change computation, and a filing date attached to every value.

Definition

A 13F API

is a programmatic interface that returns decoded holdings from SEC 13F-HR filings, normally per filer and per quarter, with security identifiers, share counts, market values, the filing date and a link to the source filing. It reads a public SEC disclosure into structured form. Source: SEC EDGAR.

What the raw filing gives you, and what it does not

A 13F-HR information table is a list of rows: issuer name as typed by the filer, class title, CUSIP, value, shares or principal amount, investment discretion, and voting authority. That is the whole of it. Everything a research desk actually wants has to be built on top:

  • A stable security identity. CUSIPs are reliable identifiers, issuer names are not. The same company appears under several spellings across filers and across quarters.
  • A stable filer identity. Managers file under a CIK, but names change, and families of related filers need mapping if you want one view of a group.
  • Change between quarters. New, added, trimmed and exited positions are computed by differencing consecutive quarters. No filing states them.
  • Amendments. A 13F-HR/A restates a prior filing. Data that silently keeps the original is wrong, and data that silently replaces it without keeping the amendment date is unauditable.
  • Notice filings. A 13F-NT reports that holdings are being reported by another manager. It has no holdings table, and treating it as an empty portfolio is a common error. See 13F-HR vs 13F-NT.

45 days

Maximum lag between quarter-end and a 13F filing becoming public

Source: SEC, Section 13(f) rules

What to require from a 13F API

Since the underlying filings are the same for everyone, the differences between providers are handling differences. Worth checking before you build on one:

  • A filing date on every row, so staleness is visible in your own systems rather than assumed.
  • A source link per holding, so any figure can be verified against EDGAR without a support ticket.
  • Explicit amendment handling, with the amendment and the original both retrievable.
  • Deterministic pagination and stable ids, so an incremental sync does not skip or duplicate rows.
  • Coverage you can enumerate. Which filers, from which quarter, is a question with a factual answer. Vague coverage claims are a reason to test before committing.
  • Push, not just pull, if your workflow is event-driven. Polling a quarterly dataset every hour wastes both sides' capacity.
  • No advisory framing. A data API returns disclosures. Scores that imply a recommendation put your compliance function in the loop for no benefit.

Cross-filer questions are the interesting ones

One fund's 13F is a single portfolio. The queries that justify an API are usually cross-filer: who else disclosed this security this quarter, which filers moved in the same direction, where do independent managers hold the same names. That is a join across every filer for a quarter, which is exactly the sort of thing that is painful to do from raw EDGAR files and cheap to do against a normalised store. Flock records these overlaps as convergence events.

If you are also covering registered funds, note that 13F is not the only US holdings disclosure: N-PORT vs 13F covers the differences in scope and frequency, and 13F vs 13D covers the difference between a quarterly holdings report and a 5 percent beneficial-ownership filing.

What Flock's API exposes

Flock's Business plan is a REST API over normalised India and US disclosure data, at ₹39,999 per month, with annual billing at ₹3,49,999 and an included allowance of 100,000 requests per month. The current v1 surface is:

Endpoint groupReturns
/v1/entities, /v1/entities/:idFilers and investors, with detail
/v1/entities/:id/holdingsDisclosed holdings for an entity
/v1/entities/:id/disclosuresThat entity's disclosure timeline
/v1/securities, /v1/securities/:idSecurities, with detail
/v1/securities/:id/holdersLatest disclosed holder per entity for a security
/v1/securities/:id/disclosures, /v1/securities/:id/announcementsDisclosure and announcement timelines
/v1/convergence, /v1/convergence/:idMulti-entity disclosure overlaps
/v1/webhooks and subresourcesSigned webhook endpoints, with verify, test, rotate and enable

Authentication is a bearer API key, scoped per endpoint group, with sk_test_ and sk_live_ prefixes and an OpenAPI spec published for the surface. The published SLA is 99.5 percent. Access starts with a conversation rather than a self-serve signup: the details, including the fact that invoices currently carry no GSTIN because Flock is not GST-registered, are on the business page.

The honest limitation

No 13F API can make 13F data current, because 13F data is not current. Two lags stack: the filing reports holdings as of quarter-end, and the manager has up to 45 days after that to file. Any product built on it inherits that, and the useful thing an API can do is make the staleness explicit on every row rather than hide it. For the filing itself, see what is a 13F filing, and for the browsing equivalent of this data, 13F tracker.

Flock reads primary filings and stamps every data point with its source and date. What the data means for you is your call to make. This is not investment advice.

Frequently asked questions

What should a 13F API return?

Decoded holdings per filer and per quarter, with the security identified by more than a CUSIP, the share count and market value as filed, the filing date on every row, and a link back to the original SEC filing so any value can be verified at source. Source: SEC EDGAR.

Can a 13F API give real-time fund holdings?

No. A 13F reports positions as of quarter-end and may be filed up to 45 days later, so the freshest data any API can serve is already weeks old. An API that presents 13F holdings as current is misrepresenting the filing. Source: SEC, Section 13(f) rules.

Why is CUSIP mapping the hard part of 13F data?

The filing identifies securities by CUSIP with a free-text issuer name, and names are typed inconsistently across filers and quarters. Turning that into a stable security identity is the work that separates a usable 13F API from a raw file dump. Source: SEC EDGAR.

How do you get change data from 13F filings?

By differencing two consecutive quarters for the same filer at security level: new positions, additions, trims and exits. The filings themselves contain only point-in-time holdings, so quarter-over-quarter change is computed, not disclosed. Source: SEC EDGAR.

Flock tracks these filings, sourced, dated, and linked back to the original. See what smart-money entities disclosed, without the guesswork about what it means.

Disclosures shown are public regulatory filings. Data may be delayed or incomplete. Smart-money entities may no longer hold positions shown. Not investment advice.

The Smart Money Digest

A free weekly email of notable disclosure activity — every line with its filing date and source link. No advice, just filings. Unsubscribe anytime.