Balance Proof

Reconciled SEC filings. Every number traceable.

Documentation

  • A = L + E checked where the filing reports the lines needed
  • As filed each figure with the SEC filing it came from
  • The reason when a sheet doesn't balance, the response says why
  • 1,000 free calls a month, no card

A balance sheet that doesn’t add up still loads without an error.

995 of 38,568

SEC filings failed our balance sheet check on 2026-10-09. In 971 of them a line item did not reach us. Read the study

Assets equal liabilities plus equity. Or we say why not.

Apple 10-Q, period ended 2026-06-27, filed 2026-07-31

$383.3B Total assets = $275.7B Liabilities + $107.5B Equity

"identity_status": "balanced"

Balanced, as filed. Both sides are the same money, counted twice.

Artius II Acquisition Inc. 10-Q, period ended 2026-06-30, filed 2026-08-05

$232M Total assets ≠ $17M Liabilities + -$17M Equity

"identity_status": "missing_tag"

Flagged, with the reason. The filer's own stated total for liabilities plus equity equals its total assets, so the filing balances as reported; the shortfall is in what this dataset read, not in the filing.

check_balance_sheet tests assets = liabilities + equity. Two real responses, captured from production 2026-10-19. No predictions, no scores, no recommendations. Nothing estimated: where a company doesn’t report a line, the response says so rather than showing zero. How the check works · Methodology

6,256 companies covered. On 2026-11-09 (UTC), across the latest balance sheet of each: 5,842 could be tested, 5,645 reconcile and 197 are flagged with a reason.

One call. The figures, the check and the filing.

REST, the Python client or an MCP server for your assistant. API reference · Python · MCP

Request Copy

# No key needed for the demo endpoint
curl https://balanceproof.dev/api/demo/AAPL

# Your own key opens the full API
curl -H "X-API-Key: YOUR_KEY" https://balanceproof.dev/api/company/AAPL

Response real, for AAPL · scrolls

{
  "ticker": "AAPL",
  "company_name": "Apple Inc.",
  "period_end": "2026-09-26",
  "filing_date": "2026-11-03",
  "assets": {
    "total_assets": {
      "concept": "total_assets",
      "value": 404548000000.0,
      "period_end": "2026-09-26",
      "filing_date": "2026-11-03",
      "missing": false,
      "restated": false
    }
  },
  "liabilities": {
    "total_liabilities": {
      "concept": "total_liabilities",
      "value": 292455000000.0,
      "period_end": "2026-09-26",
      "filing_date": "2026-11-03",
      "missing": false,
      "restated": false
    },
    "liabilities_and_equity": {
      "concept": "liabilities_and_equity",
      "value": 404548000000.0,
      "period_end": "2026-09-26",
      "filing_date": "2026-11-03",
      "missing": false,
      "restated": false
    }
  },
  "equity": {
    "shareholders_equity": {
      "concept": "shareholders_equity",
      "value": 112093000000.0,
      "period_end": "2026-09-26",
      "filing_date": "2026-11-03",
      "missing": false,
      "restated": false
    }
  },
  "data_quality_issues": [],
  "source": "SEC Financial Statement Data Sets (as reported)"
}

Trimmed to 4 of the 26 line items, the ones the check uses. The whole answer is /api/demo/AAPL.

Request Copy

# No key needed for the demo endpoint
curl.exe https://balanceproof.dev/api/demo/AAPL

# Your own key opens the full API
curl.exe -H "X-API-Key: YOUR_KEY" https://balanceproof.dev/api/company/AAPL

# Or PowerShell's own command, no curl.exe needed
Invoke-RestMethod -Uri https://balanceproof.dev/api/company/AAPL -Headers @{"X-API-Key"="YOUR_KEY"}

Response real, for AAPL · scrolls

{
  "ticker": "AAPL",
  "company_name": "Apple Inc.",
  "period_end": "2026-09-26",
  "filing_date": "2026-11-03",
  "assets": {
    "total_assets": {
      "concept": "total_assets",
      "value": 404548000000.0,
      "period_end": "2026-09-26",
      "filing_date": "2026-11-03",
      "missing": false,
      "restated": false
    }
  },
  "liabilities": {
    "total_liabilities": {
      "concept": "total_liabilities",
      "value": 292455000000.0,
      "period_end": "2026-09-26",
      "filing_date": "2026-11-03",
      "missing": false,
      "restated": false
    },
    "liabilities_and_equity": {
      "concept": "liabilities_and_equity",
      "value": 404548000000.0,
      "period_end": "2026-09-26",
      "filing_date": "2026-11-03",
      "missing": false,
      "restated": false
    }
  },
  "equity": {
    "shareholders_equity": {
      "concept": "shareholders_equity",
      "value": 112093000000.0,
      "period_end": "2026-09-26",
      "filing_date": "2026-11-03",
      "missing": false,
      "restated": false
    }
  },
  "data_quality_issues": [],
  "source": "SEC Financial Statement Data Sets (as reported)"
}

In Windows PowerShell, plain curl is an alias for Invoke-WebRequest and will not take these flags; curl.exe is the real curl that ships with Windows 10 and 11.

Request Copy

import requests

r = requests.get("https://balanceproof.dev/api/demo/AAPL", timeout=30)
r.raise_for_status()
sheet = r.json()
print(sheet["company_name"], sheet["assets"]["total_assets"]["value"])

# With your key, the full API:
# requests.get("https://balanceproof.dev/api/company/AAPL",
#              headers={"X-API-Key": "YOUR_KEY"}, timeout=30)

Output real, for AAPL

Apple Inc. 404548000000.0

Needs pip install requests and nothing else. There is also a client: pip install balanceproof.

Request Copy

claude mcp add --transport http balanceproof https://balanceproof.dev/mcp

# Then ask: Does Apple Inc.'s latest balance sheet balance?

Response what the model is handed

Apple Inc. (AAPL) balances for the period ending 2026-09-26: assets equal liabilities plus equity within tolerance.
Total assets $404.55B ($404,548,000,000). Total liabilities $292.45B ($292,455,000,000). Shareholders' equity $112.09B ($112,093,000,000).
Not every component was reported: Goodwill

{
  "ticker": "AAPL",
  "period_end": "2026-09-26",
  "balances": true,
  "identity_basis": "as_filed",
  "imbalance_pct": 0.0,
  "total_assets": 404548000000.0,
  "total_liabilities": 292455000000.0,
  "total_equity": 112093000000.0
}

Claude Code, Cursor and other MCP clients take the same URL. Setup for each client.

Live demo

The real endpoint, the real data, no key needed. Generous: plenty to evaluate with. A free key gives you more.

Want the drawing instead of the JSON? Browse every company.

Pricing

Yearly: save $98 on Pro

Prices in Canadian dollars (CAD), plus applicable taxes. Every plan, side by side

Free

$0

No card, no password.

1,000 calls a month

  • Balance sheet, income statement and cash flow, each period checked when the filing reports the lines (otherwise not_testable)
  • 1 year of history
  • MCP server for Claude, ChatGPT and Cursor

Pro

$49 /month

Billed monthly. Cancel any time.

10,000 calls a month

  • Everything in Free
  • Point-in-time figures for backtests (as_of)
  • Feed of failed checks, last 90 days
  • Check 50 companies in one request

Business

$99 /month

Billed monthly. Cancel any time.

50,000 calls a month

  • Everything in Pro
  • Webhooks into your systems (5 endpoints)
  • SEC filing link on every balance sheet

Enterprise

Custom

Volume and terms set with you.

A call quota set to what you use

  • Every paid-plan feature, plus the dataset
  • Invoicing and a signed agreement

Data is for informational purposes only. Not financial advice.

Balance sheets that prove they balance.

Call it and compare the response with EDGAR. When a statement can't be tested, the API returns the reason instead of adjusting the numbers. Free tier: 1,000 calls a month, no card.

By getting a key you accept the Terms and Privacy Policy.