StockFit API vs. Alpha Vantage for Fundamentals
Both speak JSON. One reads SEC filings. The other reads its own normalized table. A side-by-side look at standardized statements, raw XBRL, filings access, ownership, insider data, executive comp, ETFs, and pricing — with verifiable sources on both sides.

Alpha Vantage is the default first stop for anyone hunting a free fundamentals API. It returns clean JSON, the documentation fits on one page, and the entry price is low. So why do serious teams keep migrating off it?
The short answer: Alpha Vantage gives you a normalized snapshot of the big-three financial statements and very little else. StockFit gives you the SEC filing the numbers came from, the raw XBRL fact tree behind every line item, plus the ownership, insider, executive, fund, and filings infrastructure that simply has no equivalent on the Alpha Vantage side. If your work touches fundamentals beyond the surface layer, the depth gap matters.
This post lays the two surfaces side by side. Every Alpha Vantage claim links to their own published documentation, pricing, or support pages — no third-party hot takes. Every StockFit claim links to the live Swagger reference, runnable from the free playground.
function= responses verified against https://www.alphavantage.co/query?...&apikey=demo. StockFit: live calls against api.stockfit.io. If we have a fact wrong, tell us.The surface, in one table
Alpha Vantage's entire fundamentals offering is fourteen function= calls. StockFit's is sixty-plus structured endpoints, organized by what the data is actually for. Counted by area:
| Capability | StockFit API | Alpha Vantage |
|---|---|---|
| Standardized statements (Income / Balance / Cash Flow) | 3 endpoints + 4 chart endpoints, all with annual, quarter, and ttm periods | 3 endpoints (INCOME_STATEMENT, BALANCE_SHEET, CASH_FLOW), annual + quarterly only |
| As-reported / raw XBRL | /api/financials/as-reported — full XBRL fact tree incl. company-specific extensions | None — explicitly normalized only |
| Earnings analytics | 9 endpoints: history, dividends, snapshot, trends, date prediction, calendar, upcoming, quality chart, EPS chart | 2 endpoints: EARNINGS (history) + EARNINGS_ESTIMATES (premium) |
| Financial scoring & key metrics | Piotroski F-score, Altman Z-score, sector-aware key metrics, growth rates — scores, key-metrics, growth | None |
| SEC filings & documents | 11 endpoints (full text, item-level extraction, filings calendar, S-1 offerings, accession lookup) | None — CIK is exposed so you can go to EDGAR yourself |
| Insider transactions | 5 endpoints: list, summary, roster, by-insider, chart — with cross-filer dedup | 1 endpoint: INSIDER_TRANSACTIONS (raw transaction stream) |
| Institutional & beneficial ownership | 8 endpoints: 13F holdings, history, search, beneficial owners (13D/G), share classes, portfolio, summary, activity | None — one aggregate PercentInstitutions in OVERVIEW |
| Executives, comp & governance | 4 endpoints: officers, pay-vs-performance, governance flags, performance measures (from XBRL DEF 14A) | None |
| ETF / fund analytics | 18 endpoints: holdings, flows, fees, overlap, exposure model, country/sector charts, fund health, service providers, reverse lookup | 1 endpoint: ETF_PROFILE (single snapshot) |
| Symbol lookup | By symbol, CIK, CUSIP, FIGI, fuzzy search, former names, batch lookup | CSV-only: LISTING_STATUS bulk download |
Score: 60+ vs ~14. The gap is not cosmetic. It is the difference between a fundamentals snapshot service and a working SEC EDGAR back-end.
1. Standardized statements: close on the surface
On the core three statements, both APIs deliver multi-decade history on large caps. Pulling function=INCOME_STATEMENT for IBM against the demo key returns ~20 annual reports back to 2006 and ~80 quarterlies back to 2010, ~26 line items each. StockFit's /api/financials/income-statement returns roughly the same envelope shape with the same coverage on mature names. That is the part where the two APIs feel equivalent.
The differences show up the moment you look at what the response carries beyond the line items.
Alpha Vantage's INCOME_STATEMENT
{
"symbol": "IBM",
"annualReports": [
{
"fiscalDateEnding": "2024-12-31",
"reportedCurrency": "USD",
"totalRevenue": "62753000000",
"costOfRevenue": "27959000000",
"grossProfit": "34794000000",
"operatingIncome": "8780000000",
"netIncome": "6023000000",
"ebitda": "13700000000"
// ... 20 more line items, all stringified, no filing date
}
],
"quarterlyReports": [ /* ... */ ]
}StockFit's /api/financials/income-statement
[
{
"period": "2024-12-31",
"fiscalYear": 2024,
"fiscalPeriod": "FY",
"dateFiled": "2025-02-24",
"accessionNumber":"0000051143-25-000007",
"facts": {
"revenue": 62753000000,
"costOfRevenue": 27959000000,
"grossProfit": 34794000000,
"operatingIncome": 8780000000,
"netIncome": 6023000000,
"ebitda": 13700000000,
"eps": 6.53,
"epsDiluted": 6.42
// ~20 more typed fields
}
}
]Three differences that look small but compound across any non-trivial workload:
- Filing date. StockFit returns
dateFiled— the original 10-K/10-Q acceptance date, not the amendment date. Alpha Vantage exposes the fiscal period end and nothing about when the filing actually hit EDGAR. For backtesting that is the difference between a clean point-in-time join and silent look-ahead bias. - TTM as a first-class period. StockFit ships
period=ttmon every statement, computed as a sum of the last four quarters with proper non-December fiscal-year handling (AAPL ends in late September, COST in late August, and the TTM math accounts for it). Alpha Vantage offers annual or quarterly arrays only — you compute TTM yourself. - Typed numbers, fiscal metadata. Alpha Vantage returns numbers as strings (
"62753000000"); StockFit returns typed numbers and shipsfiscalYear+fiscalPeriodon every row so you don't reverse-engineer the calendar.
Same shape on the surface. Different posture underneath: StockFit treats every row as a filing, not a calendar entry.
2. As-reported XBRL: the part Alpha Vantage hides
Alpha Vantage's own taxonomy documentation is upfront about what its fundamentals data actually is: “normalized fields mapped to GAAP and IFRS taxonomies of the SEC.” When a filer doesn't report a normalized field, Alpha Vantage imputes it from broader taxonomy. There is no exit hatch — you cannot ask for the raw fact, only the normalized output. (source)
StockFit ships a parallel endpoint for exactly this case: /api/financials/as-reported returns the raw XBRL fact set the issuer filed, including company-specific extension concepts (the tsla:, aapl:, nvda: namespaced tags). Below is a real, just-pulled response for AAPL Q1 FY2026:
[
{
"period": "2025-12-26",
"facts": {
"us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax": 143756000000,
"us-gaap:CostOfGoodsAndServicesSold": 74525000000,
"us-gaap:GrossProfit": 69231000000,
"us-gaap:OperatingIncomeLoss": 50852000000,
"us-gaap:NetIncomeLoss": 42097000000,
"aapl:CashCashEquivalentsAndMarketableSecurities": 144795000000,
"aapl:ProductsAndServicesSegmentMember": /* ... */
// 100+ raw concept facts, including aapl: extensions
}
}
]Notice the aapl:CashCashEquivalentsAndMarketableSecurities line. That is not a GAAP concept — it's an Apple-specific extension. On Alpha Vantage that fact does not exist. On StockFit you can pin a screen, an audit, or a forensic accounting check to it directly.
And for the cases where you do want the curated, cross-issuer-consistent shape, you call /api/financials/income-statement and get the same numbers under stable canonical field names. Both views are first-class. You don't pick one and live with it.
3. SEC filings: zero on one side, eleven on the other
Alpha Vantage's coverage of SEC filings is straightforward to summarize: it does not have any. There is no 10-K endpoint, no 10-Q endpoint, no 8-K endpoint, no DEF 14A, no S-1, no 13F, no Schedule 13D/G, no Form 4 documents, no XBRL pass-through, no filings calendar, no accession-number lookup. The closest thing is a CIK field inside OVERVIEW so you can go to EDGAR yourself.
StockFit's filings family is eleven endpoints:
| Endpoint | What it does |
|---|---|
| /api/filings | Search filings by form type, 8-K event, date range, paginated. |
| /api/filings/document | Serve the raw HTML/XML/PDF/TXT document directly. CDN-cached for 1 year — no SEC EDGAR rate-limiting on your end. |
| /api/filings/search-by-accession-number | Lookup any filing by accession number. |
| /api/filings/latest | Market-wide feed of the most recent filings, filterable by type/event. |
| /api/filings/calendar | Predicted 10-K, 10-Q, DEF 14A filing dates with confidence levels. |
| /api/filings/stats | Aggregate filing counts and historical filing frequency. |
| /api/filings/timeline | 10 most recent filings + predicted future dates + next earnings call in one call. |
| /api/filings/offering | Full historical S-1 / IPO registration record for a company. |
| /api/filings/recent-offerings | Cross-company feed of recent S-1 / IPO filings with pricing where available. |
| /api/filings/item-list | Available extracted items in a filing (Risk Factors, MD&A, Cybersecurity, etc.). |
| /api/filings/item | Extract one specific item (e.g. 10-K Item 1A — Risk Factors) as HTML or plain text. |
4. Who owns it, who's trading it, who runs it
Beyond the income statement, the next-most-asked-for fundamentals data lives in the ownership and governance disclosures. This is where the gap is most extreme.
Insider transactions
Alpha Vantage's INSIDER_TRANSACTIONS returns Form 4 transactions as a flat list with eight fields: date, ticker, executive, title, security type, A/D flag, shares, share price. That's it. No deduplication across co-filers, no rolled-up summary, no per-insider history view, no chart.
StockFit ships five views over the same Form 3/4/5 data. The most useful for screens is /api/insider-transactions/summary — rolling 3, 6, and 12-month buy/sell counts and dollar volumes in a single call. Real response for AAPL:
{
"symbol": "AAPL",
"summary": {
"3m": { "buys": 0, "sells": 6, "buyValue": 0, "sellValue": 9214563, "netShares": -28194 },
"6m": { "buys": 1, "sells": 14, "buyValue": 12500, "sellValue": 41280977, "netShares": -158244 },
"12m": { "buys": 1, "sells": 31, "buyValue": 12500, "sellValue": 92540118, "netShares": -432081 }
}
}That endpoint does not exist on Alpha Vantage. Neither does by-insider, roster, or chart. To build any of them on Alpha Vantage you pull the raw transaction stream and write the aggregation yourself — against a per-minute rate limit.
Institutional & beneficial ownership
Here Alpha Vantage's coverage drops from “shallow” to nothing. The only ownership-related field anywhere in their fundamentals surface is OVERVIEW.PercentInstitutions — one aggregate percentage. There is no list of holders, no 13F integration, no Schedule 13D/G data, no share-class breakdown, no manager portfolio view.
StockFit ships eight ownership endpoints powered by 13F-HR, Schedule 13D/G, and 10-K share-class disclosures:
- /api/ownership/institutional-holders — current 13F holders with shares, value, % of company, QoQ change
- /api/ownership/institutional-holders/history — quarterly time series of institutional ownership
- /api/ownership/institutional-holders/search — fuzzy search across managers (e.g. “Vanguard”)
- /api/ownership/portfolio — full portfolio of any manager by CIK
- /api/ownership/beneficial-owners — >5% holders from Schedule 13D/G with activist flag
- /api/ownership/beneficial-owners/history — full 13D/G filing history
- /api/ownership/share-classes — Class A/B/C breakdown from latest 10-K/10-Q
- /api/ownership/summary — top 10 institutionals + counts in one call
Executives & governance
Alpha Vantage exposes executive data only as free-text executive and executive_title columns on insider rows. There is no officer roster, no compensation, no governance metric, no performance measure breakdown.
StockFit pulls four endpoints out of the SEC's XBRL-tagged DEF 14A proxy statements (mandatory in structured form since FY 2022): /api/executives/officers, /api/executives/compensation (with the SEC-mandated pay-vs-performance table), /api/executives/governance, and /api/executives/performance-measures. Sample of the pay-vs-performance output:
{
"symbol": "AAPL",
"rows": [
{
"fiscalYear": 2024,
"ceo": "Timothy D. Cook",
"ceoSCT": 74610423,
"ceoCAP": 63209845,
"neoAvgSCT": 27246915,
"neoAvgCAP": 24180102,
"tsrCompany": 170.09,
"tsrPeerGroup": 160.43,
"netIncome": 93736000000,
"companyMetric": "Operating Income"
}
]
}SCT = Summary Compensation Table; CAP = Compensation Actually Paid (the SEC's realized-pay measure introduced in 2022). On Alpha Vantage that table is unreachable.
5. ETFs: one snapshot vs. the whole filing universe
Alpha Vantage's ETF coverage is a single endpoint: ETF_PROFILE. It returns net assets, expense ratio, dividend yield, inception date, a leveraged flag, an 11-row sector list, and a ~125-row holdings list. Exhaustive list. No country breakdown, no flows, no fee analysis beyond the headline expense ratio, no holdings history, no overlap, no fund-fund relationships, no service providers, no reverse lookup.
StockFit's fund family is eighteen endpoints, sourced from N-PORT-P (monthly holdings), N-CSR (annual reports), N-CEN (annual census), and prospectus N-1A. The capability gap by row:
| Capability | StockFit API | Alpha Vantage |
|---|---|---|
| Holdings (current) | /api/fund/holdings | ETF_PROFILE.holdings |
| Holdings history | /api/fund/holdings (date range) | ✗ |
| Quarterly flows in/out | /api/fund/flows | ✗ |
| Fee breakdown (waivers, brokerage) | /api/fund/fee-analysis | Expense ratio only |
| Country / region exposure | /api/fund/chart/countries | ✗ |
| Industry-group exposure | /api/fund/chart/industry-groups | ✗ |
| ETF-vs-ETF overlap | /api/fund/overlap | ✗ |
| Holdings changes between filings | /api/fund/changes | ✗ |
| Reverse lookup (which funds hold AAPL?) | /api/fund/reverse-lookup | ✗ |
| Exposure model (look-through) | /api/fund/exposure-model | ✗ |
| Service providers (custodian, auditor, AP) | /api/fund/service-providers | ✗ |
| Fund health flags | /api/fund/fund-health | ✗ |
For a worked walk-through of the fund stack on a real ETF, see A Deep Lens on Any ETF.
6. Pricing & rate limits
This is the section where Alpha Vantage looks most competitive on paper, and where the real-world workflow pulls the rug back out.
Alpha Vantage's premium pricing: $49.99/mo for 75 RPM, $99.99 for 150, $149.99 for 300, $199.99 for 600, $249.99 for 1200. All paid tiers advertise “no daily limits.” The free tier is 25 requests/day, tightened from 500/day in 2024. Every fundamentals call is one symbol per request — there is no batch parameter on any of OVERVIEW, INCOME_STATEMENT, BALANCE_SHEET, CASH_FLOW, EARNINGS, INSIDER_TRANSACTIONS, DIVIDENDS, SPLITS, or ETF_PROFILE.
Practical consequence: at the $49.99 tier (75 RPM), pulling all four statements (income / balance / cash flow / earnings) for the S&P 500 is 500 × 4 / 75 = ~27 minutes at the rate cap, plus retries. For the Russell 3000 it's closer to three hours. Per refresh.
StockFit takes a different shape: subscription tiers gate endpoints and history depth rather than per-minute call rates, and bulk lookups are first-class — /api/company/details-batch and /api/lookup/batch accept up to 50 symbols in one call. Same S&P 500 refresh shape becomes 500 / 50 = 10 batched calls per area. Full breakdown on the pricing page.
| Capability | StockFit API | Alpha Vantage |
|---|---|---|
| Free tier | Free plan, no credit card. Includes the standardized statements, earnings history, lookups, ETF profile + holdings, and filings document access. Sign up at /signup. | 25 requests/day across all endpoints (combined). |
| Entry paid plan | $15/mo Starter — growth metrics, trends, key metrics, scoring. | $49.99/mo for 75 RPM, no daily cap. |
| Mid plan | $39/mo Stock or ETF — pick stock or fund focus, all related endpoints unlocked. | $99.99–$149.99/mo for 150–300 RPM. |
| Top published plan | $69/mo Professional — everything: filings calendar, exec comp, ownership, fund exposure model, 80 quarters of history. | $249.99/mo for 1200 RPM. Same endpoint surface as the entry tier. |
| Batch fundamentals | Up to 50 symbols per call via /api/company/details-batch and /api/lookup/batch. | Not offered. One symbol per call across every fundamentals function. |
EARNINGS endpoint goes back ~30 years on mature names with a full EPS-vs-estimate-vs-surprise stack, which is deeper than most peers. (2) The $49.99/mo entry is a low number to compete with on raw price. (3) The free tier exists at all, even if 25/day is a tight ceiling. If your only fundamentals need is the big-three statements at low cost and you don't mind paging through one symbol at a time, Alpha Vantage will work.Try it yourself
Two terminal commands, two responses, side by side. Pick the one that ships the data you actually need.
# Alpha Vantage: standardized income statement, IBM
curl "https://www.alphavantage.co/query?\
function=INCOME_STATEMENT&symbol=IBM&apikey=demo"
# StockFit: same, plus filing date + fiscal metadata + TTM available
curl -H "Authorization: Bearer $KEY" \
"https://api.stockfit.io/v1/api/financials/income-statement?\
symbol=IBM&period=quarter&limit=40"
# StockFit: raw XBRL fact tree including company-specific extensions
curl -H "Authorization: Bearer $KEY" \
"https://api.stockfit.io/v1/api/financials/as-reported?\
symbol=AAPL&period=quarter&limit=4"
# StockFit: insider trading 12-month sentiment summary
curl -H "Authorization: Bearer $KEY" \
"https://api.stockfit.io/v1/api/insider-transactions/summary?\
symbol=AAPL"When to pick which
Pick Alpha Vantage if
- Your need is a quick standardized income / balance / cash flow snapshot at low cost.
- You're wiring up a hobby project, a class assignment, or an exploratory notebook.
- Your fundamentals appetite stops at the big-three statements and a basic earnings history.
Pick StockFit if
- You're building a backtest, screen, or factor model and need filing dates that don't leak look-ahead bias.
- You need the raw XBRL fact tree — including company-specific extensions Alpha Vantage normalizes away.
- Your work touches SEC filings directly — 10-K text, 8-K event search, S-1 monitoring, item-level extraction for an LLM.
- You analyze ownership flows, insider sentiment, or executive comp as signal.
- You build on ETFs and mutual funds — flows, overlap, exposure, fee structure, look-through.
- You want batch lookups instead of per-symbol round trips against a per-minute rate cap.
- You want an AI-native developer surface — the same key works as an MCP tool inside Claude, Cursor, or VS Code via /mcp.
Closing
Alpha Vantage is a tidy fundamentals snapshot service with a low entry price. StockFit is a working SEC EDGAR back-end — the filings, the raw XBRL, the ownership and exec layer, the fund analytics, and the standardized statements on top of all of it. For anyone whose fundamentals work goes one click deeper than the income statement, the depth gap is the whole story.
Run the comparison yourself: pick a ticker, hit any endpoint mentioned above against the free playground, then run the equivalent function= on Alpha Vantage. The two responses tell the rest.
Ready to build?
Free API key, no credit card. Every endpoint mentioned in this post is available on the free tier.
Get Your Free API Key