SEC Filings API Reference

Every balance sheet on this site, as JSON. One header, one key, no SDK. Every figure is reconciled against A = L + E before it is stored — here is why that matters. Filed figures only — nothing here is derived, scored or predicted.

Getting a key

A key is issued the moment you give an address. The free tier needs no payment and no card — it is not a trial that stops.

Authentication

Send the key in an X-API-Key header. It is not a bearer token, it does not expire, and there is no OAuth dance. Treat it like a password: anyone holding it can spend your calls. Your key is stored as a hash. The full value is shown once at issue; regenerate from the dashboard if lost.

curl -H "X-API-Key: YOUR_KEY" \
  https://balanceproof.dev/api/company/JPM

Lost it? Sign in. The dashboard shows the first eight characters, so you can tell which key an account is holding, and a Regenerate button that issues a new one — the old key stops working the moment you press it.

Endpoints

GET /api/company/{ticker}

X-API-Key required · counts as one call

The balance sheet as filed: every line item, its period end, and the filing it came from. The same numbers the drawing on /company/{ticker} is built from.

GET /api/demo/{ticker}

No key · no per-person limit

The same response, ungated, so you can see the shape before deciding whether to register.

GET /api/user/status

X-API-Key required · free

Your tier, the calls you have spent this calendar month, and what is left. Checking never costs a call.

GET /api/download-dataset

X-API-Key required · $79.99 one-off

Every fundamental figure this site holds, streamed as CSV. One purchase, no subscription, re-downloadable whenever you like.

GET /api.json

Public

This page's machine-readable index — the endpoint list, as JSON.

GET /health

Public

Whether the service is up and can reach its database. Cheap, and the one to point an uptime monitor at.

Limits

Counted per calendar month and reset on the first, whatever day you registered. A call that fails on our side is not counted.

PlanCalls / month Over the limit
Free10 429, with the reset date
Pro10,000 429, with the reset date

An expired Pro subscription falls back to the free allowance. It does not lock you out, and the key does not change.

Responses

JSON on every path, including the errors — a failure never returns an HTML page to something that asked for data.

CodeMeans
200Here it is.
401No key, or a key that is not ours.
404Nothing filed for that ticker.
429Month spent, or the demo's daily cap.
# what a spent month looks like
curl -sS -o /dev/null -w "%{http_code}\n" \
  -H "X-API-Key: YOUR_KEY" https://balanceproof.dev/api/company/AAPL
429

Try it without a key

Five a day from any one address, no registration.

curl -sS https://balanceproof.dev/api/demo/JPM | head -40

Data is for informational purposes only. Not financial advice.