The Best SEC XBRL API: What Actually Separates Them
Every provider in this category reads the same free filings from the same free source. What you are paying for is what happens when one of those filings is ambiguous — and that is the one thing the marketing pages do not talk about.
At a glance
Prices and features on the right-hand column change, and this page does not — check their site before you decide anything on it. The rows about method are the ones that stay true.
| BalanceProof | the alternatives | |
|---|---|---|
| Resolves duplicate XBRL tags | Yes — by A = L + E, not by tag name | Ask. Most do not document it |
| Publishes its exception count | Yes, on /methodology, updated each load | Rare |
| Names which filings failed | Yes — by ticker, with the reason | Rare |
| Says when the fault is its own | Yes — “ours, not theirs” is a published category | Very rare |
| Handles mezzanine equity | Yes, as its own block | Ask — this is where SPACs and biotechs break |
| Handles noncontrolling interest | Yes, added explicitly and said out loud | Ask |
| As-reported, not restated | Yes, with filing dates | Ask |
| Free tier without a call | 1,000/month, no card | Varies |
Why transparency matters more than a number
Every provider in this category reads the same filings. The difference is what happens when a filing is hard to read. The usual answer is that you get a number anyway, with nothing attached to say how confident it is — and a figure that is quietly a segment instead of a company looks exactly like one that is right.
BalanceProof checks every balance sheet against Assets = Liabilities + Equity before publishing it. A filing that reconciles is published with its figures. A filing that does not is published with the reason: a noncontrolling interest reported as a separate line, mezzanine equity outside permanent equity, rounding inside one percent, a component we could not read, or a filing whose own totals disagree with each other. The exceptions are counted in public and named individually on how we verify.
That is the whole claim. Not that nothing is ever wrong — that when something is, you are told which number and why, instead of finding out from your own reconciliation three weeks later.
The difference is which tag gets picked
Every provider in this category reads the same source. SEC EDGAR publishes XBRL for every filer, free, and nobody has better raw material than anybody else. What separates one API from the next is not access. It is the selection step, and that step is almost never documented.
Here is the problem it has to solve. Open JPMorgan's 10-Q and search for
Assets and you get twenty-three facts. Not twenty-three values —
twenty-three tagged instances, one for the consolidated bank and one for each
segment and subsidiary that has to be broken out separately. Every one is
valid XBRL. Exactly one is the number on the face of the balance sheet, and
the only thing marking it is an absence: it is the fact with no
dimensions attached.
An extractor that takes the first match, or the largest, or the most recently filed, will be right most of the time and wrong in a way that leaves no trace. No exception, no null, no warning. Just a number that is a segment instead of a company. Measured across the filings loaded here, that naive approach disagrees with the consolidated figure often enough to matter — roughly one filing in five.
BalanceProof resolves it with arithmetic rather than a heuristic: pull every candidate for assets, liabilities and equity, and keep the combination that satisfies Assets = Liabilities + Equity. The consolidated figures balance against each other. A segment's assets do not balance against the whole company's liabilities. The identity is a test, not a guideline, and it is the reason a figure here is checked rather than guessed at.
When nothing balances, the answer is that nothing balances. The filing is served as-reported with a warning on it rather than adjusted until the columns agree, because a filing that does not add up is a fact about the company, and you should get it as one.
Why “accuracy” is not the question
Every vendor in this category will tell you their data is accurate, and almost none will tell you how they know. An accuracy percentage with no method behind it is a marketing number: it cannot be reproduced, it cannot be audited, and it is never wrong in a way anybody can point at.
The useful question is the opposite one. What happens on the filings you cannot read? A provider who answers that honestly has measured it. This site answers it with a count that moves every time the data reloads, including the category where the fault is ours rather than the filer’s.
What I am not going to pretend
I am not going to put the alternatives's prices in a table on my own website. They change, this page would not, and you would be reading a number I had no way to verify at the moment you read it. Go and look at their pricing page. It is the only copy that is current.
I am also not going to tell you their data is bad. I have not audited it and I am not in a position to. What I can tell you is what this service does and how to check it, which is the part I am actually responsible for.
The check that settles it costs you nothing either way: take a company where you already know the answer, call both, and compare each against the filing on EDGAR. Not against each other — against the filing. That is the only comparison that means anything, and it is why the free tier here needs no card.