DatavidenceFinancials

Datavidence Financials

Normalized US-GAAP financial statements for every SEC XBRL filer — point-in-time, as originally reported, and trivial to integrate.

Get an API key API Reference OpenAPI spec MCP server

What you get

Point-in-timePass as_of to get figures as originally reported on that date — no look-ahead bias in backtests.
Normalized three statementsIncome statement, balance sheet, and cash flow — mapped into one fixed JSON schema, no per-filer XBRL cleanup.
Every SEC XBRL filerThe whole SEC XBRL universe (~2009 to present), fetched and normalized on demand — any CIK with XBRL facts.
Computed ratiosMargins, ROA/ROE, and leverage with include_ratios — derived only from the statements in the same response.

Every value is also source-linked back to its SEC filing — accession, filed date, a direct EDGAR URL, and the us-gaap tag it was read from (tag order per field) — when you set include_provenance.

Use it in your AI agent (MCP)

Datavidence Financials is also a Model Context Protocol server, so LLM agents (Claude Desktop and any MCP-compatible client) can call it as tools. It’s published on the official MCP registry as ai.datavidence/datavidence-financials.

Run it — no signup

FL_API_KEY=sandbox_demo_key uvx datavidence-financials

The sandbox_demo_key returns sample data with no account — swap in your key for live data.

Claude Desktop

{
  "mcpServers": {
    "datavidence-financials": {
      "command": "uvx",
      "args": ["datavidence-financials"],
      "env": { "FL_API_KEY": "sandbox_demo_key" }
    }
  }
}

Restart Claude Desktop, then ask: “Get AAPL’s FY2023 financials with ratios.”

Tools

get_financials normalized three statements for a company & fiscal year (supports as_of, provenance, ratios).
get_financials_batch up to 25 companies in one call.
list_filings discover a company’s recent SEC filings.
get_revisions how a year’s figures changed across filings — as reported, then restated.
search_companies find a ticker & CIK by company name.
get_usage your quota — free, consumes nothing.
Source & docs: GitHub · PyPI.

Plans & API keys

Every plan gets the same data and the full API — plans differ in monthly volume, and Pro and Business also include the point-in-time bulk file. The Free plan includes 1,500 requests a month, and paid plans start at $29 a month. Keys are issued through RapidAPI. See pricing →

Base URL & authentication

https://api.financials.datavidence.ai

Authenticate with an X-API-Key header on every request. Errors use a standard { "status": "error", "error": { "code", "message" } } envelope, and every response carries X-RateLimit-Limit / Remaining / Reset.

Try it now — no signup. Use the public sandbox key sandbox_demo_key as your X-API-Key. It returns a fixed sample dataset for one example — ticker=AAPL, year=2023 (other companies or years return a SANDBOX_LIMITED error) — without consuming quota or hitting SEC, so you can wire up integration before subscribing. All parameters — as_of, include_provenance, include_ratios — work against it.

Quickstart

cURL

curl -H "X-API-Key: sandbox_demo_key" \
  "https://api.financials.datavidence.ai/v1/extract-ledger?ticker=AAPL&year=2023&include_ratios=true"

Python

import requests

BASE = "https://api.financials.datavidence.ai"
headers = {"X-API-Key": "sandbox_demo_key"}  # swap for your key

r = requests.get(
    f"{BASE}/v1/extract-ledger",
    params={"ticker": "AAPL", "year": 2023, "include_ratios": True},
    headers=headers, timeout=30,
)
r.raise_for_status()
data = r.json()["data"]
print(data["income_statement"]["total_revenue"], data["ratios"]["net_margin"])

Node.js (18+)

const BASE = "https://api.financials.datavidence.ai";
const url = new URL(BASE + "/v1/extract-ledger");
url.search = new URLSearchParams({ ticker: "AAPL", year: "2023", include_provenance: "true" });

const res = await fetch(url, { headers: { "X-API-Key": "sandbox_demo_key" } });
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const { data } = await res.json();
console.log(data.income_statement.total_revenue, data.provenance.income_statement.total_revenue.source_url);

Go

req, _ := http.NewRequest("GET",
    "https://api.financials.datavidence.ai/v1/extract-ledger?ticker=AAPL&year=2023", nil)
req.Header.Set("X-API-Key", "sandbox_demo_key")
resp, err := http.DefaultClient.Do(req)
// ... check err, resp.StatusCode, then json.Decode(resp.Body)

Endpoints

GET /v1/extract-ledger normalized three-statement financials for a fiscal year.
GET /v1/extract-ledger/batch the same for up to 25 companies in one request.
GET /v1/revisions how a fiscal year’s figures changed across filings.
GET /v1/companies find a company’s ticker and CIK by name.
GET /v1/submissions trimmed SEC submissions index (recent filings).
GET /v1/usage your current quota — free, doesn't consume a request.
Full schemas in the API reference.

Disclaimer

This API provides information derived from public SEC EDGAR filings on an “as is” and “as available” basis, for informational purposes only. It is not investment, financial, legal, tax, or accounting advice, and must not be relied upon as the basis for any trading, investment, or compliance decision. No warranty is made as to the accuracy, completeness, timeliness, or fitness for a particular purpose of any data. You are responsible for verifying figures against the original SEC filings (use the provenance source_url) and for any decisions or automated/algorithmic use, which are entirely at your own risk. Sample/sandbox data is a fixed sample with fictional identifiers, for integration testing only.