Home / Developers / N-CEN Fund Data API
API reference

N-CEN Fund Data API

Form N-CEN annual census reports of registered funds as JSON: the registrant, every series it covers, service providers such as advisers, custodians and auditors, securities lending, ETF details and more, exactly as filed in XML. Product overview →

Endpoints

/v1/n-cen

GEThttps://secfeedapi.com/v1/n-cen

Fund annual census (N-CEN).

ParameterTypeDescriptionExample
cikintegerFiler CIK.1592900
startDatestringEarliest filing date, YYYY-MM-DD, inclusive.2026-10-01
endDatestringLatest filing date, YYYY-MM-DD, inclusive.2026-10-13
formTypestringExact form type, including amendments such as /A.
fromintegerOffset for paging. Default 0.20
sizeintegerRows per page, at most 100. Default 20.2
fieldsstringflat drops the data object for a light response with only the envelope.flat
data.<path>stringExact 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

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

FieldTypeMeaning
totalintegerExact number of matching filings.
filings[]arrayMatching filings, newest first.
filings[].accessionNostringEDGAR accession number.
filings[].formTypestringForm type as filed.
filings[].filedAtstringFiling date, YYYY-MM-DD.
filings[].cikintegerFiler CIK.
filings[].companyNamestringFiler name.
filings[].flatnullCurated flat fields. Not built for this form family yet, so always null.
filings[].dataobjectThe whole XML filing converted to JSON. Omitted when fields=flat.
filings[].data.primary_docobjectThe primary XML document: headerData plus formData.
filings[].data.primary_doc.headerData.submissionTypestringSubmission type from the XML header.
filings[].data.primary_doc.headerData.filerInfoobjectFiler credentials (CIK, masked CCC), live or test flag and filing flags.
filings[].data.primary_doc.schemaVersionstringN-CEN XML schema version.
filings[].data.primary_doc.headerData.filerInfo.investmentCompanyTypestringN-1A, N-2, N-3 and so on.
filings[].data.primary_doc.headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo[]arraySeries covered by the report.
filings[].data.primary_doc.headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo[].seriesIdstringSEC series id.
filings[].data.primary_doc.headerData.seriesClass.reportSeriesClass.rptSeriesClassInfo[].includeAllClassesFlagstringtrue when every class of the series is included.
filings[].data.primary_doc.formData.generalInfoobjectReport period end and whether the period is shorter than 12 months.
filings[].data.primary_doc.formData.registrantInfoobjectRegistrant 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.managementInvestmentQuestionSeriesInfoobjectPer series answers for management investment companies: fund type, service providers, securities lending, fees and more.
filings[].data.primary_doc.formData.exchangeSeriesInfoobjectExchange traded fund and exchange listed series information.
filings[].data.primary_doc.formData.attachmentsTabobjectWhich attachments the filing includes.
filings[].data.primary_doc.formData.signatureobjectSigner 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

See also the error codes every endpoint shares.

Try it with your own key

500 free calls a month.

Get free API key →