---
title: "EvidInvest financial data API and MCP server for developers"
description: "REST API and MCP server with 59 tools over SEC-filed fundamentals back to 1985, valuation models, cited filing search and supply-chain facts. Usage is metered against prepaid credits."
canonical: https://evidinvest.com/developers
last_updated: "2026-09-16"
---

# Financial data API and MCP server

> SEC-filed financial statements back to fiscal 1985, cited filing and earnings-transcript
> search, valuation models and supply-chain facts read out of 10-K text — over REST or MCP,
> 59 tools, one credit balance for both.
> Canonical page: https://evidinvest.com/developers. Free to start, from $10, no subscription.

EvidInvest is an independent research and information tool, not a financial-services provider. All content is general information for educational purposes — never investment advice or a personal recommendation. Figures are from public filings and are for research only; investing carries risk. Always do your own research and verify figures against primary sources.

## The contract

| Field | Value |
| --- | --- |
| REST base URL | https://mcp.evidinvest.com/v1/tools/{tool_name} (POST, JSON) |
| OpenAPI 3.1 schema | https://mcp.evidinvest.com/v1/openapi.json |
| MCP endpoint (Streamable HTTP) | https://mcp.evidinvest.com/mcp |
| MCP server card | https://mcp.evidinvest.com/.well-known/mcp/server-card.json |
| Auth | Authorization: Bearer <API key>, or OAuth 2.1 in the browser for MCP clients |
| Tools | 59 over MCP; the REST catalogue below is the same set minus the MCP-only tools |
| npm package | https://www.npmjs.com/package/@evidinvest/mcp-server |

## Quickstart

### REST

```bash
curl -s https://mcp.evidinvest.com/v1/tools/get_income_statement \
  -H "Authorization: Bearer $EVIDINVEST_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"arguments":{"symbol":"AAPL","period":"annual"}}'
```

A response, trimmed to the latest fiscal year (the call returns four):

```json
{
  "result": {
    "symbol": "AAPL",
    "period": "annual",
    "periods_returned": 4,
    "latest": {
      "date": "2025-09-27",
      "revenue": 416161000000,
      "net_income": 112010000000,
      "eps": 7.49,
      "epsdiluted": 7.46,
      "gross_margin_pct": 47,
      "operating_margin_pct": 32,
      "net_margin_pct": 27
    },
    "periods": [
      {
        "date": "2025-09-27",
        "revenue": 416161000000,
        "operating_income": 133050000000,
        "net_income": 112010000000,
        "eps_diluted": 7.46,
        "filing_date": "2025-10-31",
        "accession": "0000320193-25-000079",
        "source_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019325000079/0000320193-25-000079-index.htm"
      }
    ],
    "attribution": { "fundamentals": "EvidInvest financial statements; SEC EDGAR-linked from fiscal 2009" }
  }
}
```

### Python

```python
import os, requests

r = requests.post(
    "https://mcp.evidinvest.com/v1/tools/get_income_statement",
    headers={"Authorization": f"Bearer {os.environ['EVIDINVEST_API_KEY']}"},
    json={"arguments": {"symbol": "NVDA", "period": "annual"}},
    timeout=30,
)
r.raise_for_status()
data = r.json()["result"]      # metered against your credit balance; HTTP 402 when it is 0
```

### MCP, from Claude Code

```bash
claude mcp add --transport http evidinvest https://mcp.evidinvest.com/mcp \
  --header "Authorization: Bearer YOUR_API_KEY"
```

### MCP, from any client with an `mcpServers` config

```json
{
  "mcpServers": {
    "evidinvest": {
      "type": "streamable-http",
      "url": "https://mcp.evidinvest.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}
```

## Coverage and limits

| Figure | What it means |
| --- | --- |
| 1985 → | Annual and quarterly statements; 30+ years on file for 5,000+ companies |
| 2009 → | Every row links to its SEC filing, with first-disclosure dates |
| 10-K 10-Q 20-F 40-F | Filing types behind the statements, incl. IFRS filers |
| 6,500+ · 40,000+ | US-listed symbols with Cboe daily price history back to 2004; plus companies on non-US exchanges — standardized by EvidInvest, end-of-day |
| 15 min | Price delay (Cboe). Every price-bearing response says so |
| Prev. close | Options positioning: previous trading session only, OPRA historical data |
| 04:00 UTC | Nightly refresh of statements, prices and models |
| 60 / min | Requests per minute per API key |

## Tool catalogue (59)

### Financial statements

- `get_company_profile` — Sector, market cap, description
- `get_income_statement` — Revenue, net income, EPS, margins
- `get_balance_sheet` — Assets, liabilities, equity, debt
- `get_cash_flow` — Operating, investing, financing
- `get_growth_rates` — Revenue, EPS, FCF growth, 1–10 yr
- `get_pe_ratios` — PE history with statistical bands
- `get_segment_revenue` — Product and segment revenue, 10-K/10-Q
- `get_geographic_revenue` — Revenue by geography, 10-K/10-Q
- `get_major_customers` — Customers over 10% of revenue, 10-K

### Filing search

- `search_sec_filings` — Filings, 8-K press exhibits and call transcripts in one auto-routed search, with accession-numbered citations and sec.gov URLs
- `search_earnings_transcripts` — Verbatim call and 8-K EX-99 press-exhibit quotes with speaker and date

### Market data

- `get_current_price` — Latest price, Cboe 15-min delayed
- `get_historical_prices` — Daily OHLCV
- `get_enterprise_value` — EV and capital structure
- `get_company_peers` — Comparable companies
- `get_trading_multiples` — PE, PB, PS, EV/EBITDA
- `get_peer_multiples` — Multiples for the peer set
- `get_industry_multiples` — Sector and industry medians

### Valuation

- `get_fair_value_range` — Bear / base / bull from DCF, sector PE, PEG
- `get_dcf_valuation` — Full DCF with assumptions
- `get_reverse_dcf` — Growth implied by the current price
- `get_company_snapshot` — Key metrics in one call
- `get_valuation_metric` — One metric with context
- `compare_stocks` — Side-by-side comparison
- `get_cagr_matrix` — Multi-period CAGR matrix
- `get_growth_trajectory` — EPS trajectory and two-stage DCF range
- `run_valuation` — Seven methods on your assumptions, with a bear/base/bull range
- `get_implied_assumptions` — The growth and margin inputs that reconcile each method to today’s price
- `get_valuation_parameters` — Every method’s parameters, ranges and filed defaults
- `save_valuation` — Save a named scenario to your history
- `list_saved_valuations` — Your saved scenarios, by symbol, method or date
- `get_saved_valuation` — One saved scenario with its full assumptions
- `delete_saved_valuation` — Remove one saved scenario — yours only, and it says what it removed

### Calculations

- `calculate_wacc` — Weighted average cost of capital
- `calculate_dcf` — Discounted cash flow
- `calculate_margin_of_safety` — Difference between a computed value and the current price, on your own assumptions
- `calculate_comparables` — Relative valuation from peers
- `calculate_ddm` — Dividend discount model

### SEC supply chain and risk

- `sec_get_profile` — Products, customers, suppliers, moat from the 10-K
- `sec_get_supply_chain` — Supplier / customer edges with the filing quote that proves each
- `sec_get_risks` — Item 1A risk excerpts, verbatim
- `sec_find_chokepoints` — Single points of failure in a supply chain
- `sec_search` — Search the supply-chain graph
- `sec_compare` — Two companies side by side

### Thesis monitoring and options

- `create_thesis` — Write a thesis in your own words
- `check_thesis` — Check it against each new filing
- `list_theses` — Your saved theses
- `set_thesis_alerts` — Alert when a filing moves one
- `get_options_positioning` — Open interest and flow, delayed

### Portfolio

- `optimize_portfolio` — Max Sharpe / min variance
- `portfolio_risk_decomposition` — VaR, CVaR, per-position risk

### Your lists

- `list_user_stock_lists` — Your watchlists and lists
- `create_user_stock_list` — Create a list
- `add_symbols_to_user_list` — Add symbols
- `remove_symbols_from_user_list` — Remove symbols
- `set_user_list_watched` — Toggle watchlist alerts
- `get_list_items` — Symbols in a list
- `get_watchlist_status` — Watch status for symbols
- `delete_user_stock_list` — Delete a list

## What it costs

| Pack | Price (USD) | Credits |
| --- | --- | --- |
| Starter | $10 | 360 credits |
| Plus | $20 | 720 credits |
| Pro | $59 | 2,000 credits |

One balance per account, spent by the website, the REST API and the MCP server alike. Credits never expire and there is nothing to cancel.

## How the entry price compares

| Provider | Entry price | What that buys | For a one-off project | Commitment |
| --- | --- | --- | --- | --- |
| EvidInvest | Credits from $10 — the same packs as the site | Prepaid credits, metered by usage — no per-seat fee | A credit pack, kept until you use it | None. Credits never expire. |
| FMP Starter | ~$22 / month | flat monthly | Nothing — the cheapest plan is $22/month | Monthly, auto-renews |
| Massive (formerly Polygon) Starter | ~$29 / month per asset class | flat monthly | Nothing — the cheapest plan is $29/month; 20+ years of history starts at $199/month | Monthly, auto-renews |
| Alpha Vantage Premium | ~$50 / month | flat monthly | Nothing — the cheapest plan is $50/month | Monthly, auto-renews |
| sec-api.io | ~$49 / month | flat monthly | Nothing — the cheapest plan is $49/month | Billed annually |

## FAQ

### What is free, and what costs credits?

The website is free. Your first API key starts with a free allowance, once per account, no card. After that, usage is metered against the same credit balance as the site — prepaid credits, from $10, metered by usage over both REST and MCP. Connecting your own model draws far less than an AI analysis on the site, which spends credits by the tokens it uses. Credits never expire and there is nothing to cancel.

### Rate limits?

60 requests per minute per API key. When your balance hits 0 the API returns HTTP 402 with a top-up link; nothing is charged for the refused call.

### REST or MCP — does billing differ?

No. Same key, same 59 tools, same credit balance over either transport. Use REST from scripts and pipelines, MCP from Claude, Cursor or any MCP client.

### Where does the data come from, and can I show it to users?

For US listings, fundamentals are extracted from SEC EDGAR filings (10-K, 10-Q, 20-F, 40-F), which are public records, and prices are Cboe, delayed 15 minutes. The 40,000+ listings outside the US on 60+ exchanges have no SEC filing behind them: those fundamentals are EvidInvest-standardized and their prices are end-of-day. Every price-bearing response carries an attribution field naming the source and the delay — keep both if you display prices.

### How would I know a number is right?

search_sec_filings, search_earnings_transcripts and the sec_* tools return the filing text with accession numbers and sec.gov URLs, so you can check the passage yourself. Valuation tools return every method, the assumptions it ran on and the filing behind them, not a single number.

## Related pages

- MCP server page, endpoint and every tool name: https://evidinvest.com/mcp (Markdown: https://evidinvest.com/mcp.md)
- Pricing: https://evidinvest.com/pricing (Markdown: https://evidinvest.com/pricing.md)
- Financial data APIs compared, dated and sourced: https://evidinvest.com/compare/financial-data-apis
- Alternatives to specific named tools: https://evidinvest.com/alternatives
- Reverse DCF, worked from a filed 10-K: https://evidinvest.com/tools/reverse-dcf

Research and data software, never investment advice.

## Sitemap

See the full [sitemap](https://evidinvest.com/sitemap.md) for every page on this site,
the [index for language models](https://evidinvest.com/llms.txt), and the
[glossary](https://evidinvest.com/learn/glossary) for the terms used above.
