Endpoints
/v1/x-17a-5
https://secfeedapi.com/v1/x-17a-5Broker-dealer annual reports: cover data and the audited report PDF.
| 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 X-17A-5 and X-17A-5/A, newest first. total is exact.
- Only the cover page is XML; the financial statements are in data.documents as PDF links. Download them with /v1/download.
- Dates inside the XML use MM-DD-YYYY.
- 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 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
| 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.headerData.filerInfo.filer.filerCredentials.filerCik | string | Broker-dealer CIK, zero padded. |
filings[].data.primary_doc.formData.submissionInformation.periodBegin | string | Start of the audited period, MM-DD-YYYY. |
filings[].data.primary_doc.formData.submissionInformation.periodEnd | string | End of the audited period, MM-DD-YYYY. |
filings[].data.primary_doc.formData.submissionInformation.typeOfRegistrant.typeOfBDRegistrant | string | Registrant type, for example Broker-dealer. |
filings[].data.primary_doc.formData.submissionInformation.materialWeakness | string | Y when the auditor reports a material weakness. |
filings[].data.primary_doc.formData.registrantIdentification | object | Broker-dealer name, business address, contact person and phone. |
filings[].data.primary_doc.formData.accountantIdentification | object | Independent accountant name, address and type. |
filings[].data.primary_doc.formData.oathSignature | object | Signer, entity, title and date of the oath. |
filings[].data.documents[] | array | URLs 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
- 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.