Home / Developers / X-17A-5 API
API reference

X-17A-5 API

Annual reports of registered broker-dealers (Form X-17A-5) as JSON: the cover page with the audited period, the accountant and any material weakness, plus links to the audited financial statements filed as PDF. Product overview →

Endpoints

/v1/x-17a-5

GEThttps://secfeedapi.com/v1/x-17a-5

Broker-dealer annual reports: cover data and the audited report PDF.

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 broker-dealer annual reports

The cover data plus the PDF of the audited report in data.documents.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?size=1"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/x-17a-5",
    params={'size': '1'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "total": 28,
  "filings": [
    {
      "accessionNo": "0000844934-26-000001",
      "formType": "X-17A-5",
      "filedAt": "2026-10-13",
      "cik": 844934,
      "companyName": "PACIFIC FINANCIAL ASSOCIATES NV, INC.",
      "flat": null,
      "data": {
        "primary_doc": {
          "headerData": {
            "submissionType": "X-17A-5",
            "filerInfo": {
              "filer": {
                "filerCredentials": {
                  "filerCik": "0000844934",
                  "filerCcc": "XXXXXXXX"
                }
              },
              "liveTestFlag": "LIVE",
              "flags": {
                "returnCopyFlag": "false",
                "confirmingCopyFlag": "false",
                "overrideInternetFlag": "false"
              }
            }
          },
          "formData": {
            "submissionInformation": {
              "periodBegin": "07-01-2025",
              "periodEnd": "06-30-2026",
              "typeOfRegistrant": {
                "typeOfBDRegistrant": "Broker-dealer"
              },
              "materialWeakness": "N"
            },
            "registrantIdentification": {
              "brokerDealerName": "PACIFIC FINANCIAL ASSOCIATES NV, INC.",
              "businessAddress": {
                "street1": "10170 SWEET BAY CT",
                "street2": "SUITE 119",
                "city": "PARKLAND",
                "stateOrCountry": "FL",
                "zipCode": "33076"
              },
              "contactPersonName": "Alex Feldman",
              "contactPersonPhoneNumber": "9547324495"
            },
            "accountantIdentification": {
              "accountantName": "OHAB AND COMPANY, PA",
              "accountantAddress": {
                "street1": "100 E SYBELIA AVENUE, SUITE 130",
                "city": "Maitland",
                "stateOrCountry": "FL",
                "zipCode": "32751"
              },
              "accountantType": "Certified Public Accountant"
            },
  ...

Reports filed in a date range

total gives the count for the range.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?startDate=2026-10-01&endDate=2026-10-13&size=2"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/x-17a-5",
    params={'startDate': '2026-10-01', 'endDate': '2026-10-13', 'size': '2'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "total": 22,
  "filings": [
    {
      "accessionNo": "0000844934-26-000001",
      "formType": "X-17A-5",
      "filedAt": "2026-10-13",
      "cik": 844934,
      "companyName": "PACIFIC FINANCIAL ASSOCIATES NV, INC.",
      "flat": null,
      "data": {
        "primary_doc": {
          "headerData": {
            "submissionType": "X-17A-5",
            "filerInfo": {
              "filer": {
                "filerCredentials": {
                  "filerCik": "0000844934",
                  "filerCcc": "XXXXXXXX"
                }
              },
              "liveTestFlag": "LIVE",
              "flags": {
                "returnCopyFlag": "false",
                "confirmingCopyFlag": "false",
                "overrideInternetFlag": "false"
              }
            }
          },
          "formData": {
            "submissionInformation": {
              "periodBegin": "07-01-2025",
              "periodEnd": "06-30-2026",
              "typeOfRegistrant": {
                "typeOfBDRegistrant": "Broker-dealer"
              },
              "materialWeakness": "N"
            },
            "registrantIdentification": {
              "brokerDealerName": "PACIFIC FINANCIAL ASSOCIATES NV, INC.",
              "businessAddress": {
                "street1": "10170 SWEET BAY CT",
                "street2": "SUITE 119",
                "city": "PARKLAND",
                "stateOrCountry": "FL",
                "zipCode": "33076"
              },
              "contactPersonName": "Alex Feldman",
              "contactPersonPhoneNumber": "9547324495"
            },
            "accountantIdentification": {
              "accountantName": "OHAB AND COMPANY, PA",
              "accountantAddress": {
                "street1": "100 E SYBELIA AVENUE, SUITE 130",
                "city": "Maitland",
                "stateOrCountry": "FL",
                "zipCode": "32751"
              },
              "accountantType": "Certified Public Accountant"
            },
  ...

A light list

fields=flat keeps only the envelope: who filed and when.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?size=2&fields=flat"
import os, requests

r = requests.get(
    "https://secfeedapi.com/v1/x-17a-5",
    params={'size': '2', 'fields': 'flat'},
    headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
    timeout=60,
)
r.raise_for_status()
print(r.json())
{
  "total": 28,
  "filings": [
    {
      "accessionNo": "0000844934-26-000001",
      "formType": "X-17A-5",
      "filedAt": "2026-10-13",
      "cik": 844934,
      "companyName": "PACIFIC FINANCIAL ASSOCIATES NV, INC.",
      "flat": null
    },
    {
      "accessionNo": "0001469150-26-000002",
      "formType": "X-17A-5",
      "filedAt": "2026-10-13",
      "cik": 1469150,
      "companyName": "STRATCAP SECURITIES, LLC",
      "flat": null
    }
  ]
}

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.headerData.filerInfo.filer.filerCredentials.filerCikstringBroker-dealer CIK, zero padded.
filings[].data.primary_doc.formData.submissionInformation.periodBeginstringStart of the audited period, MM-DD-YYYY.
filings[].data.primary_doc.formData.submissionInformation.periodEndstringEnd of the audited period, MM-DD-YYYY.
filings[].data.primary_doc.formData.submissionInformation.typeOfRegistrant.typeOfBDRegistrantstringRegistrant type, for example Broker-dealer.
filings[].data.primary_doc.formData.submissionInformation.materialWeaknessstringY when the auditor reports a material weakness.
filings[].data.primary_doc.formData.registrantIdentificationobjectBroker-dealer name, business address, contact person and phone.
filings[].data.primary_doc.formData.accountantIdentificationobjectIndependent accountant name, address and type.
filings[].data.primary_doc.formData.oathSignatureobjectSigner, entity, title and date of the oath.
filings[].data.documents[]arrayURLs of the attached documents, usually the audited annual report as PDF.

How to

How do I get the audited financial statements?

Take the URL in data.documents and download it with /v1/download.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?size=1"
How do I find reports with a material weakness?

Filter on the materialWeakness flag.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?data.primary_doc.formData.submissionInformation.materialWeakness=Y&size=2&fields=flat"
Who audits a broker-dealer?

accountantIdentification.accountantName on the cover page.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?size=1"
How do I get one firm's reports?

Filter by its CIK.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?cik=844934&size=1"
Which period does a report cover?

submissionInformation.periodBegin and periodEnd, in MM-DD-YYYY.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?size=1"
How do I list this week's filers quickly?

Use fields=flat with a startDate.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?startDate=2026-10-06&size=2&fields=flat"
How do I get amended reports?

formType=X-17A-5/A.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?formType=X-17A-5/A&size=2&fields=flat"
How do I page through results?

Use size up to 100 and step from.

curl -H "Authorization: Bearer $SECFEED_KEY" \
  "https://secfeedapi.com/v1/x-17a-5?size=2&from=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 →