StockFit vs Alpha Vantage: Fundamentals APIs
StockFit API vs. Alpha Vantage for fundamentals: a side-by-side look at standardized statements, raw XBRL, filings access, insider data, ETFs, and pricing.

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. Both sides last checked on October 23, 2026. If we have a fact wrong, tell us.The surface, in one table
Alpha Vantage's Fundamental Data section is fourteen function= calls; insider transactions, institutional holdings and earnings call transcripts sit in its separate Alpha Intelligence section. 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 with annual, quarter, and ttm periods, plus 4 chart endpoints (annual and quarter) | 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 | 11 endpoints: EPS and dividend history, snapshot, trends, earnings and dividend date prediction, calendar, upcoming earnings and dividends, quality chart, EPS chart — full earnings calendar API workflow | 4 endpoints: EARNINGS (history), EARNINGS_ESTIMATES, EARNINGS_CALENDAR and EARNINGS_CALL_TRANSCRIPT |
| Financial scoring & key metrics | Piotroski F-score, Altman Z-score, sector-aware key metrics, growth rates — scores, key-metrics, growth | No F-score or Z-score; a one-row ratio snapshot in OVERVIEW, now a premium function |
| SEC filings & documents | 10 endpoints (search, item-level text 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 | 1 endpoint: INSTITUTIONAL_HOLDINGS (each 13F holder's latest position, no history); no 13D/13G |
| Executives, comp & governance | 4 endpoints: officers, pay-vs-performance, governance flags, performance measures (from XBRL DEF 14A) | None |
| ETF / fund analytics | 22 endpoints: quarterly and daily 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 and prior tickers, batch lookup | SYMBOL_SEARCH (keyword) and LISTING_STATUS (CSV); no CIK, CUSIP or FIGI lookup |
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 and ~80 quarterlies, both back to 2006, ~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",
"grossProfit": "35551000000",
"totalRevenue": "62753000000",
"costOfRevenue": "27201000000",
"operatingIncome": "10074000000",
"sellingGeneralAndAdministrative": "16737000000",
"researchAndDevelopment": "7479000000",
"netIncome": "6023000000"
// ... 17 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-25",
"acceptedAt": "2025-02-25T21:12:45Z",
"facts": {
"revenue": 62753000000,
"costOfRevenue": 27201000000,
"grossProfit": 35551000000,
"operatingIncome": 8384000000,
"netIncome": 6023000000,
"eps": 6.53,
"epsDiluted": 6.43
// ~20 more typed fields
},
"sources": {
"0000051143-25-000015": {
"type": "10-K",
"dateFiled": "2025-02-25",
"acceptedAt": "2025-02-25T21:12:45Z",
"amendment": false,
"facts": { "revenue": {}, "costOfRevenue": {}, "grossProfit": {}, "netIncome": {}, "eps": {}, "epsDiluted": {} }
}
},
"derived": ["operatingIncome"] // trimmed
}
]Revenue, cost of revenue and gross profit agree. Where the two responses disagree, StockFit's values are the ones IBM tagged in its FY2024 10-K (accession 0000051143-25-000015): us-gaap:SellingGeneralAndAdministrativeExpense of $19.688 billion, where Alpha Vantage returns $16.737 billion. IBM tags no operating income line, so StockFit computes operatingIncome as gross profit minus SG&A and R&D ($7.479 billion), $8.384 billion, and says so in derived instead of passing it off as a filed fact. Alpha Vantage's $10.074 billion is a computed figure too, built on its lower SG&A, and nothing in its response says so.
Three differences that look small but compound across any non-trivial workload:
- Filing date. StockFit returns
dateFiled, the original 10-K/10-Q filing date rather than the amendment date, andacceptedAt, the exact second SEC EDGAR accepted that filing (IBM's FY2024 10-K: 4:12 p.m. New York time, after the close). Alpha Vantage's statements carry the fiscal period end and nothing about when the filing hit EDGAR; itsEARNINGSendpoint has the earnings announcement date, not the filing. 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 documentation is upfront about what its statement data actually is: “normalized fields mapped to GAAP and IFRS taxonomies of the SEC.” When a company doesn't report a field, its taxonomy notes say “we attempt to use a taxonomy to imply the missing field.” There is no exit hatch — you cannot ask for the raw fact, only the normalized output.
ibm:IntellectualPropertyAndCustomDevelopmentIncome line on the face of IBM's income statement, Alpha Vantage will not return it. The data is permanently cropped to the normalized schema.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
// 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, ten on the other
Alpha Vantage's coverage of SEC filings is straightforward to summarize: it does not have any. There is no endpoint for 10-K, 10-Q, 8-K, DEF 14A, S-1, 13F, Schedule 13D/G or Form 4 filings, 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 ten endpoints:
| Endpoint | What it does |
|---|---|
| /api/filings | Search filings by form type, 8-K event, date range, paginated. |
| /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. See our S-1 IPO filing data API guide. |
| /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, an acquisition/disposal field, shares, share price. That's it: no filing date, no accession number, 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. Response for AAPL, captured October 23, 2026 (dollar values rounded to cents):
{
"3months": { "buyCount": 0, "sellCount": 31, "buyShares": 0, "sellShares": 286853, "buyValue": 0, "sellValue": 95477077.12, "netShares": -286853, "uniqueBuyers": 0, "uniqueSellers": 6 },
"6months": { "buyCount": 0, "sellCount": 37, "buyShares": 0, "sellShares": 589777, "buyValue": 0, "sellValue": 183043345.67, "netShares": -589777, "uniqueBuyers": 0, "uniqueSellers": 7 },
"12months": { "buyCount": 0, "sellCount": 46, "buyShares": 0, "sellShares": 688480, "buyValue": 0, "sellValue": 208234073.40, "netShares": -688480, "uniqueBuyers": 0, "uniqueSellers": 8 }
}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
Alpha Vantage has one endpoint here, INSTITUTIONAL_HOLDINGS: for a single stock, each 13F holder's latest position (name, shares, change, last-reported date) plus totals. It takes no date, so there is no history, and each row carries its holder's own report date, so one list mixes quarters. For IBM it returned 3,116 holders as of June 30, 2026, 671 as of September 30, 2026, and 108 older ones. There is no holder CIK, no position value, no accession number, no Schedule 13D/G data, no share-class breakdown, and 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. The pay-vs-performance output for AAPL, captured October 23, 2026 (the two latest of five years):
[
{
"fiscalYear": 2025,
"ceoTotalComp": 74294811,
"ceoActuallyPaidComp": 108423733,
"avgOfficerTotalComp": 23812358,
"avgOfficerActuallyPaidComp": 34125743,
"companyTsr": 233.88,
"peerGroupTsr": 279.51
},
{
"fiscalYear": 2024,
"ceoTotalComp": 74609802,
"ceoActuallyPaidComp": 168980568,
"avgOfficerTotalComp": 27178896,
"avgOfficerActuallyPaidComp": 58633525,
"companyTsr": 207.59,
"peerGroupTsr": 198.69
}
]ceoTotalComp is the Summary Compensation Table total; ceoActuallyPaidComp is 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, portfolio turnover, dividend yield, inception date, a leveraged flag, an 11-row sector list, and a holdings list of symbol, description and weight (103 rows for QQQ). That is the whole response. 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 twenty-two endpoints, sourced from N-PORT-P (quarterly holdings), N-CSR (annual reports), N-CEN (annual census), prospectus N-1A, and daily holdings published on fund websites. 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 2023. 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 plans gate endpoints and history depth, and the rate cap is not the bottleneck: the $19/mo Starter plan allows 300 requests per minute and 20,000 per day, so the same 2,000-call S&P 500 refresh takes about 2,000 / 300 = ~7 minutes. Statements are one symbol per call on both APIs; StockFit also batches lookups and company details at up to 50 symbols per call (/api/lookup/batch, /api/company/details-batch). Full breakdown on the pricing page.
| Capability | StockFit API | Alpha Vantage |
|---|---|---|
| Free tier | Free plan, no credit card: 300 requests/day. Standardized statements and as-reported XBRL for the latest year, EPS and dividend history, lookups, fund profiles, and filing search. Sign up at . | 25 requests/day across all endpoints (combined); OVERVIEW is premium. |
| Entry paid plan | Starter, $19/mo or $15/mo billed annually — growth, key metrics and health scores, revenue segments, fund holdings, 20,000 requests/day. | $49.99/mo for 75 RPM, no daily cap. |
| Mid plan | Stock or ETF, $59/mo or $39/mo billed annually — pick stock or fund focus, all related endpoints unlocked. | $99.99–$149.99/mo for 150–300 RPM. |
| Top published plan | Professional, $99/mo or $69/mo billed annually — 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 calls | Lookups and company details: up to 50 symbols per call via /api/lookup/batch and /api/company/details-batch (Starter and up). Statements: one symbol per call. | 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.
FAQ
Q.Does Alpha Vantage provide as-reported XBRL data?
Q.Can I access SEC filings (10-K, 10-Q, 8-K, S-1) through Alpha Vantage?
Q.Does Alpha Vantage have insider trading or institutional holdings data?
INSIDER_TRANSACTIONS (Form 4 transactions) and INSTITUTIONAL_HOLDINGS (each 13F holder's latest position in one stock, no history). It has no Schedule 13D/13G beneficial owners, no per-manager portfolios, and no accession numbers. StockFit covers all three with history, transaction-code classification and the source filing on every row, on the equities tiers.Q.Which API has cheaper pricing for fundamentals?
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. Weighing the wider field too? See our roundup of the best fundamentals APIs, or our ranking of Alpha Vantage alternatives if StockFit is not the only replacement you are considering.
Ready to build?
Free API key, no credit card.