API access
The same filed figures the drawings are made from, as JSON — and the whole table as one CSV. Free to try, paid to use in bulk.
Get a key
One address, one key, no confirmation email. The free tier is 1,000 calls a calendar month.
That address already has a key. Keys are stored hashed and cannot be re-sent — a sign-in link takes you to the dashboard, where you can issue a new one.
Already have a key?
Draw a balance sheet
The same search as the front page — it opens the full drawing on that company's own page.
Or start with one of these
Company data
History and what changed for one company, or a quick check of many. What you can see depends on your plan.
Income statement and cash flow
Each period is checked when the filing reports the lines the check needs; where it does not, the check returns not_testable instead of passing. The checks: revenue minus cost of revenue against gross profit, and the cash-flow sections against the change in cash. A figure marked * is worked out from filed ones (Q4 is the year minus nine months).
What changed
Check many companies
Exceptions: failed checks and restatements, every company
Alerts
Follow companies and get an email when they file: whether the new balance sheet reconciles, what moved, and anything restated.
Watchlist
Webhooks
Alerts can also be sent to your own system as a signed POST. Details are on the API page.
Your key
Send it as an X-API-Key header on an
ordinary GET. No SDK, no OAuth, no token exchange. Stored hashed on our
side and shown once when issued, so this box reads it out of this
browser; if it is not here, regenerate below.
—
This is the only time you will see it in full. Copy it now — after this the dashboard can show you the first eight characters and nothing more.
Try it in one line:
curl -H "X-API-Key: YOUR_KEY" https://balanceproof.dev/api/company/JPM
On Windows PowerShell, use curl.exe
in place of curl, on one line.
Then: read the API reference, or see how the numbers are checked.
Generate a key to get started.
Using your key
Both examples below are filled in with this deployment's host, and with your real key when this browser holds it. Copy either one and it runs as-is.
curl
curl -H "X-API-Key: YOUR_KEY" \
https://HOST/api/company/AAPL
On Windows PowerShell, use curl.exe
in place of curl and put it on one line: plain
curl there is Invoke-WebRequest, and the
backslash is not a line break.
Python
import requests
headers = {"X-API-Key": "YOUR_KEY"}
response = requests.get("https://HOST/api/company/AAPL", headers=headers)
data = response.json()
print(data["assets"])
Keep the key server-side. Anyone holding the string can spend your monthly allowance, and a key in front-end JavaScript is a published key. A 401 means the header is missing or wrong; a 429 means the month's allowance is spent, and the response says when it resets. Full reference: the API page.
- Copy your key above.
- Run one of the examples.
- Watch the count move on this tab.
One purchase, repeat downloads included. Each file is built from the database when you ask for it — what is in it.
Key compromised? Replacing it takes effect immediately — anything still using the old one stops working.
Sign in to regenerate this key.
Account
Set a password
Sign in to set a password for this account.
Changing the address is not self-serve yet — email support@balanceproof.dev and it will be moved by hand.
Delete account
This deletes your account, your API key, your usage history, watchlist and webhooks. Any subscription is cancelled immediately. It cannot be undone. Stripe keeps its own receipts for payments already made.
Billing
Change plan. Everything is compared on the pricing page.
Dataset or API?
| Feature | Dataset ($79.99 once) | Pro API ($49/month) |
|---|---|---|
| Data freshness | As of each download (built when you ask) | Current (updates as filings land) |
| Access method | One CSV download | API calls (10k/month) |
| Use case | One-time analysis | Ongoing automation |
| Updates | Only when you download again (included) | ✓ Yes (as filings land) |
| Automation | ✗ Manual | ✓ Programmatic |
| Drawings & search on this site | ✓ Free, unlimited | ✓ Free, unlimited |
The dataset is 1.27M as-reported facts as one CSV, built from the database each time you download it, with data loaded through 29 October 2026. A copy you save does not change. What is in it.
Paid plans go through Stripe. Your card details are entered on Stripe's page and never reach this site. Payment history will appear here once there is any.
Change your card, switch plans, download invoices or cancel. All of it happens on Stripe's own page, and anything you change there is reflected here within a minute.