Home / Developers / 13F Holdings API
API reference

13F Holdings API

Every position reported on Form 13F-HR as a flat row, searchable by security (CUSIP), by manager (CIK) and by quarter, plus the parsed cover pages with each manager's totals. Rows come from the SEC's quarterly 13F data sets since 2013 and from new filings as they arrive. Product overview →

Endpoints

/v1/form-13f/holdings

GEThttps://secfeedapi.com/v1/form-13f/holdings

13F positions as rows: issuer, CUSIP, value, shares, put/call, voting authority.

ParameterTypeDescriptionExample
cusipstring9 character CUSIP of the security held.67066G104
cikintegerCIK of the filing manager.1067983
periodstringQuarter end in MM-DD-YYYY format, as 13F filings state it.06-30-2026
fromintegerOffset of the first row to return, for paging. Default 0.20
sizeintegerRows per page. Capped at 1,000. Default 100.50

/v1/form-13f

GEThttps://secfeedapi.com/v1/form-13f

13F-HR cover pages and information tables (every field).

ParameterTypeDescriptionExample
cikintegerCIK of the filing manager.1067983
startDatestringEarliest filing date, YYYY-MM-DD.2026-10-01
endDatestringLatest filing date, YYYY-MM-DD.2026-10-31
formTypestring13F-HR or 13F-HR/A.13F-HR
fromintegerOffset of the first row to return, for paging. Default 0.20
sizeintegerFilings per page. Capped at 100. Default 20.10
fieldsstringflat drops the full data object for lighter responses.flat
flat.<field>stringFilter on a flat field, with __gte or __lte for ranges, for example flat.totalValue__gte=1000000000.1000000000
data.<path>stringFilter on any value in the parsed XML by JSON path.13F HOLDINGS REPORT

Request examples

Every response below is real output from the API, trimmed to the first records.

Largest holders of NVIDIA common stock in Q2 2026

Rows are sorted by reported value, so the first rows are the biggest positions.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f/holdings?cusip=67066G104&period=06-30-2026&size=2"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/form-13f/holdings",
    params={'cusip': '67066G104', 'period': '06-30-2026', 'size': '2'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
[
  {
    "accession": "0002100119-26-001527",
    "seq": 2457,
    "filer_cik": 2100119,
    "filer": "VANGUARD CAPITAL MANAGEMENT LLC",
    "period": "06-30-2026",
    "filed": "2026-08-13",
    "issuer": "NVIDIA CORPORATION",
    "title": "COM",
    "cusip": "67066G104",
    "figi": null,
    "value": 308301945072.0,
    "shares": 1540816358.0,
    "sh_prn": "SH",
    "put_call": null,
    "discretion": "DFND",
    "other_managers": null,
    "vote_sole": 0.0,
    "vote_shared": 0.0,
    "vote_none": 1540816358.0
  },
  {
    "accession": "0000093751-26-000583",
    "seq": 2728,
    "filer_cik": 93751,
    "filer": "STATE STREET CORP",
    "period": "06-30-2026",
    "filed": "2026-09-22",
    "issuer": "NVIDIA CORPORATION",
    "title": "COM",
    "cusip": "67066G104",
    "figi": null,
    "value": 202047567909.0,
    "shares": 1009783437.0,
    "sh_prn": "SH",
    "put_call": null,
    "discretion": "DFND",
    "other_managers": "\"10,11,12,19,2,20,299,5,6,8\"",
    "vote_sole": 122821655.0,
    "vote_shared": 10175380.0,
    "vote_none": 876786402.0
  }
]

Berkshire Hathaway's largest positions in Q2 2026

One manager's portfolio for one quarter, largest first.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f/holdings?cik=1067983&period=06-30-2026&size=2"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/form-13f/holdings",
    params={'cik': '1067983', 'period': '06-30-2026', 'size': '2'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
[
  {
    "accession": "0001193125-26-352200",
    "seq": 12,
    "filer_cik": 1067983,
    "filer": "BERKSHIRE HATHAWAY INC",
    "period": "06-30-2026",
    "filed": "2026-08-14",
    "issuer": "AMERICAN EXPRESS CO",
    "title": "COM",
    "cusip": "025816109",
    "figi": null,
    "value": 50419898471.0,
    "shares": 149061045.0,
    "sh_prn": "SH",
    "put_call": null,
    "discretion": "DFND",
    "other_managers": "\"4,11\"",
    "vote_sole": 149061045.0,
    "vote_shared": 0.0,
    "vote_none": 0.0
  },
  {
    "accession": "0001193125-26-352200",
    "seq": 10,
    "filer_cik": 1067983,
    "filer": "BERKSHIRE HATHAWAY INC",
    "period": "06-30-2026",
    "filed": "2026-08-14",
    "issuer": "ALPHABET INC",
    "title": "CAP STK CL A",
    "cusip": "02079K305",
    "figi": null,
    "value": 23523689772.0,
    "shares": 65824467.0,
    "sh_prn": "SH",
    "put_call": null,
    "discretion": "DFND",
    "other_managers": "\"4,11\"",
    "vote_sole": 65824467.0,
    "vote_shared": 0.0,
    "vote_none": 0.0
  }
]

13F cover pages filed in October 2026

Manager name, period, number of entries and total value per filing, without the raw XML.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f?startDate=2026-10-01&size=1&fields=flat"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/form-13f",
    params={'startDate': '2026-10-01', 'size': '1', 'fields': 'flat'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "total": 697,
  "filings": [
    {
      "accessionNo": "0001214659-26-012807",
      "formType": "13F-HR",
      "filedAt": "2026-10-13",
      "cik": 1697722,
      "companyName": "Quadratic Capital Management LLC",
      "flat": {
        "manager": "Quadratic Capital Management LLC",
        "period": "09-30-2026",
        "reportType": "13F HOLDINGS REPORT",
        "isAmendment": false,
        "entries": 2.0,
        "totalValue": 184445545.0,
        "otherManagers": 0.0
      }
    }
  ]
}

Response fields

FieldTypeMeaning
[]array/v1/form-13f/holdings returns an array of holding rows.
[].accessionstringAccession number of the 13F filing.
[].seqintegerRow number inside the filing's information table.
[].filer_cikintegerManager CIK.
[].filerstringManager name.
[].periodstringQuarter end, MM-DD-YYYY.
[].filedstringFiling date, YYYY-MM-DD.
[].issuerstringName of the issuer as the manager wrote it.
[].titlestringTitle of the class, for example COM.
[].cusipstringCUSIP of the security.
[].figistringFIGI when the filer provided one, else null.
[].valuenumberMarket value in US dollars as reported. Some filers report in thousands by mistake.
[].sharesnumberShares or principal amount held.
[].sh_prnstringSH for shares, PRN for principal amount.
[].put_callstringPUT or CALL for option positions, else null.
[].discretionstringInvestment discretion: SOLE, DFND (shared defined) or OTR.
[].other_managersstringSequence numbers of other managers included in the row, else null.
[].vote_solenumberShares with sole voting authority.
[].vote_sharednumberShares with shared voting authority.
[].vote_nonenumberShares with no voting authority.
totalinteger/v1/form-13f: number of matching cover pages.
filings[].accessionNostring/v1/form-13f: accession number.
filings[].formTypestring13F-HR or 13F-HR/A.
filings[].filedAtstringFiling date.
filings[].cikintegerManager CIK.
filings[].companyNamestringManager name from the EDGAR index.
filings[].flat.managerstringManager name from the cover page.
filings[].flat.periodstringQuarter end, MM-DD-YYYY.
filings[].flat.reportTypestring13F HOLDINGS REPORT, 13F NOTICE or 13F COMBINATION REPORT.
filings[].flat.isAmendmentbooleanTrue for amendments.
filings[].flat.entriesnumberNumber of rows in the information table.
filings[].flat.totalValuenumberTotal value of all rows, in dollars.
filings[].flat.otherManagersnumberNumber of other included managers.
filings[].data.primary_doc.headerData.submissionTypestringSubmission type from the XML header.
filings[].data.primary_doc.headerData.filerInfo.liveTestFlagstringLIVE for real filings.
filings[].data.primary_doc.headerData.filerInfo.flags.confirmingCopyFlagstringConfirming copy flag.
filings[].data.primary_doc.headerData.filerInfo.flags.overrideInternetFlagstringOverride internet flag.
filings[].data.primary_doc.headerData.filerInfo.filer.credentials.cikstringFiler CIK, zero padded.
filings[].data.primary_doc.headerData.filerInfo.filer.credentials.cccstringAlways masked as XXXXXXXX by the SEC.
filings[].data.primary_doc.headerData.filerInfo.periodOfReportstringQuarter end, MM-DD-YYYY.
filings[].data.primary_doc.schemaVersionstringXML schema version.
filings[].data.primary_doc.formData.coverPage.reportCalendarOrQuarterstringQuarter the report covers.
filings[].data.primary_doc.formData.coverPage.isAmendmentstringtrue or false.
filings[].data.primary_doc.formData.coverPage.filingManager.namestringManager name.
filings[].data.primary_doc.formData.coverPage.filingManager.address.street1stringStreet address.
filings[].data.primary_doc.formData.coverPage.filingManager.address.street2stringSecond address line, when present.
filings[].data.primary_doc.formData.coverPage.filingManager.address.citystringCity.
filings[].data.primary_doc.formData.coverPage.filingManager.address.stateOrCountrystringState or country code.
filings[].data.primary_doc.formData.coverPage.filingManager.address.zipCodestringPostal code.
filings[].data.primary_doc.formData.coverPage.reportTypestringReport type.
filings[].data.primary_doc.formData.coverPage.form13FFileNumberstringThe manager's 13F file number (028-...).
filings[].data.primary_doc.formData.coverPage.provideInfoForInstructionstringWhether the manager answered the instruction 5 question.
filings[].data.primary_doc.formData.signatureBlock.namestringSigner name.
filings[].data.primary_doc.formData.signatureBlock.titlestringSigner title.
filings[].data.primary_doc.formData.signatureBlock.phonestringSigner phone.
filings[].data.primary_doc.formData.signatureBlock.signaturestringSignature as typed.
filings[].data.primary_doc.formData.signatureBlock.citystringCity where signed.
filings[].data.primary_doc.formData.signatureBlock.stateOrCountrystringState or country where signed.
filings[].data.primary_doc.formData.signatureBlock.signatureDatestringDate signed.
filings[].data.primary_doc.formData.summaryPage.otherIncludedManagersCountstringNumber of other included managers.
filings[].data.primary_doc.formData.summaryPage.tableEntryTotalstringRows in the information table.
filings[].data.primary_doc.formData.summaryPage.tableValueTotalstringTotal value of the information table.

Investment discretion values

ValueMeaning
SOLESole discretion
DFNDShared, defined
OTRShared, other

How to

How do I list every manager that holds a stock?

Query by CUSIP and quarter; rows are sorted by value.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f/holdings?cusip=037833100&period=06-30-2026&size=100"
How do I get one manager's full portfolio?

Query by the manager's CIK and quarter and page with from.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f/holdings?cik=1067983&period=06-30-2026&size=100"
What format does period use?

MM-DD-YYYY, the format 13F filings use. 2026-06-30 returns nothing; 06-30-2026 works.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f/holdings?cik=1067983&period=03-31-2026&size=5"
How do I check which company a CUSIP belongs to?

Use the CUSIP mapping endpoint; it returns the issuer name and matching ticker. To go the other way, take the cusip from any holdings row that names the issuer.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/mapping/cusip?cusip=67066G104"
How do I see how a manager's position changed between quarters?

Fetch the same cik and cusip for two periods and compare shares.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f/holdings?cik=1067983&cusip=025816109&period=03-31-2026"
How do I find option positions?

put_call is PUT or CALL on option rows; filter the rows client side.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f/holdings?cusip=67066G104&period=06-30-2026&size=200"
How do I get the newest 13F cover pages?

Query /v1/form-13f with a recent startDate and fields=flat.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f?startDate=2026-10-01&size=10&fields=flat"
How do I find large managers only?

Filter cover pages on flat.totalValue__gte.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f?startDate=2026-08-01&flat.totalValue__gte=100000000000&fields=flat&size=10"
How do I get a manager's filing history?

Filter cover pages by cik.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f?cik=1067983&fields=flat"
Why do some values look 1,000 times too small?

Some managers still report values in thousands. Divide value by shares to spot implausible prices before aggregating.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/form-13f/holdings?cusip=67066G104&period=06-30-2026&size=100"

Errors

See also the error codes every endpoint shares.

Try it with your own key

500 free calls a month.

Get free API key →