Endpoints
/v1/n-cen
https://secfeedapi.com/v1/n-cenFund annual census (N-CEN).
| Parameter | Type | Description | Example |
|---|---|---|---|
cik | integer | Filer CIK. | 1592900 |
startDate | string | Earliest filing date, YYYY-MM-DD, inclusive. | 2026-10-01 |
endDate | string | Latest filing date, YYYY-MM-DD, inclusive. | 2026-10-13 |
formType | string | Exact form type, including amendments such as /A. | |
from | integer | Offset for paging. Default 0. | 20 |
size | integer | Rows per page, at most 100. Default 20. | 2 |
fields | string | flat drops the data object for a light response with only the envelope. | flat |
data.<path> | string | Exact match on any value inside data, using a dotted JSON path. Values are compared as strings, as filed. | data.primary_doc.formData.employeesInfo.jurisdictionOrganization=DE |
- Covers N-CEN and N-CEN/A, newest first. total is exact.
- Responses are large: one N-CEN can be well over 100 KB. Use size=1 or fields=flat while exploring.
- Field names follow the SEC XML schema; XML attributes appear with an @ prefix and element text as #text.
- Parsed history currently covers the last 250 days and grows as the backfill runs.
Request examples
Every response below is real output from the API, trimmed to the first records.
Latest N-CEN filings, light
fields=flat drops the data object, so you get the list of filers quickly.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?size=2&fields=flat"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/n-cen",
params={'size': '2', 'fields': 'flat'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
timeout=60,
)
r.raise_for_status()
print(r.json()){
"total": 61,
"filings": [
{
"accessionNo": "0001193125-26-420000",
"formType": "N-CEN",
"filedAt": "2026-10-13",
"cik": 1592900,
"companyName": "EA Series Trust",
"flat": null
},
{
"accessionNo": "0001004726-26-009548",
"formType": "N-CEN",
"filedAt": "2026-10-13",
"cik": 1635073,
"companyName": "Nushares ETF Trust",
"flat": null
}
]
}One full report
The whole report as JSON, starting with the registrant and the series it covers.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?size=1"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/n-cen",
params={'size': '1'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
timeout=60,
)
r.raise_for_status()
print(r.json()){
"total": 61,
"filings": [
{
"accessionNo": "0001193125-26-420000",
"formType": "N-CEN",
"filedAt": "2026-10-13",
"cik": 1592900,
"companyName": "EA Series Trust",
"flat": null,
"data": {
"primary_doc": {
"schemaVersion": "X0505",
"headerData": {
"submissionType": "N-CEN",
"filerInfo": {
"liveTestFlag": "LIVE",
"filer": {
"issuerCredentials": {
"cik": "0001592900",
"ccc": "XXXXXXXX"
}
},
"flags": {
"overrideInternetFlag": "false",
"confirmingCopyFlag": "false"
},
"investmentCompanyType": "N-1A"
},
"seriesClass": {
"reportSeriesClass": {
"rptSeriesClassInfo": [
{
"seriesId": "S000072739",
"includeAllClassesFlag": "true"
},
{
"seriesId": "S000077503",
"includeAllClassesFlag": "true"
}
]
}
}
},
"formData": {
"generalInfo": {
"@reportEndingPeriod": "2026-07-31",
"@isReportPeriodLt12": "N",
"#text": ""
},
"registrantInfo": {
"registrantFullName": "EA Series Trust",
"investmentCompFileNo": "811-22961",
"registrantCik": "0001592900",
"registrantLei": "549300OFTR67XBWX5T25",
"registrantstreet1": "3803 West Chester Pike",
"registrantstreet2": "Suite 150",
"registrantcity": "Newtown Square",
"registrantzipCode": "19073",
"registrantstate": "US-PA",
...A specific trust's report
Filter by the registrant's CIK.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?cik=1592900&size=1"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/n-cen",
params={'cik': '1592900', 'size': '1'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
timeout=60,
)
r.raise_for_status()
print(r.json()){
"total": 1,
"filings": [
{
"accessionNo": "0001193125-26-420000",
"formType": "N-CEN",
"filedAt": "2026-10-13",
"cik": 1592900,
"companyName": "EA Series Trust",
"flat": null,
"data": {
"primary_doc": {
"schemaVersion": "X0505",
"headerData": {
"submissionType": "N-CEN",
"filerInfo": {
"liveTestFlag": "LIVE",
"filer": {
"issuerCredentials": {
"cik": "0001592900",
"ccc": "XXXXXXXX"
}
},
"flags": {
"overrideInternetFlag": "false",
"confirmingCopyFlag": "false"
},
"investmentCompanyType": "N-1A"
},
"seriesClass": {
"reportSeriesClass": {
"rptSeriesClassInfo": [
{
"seriesId": "S000072739",
"includeAllClassesFlag": "true"
},
{
"seriesId": "S000077503",
"includeAllClassesFlag": "true"
}
]
}
}
},
"formData": {
"generalInfo": {
"@reportEndingPeriod": "2026-07-31",
"@isReportPeriodLt12": "N",
"#text": ""
},
"registrantInfo": {
"registrantFullName": "EA Series Trust",
"investmentCompFileNo": "811-22961",
"registrantCik": "0001592900",
"registrantLei": "549300OFTR67XBWX5T25",
"registrantstreet1": "3803 West Chester Pike",
"registrantstreet2": "Suite 150",
"registrantcity": "Newtown Square",
"registrantzipCode": "19073",
"registrantstate": "US-PA",
...Response fields
| Field | Type | Meaning |
|---|---|---|
total | integer | Exact number of matching filings. |
filings[] | array | Matching filings, newest first. |
filings[].accessionNo | string | EDGAR accession number. |
filings[].formType | string | Form type as filed. |
filings[].filedAt | string | Filing date, YYYY-MM-DD. |
filings[].cik | integer | Filer CIK. |
filings[].companyName | string | Filer name. |
filings[].flat | null | Curated flat fields. Not built for this form family yet, so always null. |
filings[].data | object | The whole XML filing converted to JSON. Omitted when fields=flat. |
filings[].data.primary_doc | object | The primary XML document: headerData plus formData. |
filings[].data.primary_doc.headerData.submissionType | string | Submission type from the XML header. |
filings[].data.primary_doc.headerData.filerInfo | object | Filer credentials (CIK, masked CCC), live or test flag and filing flags. |
filings[].data.primary_doc.schemaVersion | string | N-CEN XML schema version. |
filings[].data.primary_doc.headerData.filerInfo.investmentCompanyType | string | N-1A, N-2, N-3 and so on. |
filings[].data.primary_doc.headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo[] | array | Series covered by the report. |
filings[].data.primary_doc.headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo[].seriesId | string | SEC series id. |
filings[].data.primary_doc.headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo[].includeAllClassesFlag | string | true when every class of the series is included. |
filings[].data.primary_doc.formData.generalInfo | object | Report period end and whether the period is shorter than 12 months. |
filings[].data.primary_doc.formData.registrantInfo | object | Registrant name, file number, CIK, LEI, address, phone, websites, books and records locations, first or last filing flags and family of funds. |
filings[].data.primary_doc.formData.managementInvestmentQuestionSeriesInfo | object | Per series answers for management investment companies: fund type, service providers, securities lending, fees and more. |
filings[].data.primary_doc.formData.exchangeSeriesInfo | object | Exchange traded fund and exchange listed series information. |
filings[].data.primary_doc.formData.attachmentsTab | object | Which attachments the filing includes. |
filings[].data.primary_doc.formData.signature | object | Signer and date. |
How to
How do I list the funds that filed N-CEN this week?
Set startDate with fields=flat.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?startDate=2026-10-06&size=2&fields=flat"
How do I get one trust's census report?
Filter by cik and take size=1.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?cik=1592900&size=1"
How do I find the series a report covers?
Read headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo; each entry has a seriesId.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?size=1"
How do I find the registrant's LEI?
formData.registrantInfo.registrantLei.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?size=1"
How do I tell an ETF trust from a mutual fund trust?
Check headerData.filerInfo.investmentCompanyType and whether exchangeSeriesInfo is filled.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?size=1"
How do I get amended reports only?
Use formType=N-CEN/A.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?formType=N-CEN/A&size=2&fields=flat"
How do I filter on a value inside the report?
Use data.<dotted path>=value; the value is matched as text.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?data.primary_doc.headerData.filerInfo.investmentCompanyType=N-1A&size=2&fields=flat"
How do I keep responses small?
Use fields=flat for lists and size=1 when you need the full data.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/n-cen?size=2&fields=flat"
Errors
- No error for an unknown data path; the result is empty.
See also the error codes every endpoint shares.
Try it with your own key
500 free calls a month.