Endpoints
/v1/xbrl-to-json
https://secfeedapi.com/v1/xbrl-to-jsonEvery statement of a filing from its XBRL, in the company's order, plus the cover page.
| Parameter | Type | Description | Example |
|---|---|---|---|
accessionNo | string | Accession number of the filing. One of accessionNo, htmUrl or xbrlUrl is required. | 0000320193-26-000020 |
cik | integer | Filer CIK. Optional; speeds up locating the filing. | 320193 |
htmUrl | string | Any URL inside the filing folder, such as the index page or main document. | https://www.sec.gov/Archives/edgar/data/1045810/000104581026000078/0001045810-26-000078-index.htm |
xbrlUrl | string | Same as htmUrl; either name is accepted. | |
notes | string | true to include note and detail sections, not just the statements and cover page. Default false. | true |
- Statements keep the company's own order. Each concept maps to a list of facts with value, period, unitRef, decimals and an optional segment.
- Standard statements get fixed keys (BalanceSheets, StatementsOfIncome, StatementsOfCashFlows, CoverPage...); others are camel cased from their titles.
- notes=true can return several hundred KB.
/v1/xbrl/company-facts
https://secfeedapi.com/v1/xbrl/company-factsEvery XBRL fact a company has reported.
| Parameter | Type | Description | Example |
|---|---|---|---|
ticker | string | Ticker, or pass cik instead. | MSFT |
cik | integer | Company CIK. | 789019 |
- Returns every fact the company has reported, often several MB.
/v1/xbrl/company-concept
https://secfeedapi.com/v1/xbrl/company-conceptOne concept over time for a company.
| Parameter | Type | Description | Example |
|---|---|---|---|
ticker | string | Ticker, or pass cik. | AAPL |
cik | integer | Company CIK. | 320193 |
conceptrequired | string | XBRL tag name. | Revenues |
taxonomy | string | us-gaap, dei, ifrs-full or srt. Default us-gaap. | dei |
- Returns 404 when the company never reported that tag.
/v1/xbrl/frames
https://secfeedapi.com/v1/xbrl/framesOne concept across all companies for a period.
| Parameter | Type | Description | Example |
|---|---|---|---|
conceptrequired | string | XBRL tag name. | Assets |
periodrequired | string | CY2025 for a calendar year, CY2025Q4 for a quarter, add I for a point in time (balance sheet) value. | CY2025Q4I |
unit | string | Unit of measure. Default USD. | shares |
taxonomy | string | Taxonomy of the tag. Default us-gaap. | dei |
- One value per company for the period, so the result can include thousands of rows.
Request examples
Every response below is real output from the API, trimmed to the first records.
Statements from an Apple 10-Q
Each statement maps concepts to facts. _meta lists the statements and links to their HTML renderings.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl-to-json?accessionNo=0000320193-26-000020&cik=320193"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/xbrl-to-json",
params={'accessionNo': '0000320193-26-000020', 'cik': '320193'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
timeout=60,
)
r.raise_for_status()
print(r.json()){
"CoverPage": {
"DocumentType": [
{
"value": "10-Q",
"period": {
"startDate": "2025-09-28",
"endDate": "2026-06-27"
}
}
],
"DocumentQuarterlyReport": [
{
"value": "true",
"period": {
"startDate": "2025-09-28",
"endDate": "2026-06-27"
}
}
],
"DocumentPeriodEndDate": [
{
"value": "2026-06-27",
"period": {
"startDate": "2025-09-28",
"endDate": "2026-06-27"
}
}
],
"DocumentTransitionReport": [
{
"value": "false",
"period": {
"startDate": "2025-09-28",
"endDate": "2026-06-27"
}
}
],
"EntityFileNumber": [
{
"value": "001-36743",
"period": {
"startDate": "2025-09-28",
"endDate": "2026-06-27"
}
}
],
"EntityRegistrantName": [
{
"value": "Apple Inc.",
"period": {
"startDate": "2025-09-28",
"endDate": "2026-06-27"
}
}
],
"EntityIncorporationStateCountryCode": [
{
"value": "CA",
"period": {
...Apple revenue reported over the years
Every value of one tag with the filing it came from; frame shows the calendar period it was assigned to.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl/company-concept?ticker=AAPL&concept=Revenues"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/xbrl/company-concept",
params={'ticker': 'AAPL', 'concept': 'Revenues'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
timeout=60,
)
r.raise_for_status()
print(r.json()){
"cik": 320193,
"taxonomy": "us-gaap",
"tag": "Revenues",
"label": "Revenues",
"description": "Amount of revenue recognized from goods sold, services rendered, insurance premiums, or other activities that constitute an earning process. Includes, but is not limited to, investment and interest income before deduction of interest expense when recognized as a component of reve...",
"entityName": "Apple Inc.",
"units": {
"USD": [
{
"start": "2015-09-27",
"end": "2016-09-24",
"val": 215639000000,
"accn": "0000320193-18-000145",
"fy": 2018,
"fp": "FY",
"form": "10-K",
"filed": "2018-11-05",
"frame": "CY2016"
},
{
"start": "2016-09-25",
"end": "2016-12-31",
"val": 78351000000,
"accn": "0000320193-18-000145",
"fy": 2018,
"fp": "FY",
"form": "10-K",
"filed": "2018-11-05",
"frame": "CY2016Q4"
}
]
}
}Total assets for every filer at the end of 2025
pts is the number of companies; each data row is one company's value.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl/frames?concept=Assets&period=CY2025Q4I"
import os, requests
r = requests.get(
"https://secfeedapi.com/v1/xbrl/frames",
params={'concept': 'Assets', 'period': 'CY2025Q4I'},
headers={"Authorization": f"Bearer {os.environ['SECFEED_KEY']}"},
timeout=60,
)
r.raise_for_status()
print(r.json()){
"taxonomy": "us-gaap",
"tag": "Assets",
"ccp": "CY2025Q4I",
"uom": "USD",
"label": "Assets",
"description": "Sum of the carrying amounts as of the balance sheet date of all assets that are recognized. Assets are probable future economic benefits obtained or controlled by an entity as a result of past transactions or events.",
"pts": 6163,
"data": [
{
"accn": "0001104659-26-001420",
"cik": 1750,
"entityName": "AAR CORP",
"loc": "US-IL",
"end": "2025-11-30",
"val": 3242500000
},
{
"accn": "0001628280-26-050134",
"cik": 1800,
"entityName": "ABBOTT LABORATORIES",
"loc": "US-IL",
"end": "2025-12-31",
"val": 86713000000
}
]
}Response fields
| Field | Type | Meaning |
|---|---|---|
<Statement>.<concept>[].value | string | xbrl-to-json: the reported value. |
<Statement>.<concept>[].period.startDate / endDate / instant | string | xbrl-to-json: duration or point in time of the fact. |
<Statement>.<concept>[].unitRef | string | xbrl-to-json: unit, such as usd or shares. |
<Statement>.<concept>[].decimals | string | xbrl-to-json: rounding precision (-6 means millions). |
<Statement>.<concept>[].segment.dimension / value | string or array | xbrl-to-json: dimension and member for broken out facts. A single object for one dimension, a list for several. |
_meta.cik / accessionNo / instance | mixed | xbrl-to-json: filer, filing and the instance document used. |
_meta.statements[].name / category / html | string | xbrl-to-json: statement titles, Statements or Cover, and the HTML rendering. |
cik / entityName | mixed | company-facts and company-concept: the company. |
facts.<taxonomy>.<concept>.label / description | string | company-facts: tag label and definition. |
facts.<taxonomy>.<concept>.units.<unit>[] | array | company-facts: reported values, same row shape as company-concept units. |
taxonomy / tag / label / description | string | company-concept and frames: the tag. |
units.<unit>[].start / end | string | company-concept: period of the value (start is absent for point in time values). |
units.<unit>[].val | number | company-concept: the value. |
units.<unit>[].accn / form / filed | string | company-concept: the filing that reported it. |
units.<unit>[].fy / fp | mixed | company-concept: fiscal year and period (FY, Q1...) of that filing. |
units.<unit>[].frame | string | company-concept: calendar frame the value was assigned to, when any. |
ccp / uom / pts | mixed | frames: calendar period, unit and number of companies. |
data[].accn / cik / entityName / loc | mixed | frames: the filing, company and its location code. |
data[].start / end / val | mixed | frames: period and value for each company. |
Frame period formats
| Value | Meaning |
|---|---|
| CY2024 | Calendar year 2024 duration (income statement, cash flow) |
| CY2025Q2 | Second calendar quarter of 2025, duration |
| CY2025Q4I | Point in time at the end of Q4 2025 (balance sheet) |
How to
How do I include the notes to the financial statements?
Add notes=true. Expect a much larger response.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl-to-json?accessionNo=0000320193-26-000020&cik=320193¬es=true"
Can I convert a filing when I only have its URL?
Yes, pass htmUrl with the index page or any document URL in the filing.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl-to-json?htmUrl=https://www.sec.gov/Archives/edgar/data/1045810/000104581026000078/0001045810-26-000078-index.htm"
Do I need the CIK?
No, accessionNo alone works; cik only saves a lookup.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl-to-json?accessionNo=0000320193-26-000020"
How do I get a company's whole XBRL history?
Use company-facts. It returns every tag the company has used.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl/company-facts?ticker=MSFT"
How do I track shares outstanding from the cover page?
Ask company-concept for the dei tag EntityCommonStockSharesOutstanding.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl/company-concept?ticker=AAPL&concept=EntityCommonStockSharesOutstanding&taxonomy=dei"
How do I get net income history?
Request the NetIncomeLoss tag.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl/company-concept?ticker=NVDA&concept=NetIncomeLoss"
How do I compare a full year figure across companies?
Use frames with a CY period and no I suffix.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl/frames?concept=Revenues&period=CY2024"
How do I compare share counts across companies?
Use frames with unit=shares and taxonomy=dei.
curl -H "Authorization: Bearer $SECFEED_KEY" \ "https://secfeedapi.com/v1/xbrl/frames?concept=EntityCommonStockSharesOutstanding&period=CY2025Q4I&unit=shares&taxonomy=dei"
Errors
- 400 when none of accessionNo, htmUrl or xbrlUrl is given.
- 404 when a company or concept is unknown.
- An error is returned when the filing has no XBRL instance (many 8-Ks and older filings).
See also the error codes every endpoint shares.
Try it with your own key
500 free calls a month.