Endpoints
/v1/form-13f/holdings
https://secfeedapi.com/v1/form-13f/holdings13F positions as rows: issuer, CUSIP, value, shares, put/call, voting authority.
| Parameter | Type | Description | Example |
|---|---|---|---|
cusip | string | 9 character CUSIP of the security held. | 67066G104 |
cik | integer | CIK of the filing manager. | 1067983 |
period | string | Quarter end in MM-DD-YYYY format, as 13F filings state it. | 06-30-2026 |
from | integer | Offset of the first row to return, for paging. Default 0. | 20 |
size | integer | Rows per page. Capped at 1,000. Default 100. | 50 |
- Rows are sorted by value, largest first.
- The response is a JSON array, not an object.
- Always pass period with cusip for a widely held security; without it the query reads every quarter on file.
/v1/form-13f
https://secfeedapi.com/v1/form-13f13F-HR cover pages and information tables (every field).
| Parameter | Type | Description | Example |
|---|---|---|---|
cik | integer | CIK of the filing manager. | 1067983 |
startDate | string | Earliest filing date, YYYY-MM-DD. | 2026-10-01 |
endDate | string | Latest filing date, YYYY-MM-DD. | 2026-10-31 |
formType | string | 13F-HR or 13F-HR/A. | 13F-HR |
from | integer | Offset of the first row to return, for paging. Default 0. | 20 |
size | integer | Filings per page. Capped at 100. Default 20. | 10 |
fields | string | flat drops the full data object for lighter responses. | flat |
flat.<field> | string | Filter on a flat field, with __gte or __lte for ranges, for example flat.totalValue__gte=1000000000. | 1000000000 |
data.<path> | string | Filter on any value in the parsed XML by JSON path. | 13F HOLDINGS REPORT |
- Cover pages for filings parsed from EDGAR; holdings rows live in /v1/form-13f/holdings.
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
| Field | Type | Meaning |
|---|---|---|
[] | array | /v1/form-13f/holdings returns an array of holding rows. |
[].accession | string | Accession number of the 13F filing. |
[].seq | integer | Row number inside the filing's information table. |
[].filer_cik | integer | Manager CIK. |
[].filer | string | Manager name. |
[].period | string | Quarter end, MM-DD-YYYY. |
[].filed | string | Filing date, YYYY-MM-DD. |
[].issuer | string | Name of the issuer as the manager wrote it. |
[].title | string | Title of the class, for example COM. |
[].cusip | string | CUSIP of the security. |
[].figi | string | FIGI when the filer provided one, else null. |
[].value | number | Market value in US dollars as reported. Some filers report in thousands by mistake. |
[].shares | number | Shares or principal amount held. |
[].sh_prn | string | SH for shares, PRN for principal amount. |
[].put_call | string | PUT or CALL for option positions, else null. |
[].discretion | string | Investment discretion: SOLE, DFND (shared defined) or OTR. |
[].other_managers | string | Sequence numbers of other managers included in the row, else null. |
[].vote_sole | number | Shares with sole voting authority. |
[].vote_shared | number | Shares with shared voting authority. |
[].vote_none | number | Shares with no voting authority. |
total | integer | /v1/form-13f: number of matching cover pages. |
filings[].accessionNo | string | /v1/form-13f: accession number. |
filings[].formType | string | 13F-HR or 13F-HR/A. |
filings[].filedAt | string | Filing date. |
filings[].cik | integer | Manager CIK. |
filings[].companyName | string | Manager name from the EDGAR index. |
filings[].flat.manager | string | Manager name from the cover page. |
filings[].flat.period | string | Quarter end, MM-DD-YYYY. |
filings[].flat.reportType | string | 13F HOLDINGS REPORT, 13F NOTICE or 13F COMBINATION REPORT. |
filings[].flat.isAmendment | boolean | True for amendments. |
filings[].flat.entries | number | Number of rows in the information table. |
filings[].flat.totalValue | number | Total value of all rows, in dollars. |
filings[].flat.otherManagers | number | Number of other included managers. |
filings[].data.primary_doc.headerData.submissionType | string | Submission type from the XML header. |
filings[].data.primary_doc.headerData.filerInfo.liveTestFlag | string | LIVE for real filings. |
filings[].data.primary_doc.headerData.filerInfo.flags.confirmingCopyFlag | string | Confirming copy flag. |
filings[].data.primary_doc.headerData.filerInfo.flags.overrideInternetFlag | string | Override internet flag. |
filings[].data.primary_doc.headerData.filerInfo.filer.credentials.cik | string | Filer CIK, zero padded. |
filings[].data.primary_doc.headerData.filerInfo.filer.credentials.ccc | string | Always masked as XXXXXXXX by the SEC. |
filings[].data.primary_doc.headerData.filerInfo.periodOfReport | string | Quarter end, MM-DD-YYYY. |
filings[].data.primary_doc.schemaVersion | string | XML schema version. |
filings[].data.primary_doc.formData.coverPage.reportCalendarOrQuarter | string | Quarter the report covers. |
filings[].data.primary_doc.formData.coverPage.isAmendment | string | true or false. |
filings[].data.primary_doc.formData.coverPage.filingManager.name | string | Manager name. |
filings[].data.primary_doc.formData.coverPage.filingManager.address.street1 | string | Street address. |
filings[].data.primary_doc.formData.coverPage.filingManager.address.street2 | string | Second address line, when present. |
filings[].data.primary_doc.formData.coverPage.filingManager.address.city | string | City. |
filings[].data.primary_doc.formData.coverPage.filingManager.address.stateOrCountry | string | State or country code. |
filings[].data.primary_doc.formData.coverPage.filingManager.address.zipCode | string | Postal code. |
filings[].data.primary_doc.formData.coverPage.reportType | string | Report type. |
filings[].data.primary_doc.formData.coverPage.form13FFileNumber | string | The manager's 13F file number (028-...). |
filings[].data.primary_doc.formData.coverPage.provideInfoForInstruction | string | Whether the manager answered the instruction 5 question. |
filings[].data.primary_doc.formData.signatureBlock.name | string | Signer name. |
filings[].data.primary_doc.formData.signatureBlock.title | string | Signer title. |
filings[].data.primary_doc.formData.signatureBlock.phone | string | Signer phone. |
filings[].data.primary_doc.formData.signatureBlock.signature | string | Signature as typed. |
filings[].data.primary_doc.formData.signatureBlock.city | string | City where signed. |
filings[].data.primary_doc.formData.signatureBlock.stateOrCountry | string | State or country where signed. |
filings[].data.primary_doc.formData.signatureBlock.signatureDate | string | Date signed. |
filings[].data.primary_doc.formData.summaryPage.otherIncludedManagersCount | string | Number of other included managers. |
filings[].data.primary_doc.formData.summaryPage.tableEntryTotal | string | Rows in the information table. |
filings[].data.primary_doc.formData.summaryPage.tableValueTotal | string | Total value of the information table. |
Investment discretion values
| Value | Meaning |
|---|---|
| SOLE | Sole discretion |
| DFND | Shared, defined |
| OTR | Shared, 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
- 400 when size or from is not a number.
See also the error codes every endpoint shares.
Try it with your own key
500 free calls a month.