Form 10-K API
Pull annual reports the moment they hit EDGAR. The Form 10-K API turns audited financial statements, risk factors, and MD&A into clean JSON you can query by company, ticker, or date.
What is Form 10-K?
Form 10-K is the comprehensive annual report U.S. public companies file with the SEC. It contains audited financial statements, a description of the business, risk factors, and management’s discussion and analysis (MD&A) of results.
It is the single most important disclosure for fundamental analysis: revenue, net income, the balance sheet, cash flows, segment detail, and forward-looking risk language all live here, tagged in XBRL.
With the Finsider Form 10-K API you skip EDGAR scraping and XBRL parsing entirely — request a company’s 10-K and get structured, standardized financials back in milliseconds.
Fetch Form 10-K filings
List recent Form 10-K filings, filterable by company, ticker, and date.
curl -s "https://api.secapi.dev/v1/filings?formTypes=10-K&limit=20" \
-H "x-api-key: $SECAPI_KEY"import requests
resp = requests.get(
"https://api.secapi.dev/v1/filings?formTypes=10-K&limit=20",
headers={"x-api-key": "YOUR_API_KEY"},
timeout=30,
)
resp.raise_for_status()
data = resp.json()
print(data)const res = await fetch("https://api.secapi.dev/v1/filings?formTypes=10-K&limit=20", {
method: "GET",
headers: { "x-api-key": process.env.SECAPI_KEY },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data);package main
import (
"fmt"
"io"
"log"
"net/http"
"os"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.secapi.dev/v1/filings?formTypes=10-K&limit=20", nil)
req.Header.Set("x-api-key", os.Getenv("SECAPI_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}Pull standardized annual financials
Get revenue, net income, EPS, and margins for a company across years.
curl -s "https://api.secapi.dev/v1/financials/metrics?ticker=AAPL&limit=8" \
-H "x-api-key: $SECAPI_KEY"import requests
resp = requests.get(
"https://api.secapi.dev/v1/financials/metrics?ticker=AAPL&limit=8",
headers={"x-api-key": "YOUR_API_KEY"},
timeout=30,
)
resp.raise_for_status()
data = resp.json()
print(data)const res = await fetch("https://api.secapi.dev/v1/financials/metrics?ticker=AAPL&limit=8", {
method: "GET",
headers: { "x-api-key": process.env.SECAPI_KEY },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data);package main
import (
"fmt"
"io"
"log"
"net/http"
"os"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.secapi.dev/v1/financials/metrics?ticker=AAPL&limit=8", nil)
req.Header.Set("x-api-key", os.Getenv("SECAPI_KEY"))
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}Who files Form 10-K?
| Filer | Requirement |
|---|---|
| Large accelerated filers | Due within 60 days of fiscal year end |
| Accelerated filers | Due within 75 days of fiscal year end |
| Non-accelerated filers | Due within 90 days of fiscal year end |
| Foreign private issuers | File Form 20-F instead (see the 20-F API) |
Deadlines & coverage
| Aspect | Detail |
|---|---|
| Annual | Once per fiscal year |
| Coverage | Modern XBRL-tagged filings from ~2009 onward |
| Amendments | Form 10-K/A supersedes the original — prefer the latest |
| Availability | Indexed within minutes of SEC acceptance |
Key data fields
A sample of the structured fields returned for Form 10-K data.
| Field | Description |
|---|---|
accessionNumber | Unique SEC identifier for the filing |
cik / ticker | Company identifiers |
fiscalYear | Fiscal year the report covers |
revenue / netIncome | Headline income statement figures |
totalAssets / totalLiabilities | Balance sheet totals |
riskFactors | Itemized Item 1A risk disclosures |
Related API endpoints
Deep-link into the interactive reference to try these live.
Frequently asked questions
What is the Form 10-K API?
How do I get a company’s latest 10-K?
/v1/filings?formTypes=10-K&ticker=AAPL&limit=1, or use the financials endpoints to fetch standardized statements directly from the most recent annual filing.Does the API parse XBRL for me?
How far back does 10-K coverage go?
Is there a free tier?
Build with the Form 10-K API
Create a free account, grab an API key, and make your first request in under a minute.