Quick start
This walkthrough goes from a new key to the numbers in Apple's income statement in 6 calls. You need a SECSift account on the Analyst or Pro plan, and a terminal.
Create a key
Keys come from the reader:
- Open the reader, sign in, and open any filing.
- Select your account at the bottom of the left sidebar and choose "API keys".
- Select "Create Key", then "Copy Key". SECSift shows each key only once.
Any account can create a key, and a Free account's key works with the MCP server. The API answers only keys from Analyst and Pro accounts.
Save the key
Save the key in your terminal as SECSIFT_KEY, which every example reads. On macOS and Linux:
export SECSIFT_KEY="sk_secsift_..." In Windows PowerShell:
$env:SECSIFT_KEY = "sk_secsift_..." Check the key
Ask for your usage, which shows your plan and the calls you have left today:
curl "https://api.secsift.com/v1/usage" \
-H "Authorization: Bearer $SECSIFT_KEY" Example answer
{
"plan": "pro",
"calls_today": 207,
"daily_limit": 5000,
"remaining": 4793,
"resets_at": "2026-10-27T00:00:00.000Z"
} In Windows PowerShell, type each example on one line, with curl.exe instead of curl and $env:SECSIFT_KEY instead of $SECSIFT_KEY:
curl.exe "https://api.secsift.com/v1/usage" -H "Authorization: Bearer $env:SECSIFT_KEY" Find the company
curl "https://api.secsift.com/v1/companies?q=apple" \
-H "Authorization: Bearer $SECSIFT_KEY" Each match has a name, ticker, and CIK, and every path that names a company takes either the ticker or the CIK.
Example answer
The first two of the six matches:
{
"data": [
{
"name": "Apple Inc.",
"ticker": "AAPL",
"cik": 320193
},
{
"name": "Apple iSports Group, Inc.",
"ticker": "AAPI",
"cik": 1134982
}
]
} Find the filing
List Apple's 10-Ks, newest first. With limit=1, the answer holds only the latest:
curl "https://api.secsift.com/v1/companies/AAPL/filings?forms=10-K&limit=1" \
-H "Authorization: Bearer $SECSIFT_KEY" The filing's accession number names the filing in every path that reads the filing.
Example answer
{
"data": [
{
"accession": "0000320193-25-000079",
"form": "10-K",
"tag": "10-K",
"category": "annual",
"items": null,
"filed": "2025-10-31",
"period_end": "2025-09-27",
"fiscal": "FY2025",
"urls": {
"secsift": "https://secsift.com/?t=AAPL&a=0000320193-25-000079",
"edgar": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.html"
}
}
],
"total": 24,
"next_offset": 1,
"capped": false
} Find the table
curl "https://api.secsift.com/v1/companies/AAPL/filings/0000320193-25-000079/tables" \
-H "Authorization: Bearer $SECSIFT_KEY" Each table has a number, title, section, and units, plus its first headers and row labels for tables without a title. Apple's income statement is table 12.
Example answer
The entry for table 12, one of the filing's 46:
{
"company": {
"name": "Apple Inc.",
"ticker": "AAPL",
"cik": 320193
},
"filing": {
"accession": "0000320193-25-000079",
"form": "10-K",
"filed": "2025-10-31",
"period_end": "2025-09-27",
"fiscal": "FY2025",
"items": null
},
"data": [
{
"n": 12,
"title": "Consolidated Statements of Operations",
"section": "Item 8",
"section_id": "pt-ii-item-8",
"section_title": "Financial Statements and Supplementary Data",
"rows": 24,
"columns": 4,
"units": {
"scale": "millions",
"multiplier": 1000000
},
"headers": ["", "Years ended September 27, 2025", "Years ended September 28, 2024", "Years ended September 30, 2023"],
"labels": ["Net sales:", "Products", "Services", "Total net sales", "Cost of sales:", "Products", "Services", "Total cost of sales"],
"urls": {
"secsift": "https://secsift.com/?t=AAPL&a=0000320193-25-000079&tb=b426&tn=12"
}
}
]
} Note: A filing SECSift hasn't read before answers 202 for a few seconds while SECSift prepares the filing. Call again after the seconds in the Retry-After header. See filings being prepared.
Get the table
curl "https://api.secsift.com/v1/companies/AAPL/filings/0000320193-25-000079/tables/12" \
-H "Authorization: Bearer $SECSIFT_KEY" The answer holds each row as filed in rows, each figure as a number in values,
and what to multiply each number by in multipliers. Here are three of the table's 24 rows:
{
"company": {
"name": "Apple Inc.",
"ticker": "AAPL",
"cik": 320193
},
"filing": {
"accession": "0000320193-25-000079",
"form": "10-K",
"filed": "2025-10-31",
"period_end": "2025-09-27",
"fiscal": "FY2025",
"items": null
},
"n": 12,
"title": "Consolidated Statements of Operations",
"section": "Item 8",
"units": {
"scale": "millions",
"multiplier": 1000000
},
"headers": ["", "Years ended September 27, 2025", "Years ended September 28, 2024", "Years ended September 30, 2023"],
"rows": [
["Total net sales", "416,161", "391,035", "383,285"],
["Net income", "$112,010", "$93,736", "$96,995"],
["Diluted", "$7.46", "$6.08", "$6.13"]
],
"values": [
[null, 416161, 391035, 383285],
[null, 112010, 93736, 96995],
[null, 7.46, 6.08, 6.13]
],
"multipliers": [
[null, 1000000, 1000000, 1000000],
[null, 1000000, 1000000, 1000000],
[null, null, null, null]
],
"row_kinds": [null, null, "per_share"],
"urls": {
"secsift": "https://secsift.com/?t=AAPL&a=0000320193-25-000079&tb=b426&tn=12",
"edgar": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.html"
}
} Net income of 112010 times its multiplier of 1000000 is Apple's $112B for FY2025. Diluted earnings per share have no multiplier, since per-share amounts stay as filed.
Add format=csv for the table's rows as a CSV file.
Follow the table across filings
curl "https://api.secsift.com/v1/companies/AAPL/filings/0000320193-25-000079/tables/12/history?limit=3&dedupe=true" \
-H "Authorization: Bearer $SECSIFT_KEY" The history finds the same table in Apple's last three 10-Ks and lines up the rows, with each period once.
Example answer
Two of its rows, with five years of periods from three filings:
{
"title": "Consolidated Statements of Operations",
"filings": [
{
"accession": "0000320193-25-000079",
"form": "10-K",
"fiscal": "FY2025",
"filed": "2025-10-31",
"period_end": "2025-09-27",
"status": "matched",
"match": 1,
"table": 12
},
{
"accession": "0000320193-24-000123",
"form": "10-K",
"fiscal": "FY2024",
"filed": "2024-11-01",
"period_end": "2024-09-28",
"status": "matched",
"match": 1,
"table": 12
},
{
"accession": "0000320193-23-000106",
"form": "10-K",
"fiscal": "FY2023",
"filed": "2023-11-03",
"period_end": "2023-09-30",
"status": "matched",
"match": 1,
"table": 11
}
],
"headers": ["Line item", "Years ended September 27, 2025", "Years ended September 28, 2024", "Years ended September 30, 2023", "Years ended September 24, 2022", "Years ended September 25, 2021"],
"columns": [
{
"header": "Line item",
"accession": null,
"period_type": null,
"url": null
},
{
"header": "Years ended September 27, 2025",
"accession": "0000320193-25-000079",
"period_type": "annual",
"url": "https://secsift.com/?t=AAPL&a=0000320193-25-000079&tb=b426&tn=12"
},
{
"header": "Years ended September 28, 2024",
"accession": "0000320193-25-000079",
"period_type": "annual",
"url": "https://secsift.com/?t=AAPL&a=0000320193-25-000079&tb=b426&tn=12"
},
{
"header": "Years ended September 30, 2023",
"accession": "0000320193-25-000079",
"period_type": "annual",
"url": "https://secsift.com/?t=AAPL&a=0000320193-25-000079&tb=b426&tn=12"
},
{
"header": "Years ended September 24, 2022",
"accession": "0000320193-24-000123",
"period_type": "annual",
"url": "https://secsift.com/?t=AAPL&a=0000320193-24-000123&tb=b440&tn=12"
},
{
"header": "Years ended September 25, 2021",
"accession": "0000320193-23-000106",
"period_type": "annual",
"url": "https://secsift.com/?t=AAPL&a=0000320193-23-000106&tb=b434&tn=11"
}
],
"rows": [
["Total net sales", "416,161", "391,035", "383,285", "394,328", "365,817"],
["Net income", "$112,010", "$93,736", "$96,995", "$99,803", "$94,680"]
],
"values": [
[null, 416161, 391035, 383285, 394328, 365817],
[null, 112010, 93736, 96995, 99803, 94680]
],
"multipliers": [
[null, 1000000, 1000000, 1000000, 1000000, 1000000],
[null, 1000000, 1000000, 1000000, 1000000, 1000000]
],
"row_kinds": [null, null],
"complete": true
} Each call above counted once toward your daily allowance, so the walkthrough used 6 calls. A history of more than 12 filings counts as 2.
Next steps
Here's where to go next:
- Authentication shows a call in Python and JavaScript.
- Limits and errors covers what counts as a call, the allowance headers, and every error.
- The guides explain each part of the API, starting with filings and sections.
- The endpoint reference lists every endpoint and its parameters, with a panel to try each one.