Start free

The accounting knowledge API

Every definition, guide, tool and ledger account on this site is available as JSON at /api/knowledge, with a stable id, a definition that stands on its own, and typed relationships to everything it touches. No key, no signup, and openly licensed under CC BY 4.0 so you can use it in your own work.

Accounting definitions are written down in a thousand places and almost never in a form a program can use. This is the same reference material the site publishes as pages, served as data, because a reference is only a reference if other people can point at it.

What is in it

198 entities and 1522 relationships, at roughly 7.7 links per entity. Counted from the graph rather than claimed:

KindCountWhat it is
concept77An accounting or MCP term, with a standalone definition, an example, and the mistakes people make with it
guide16A longer explanation of a bookkeeping task
tool19An operation an AI assistant can perform against a ledger
account61A ledger account from the business or personal chart
client8An AI client that can connect
prompt6A set of instructions mapped to the tools they invoke
category2A software category this product belongs to
topic6A technical subject about accounting infrastructure for agents
comparison1An honest comparison with another product
workflow2A job performed end to end

Two endpoints

GET /api/knowledge returns the index: every entity with its id, kind, label, definition, synonyms, page URL, and a link to its own record. It also carries the coverage numbers above, so you can tell how much of the graph you are looking at.

GET /api/knowledge/{id} returns one entity in full. For a concept that means the layered definition — a one-line version, a short summary, and the full explanation — plus a worked example, the common mistakes, its questions and answers, everything it relates to, and everything that refers back to it.

curl https://balancemcp.com/api/knowledge/concept%3Areconciliation

Ids are URL-encoded because they contain a colon. The one above resolves to Reconciliation.

Why the ids matter more than the JSON

The same identifier is used in three places: the page URL, this API, and the JSON-LD embedded in the page. concept:reconciliation is the same thing however you arrive at it. That is what makes this a graph you can traverse rather than a pile of documents that happen to mention each other, and it is why the ids are treated as a contract — renaming one is a breaking change, and the test suite fails when it happens.

Relationships are typed rather than being undifferentiated links. A concept related to another concept is an editorial judgement; a references edge points at a page in a different family; a sibling edge is structural, like two accounts of the same type. Each carries a weight so you can rank them.

Licence

CC BY 4.0. Use it, publish it, build on it, sell something with it — the condition is attribution to BalanceMCP with a link back. Every response carries its own licence and attribution fields so that obligation travels with the data rather than living only on this page.

What it is not

  • It is not your books. There is no user data here and no authentication, because there is nothing to authenticate.
  • It is not the MCP endpoint. That one is at /api/mcp, requires a bearer key, and is how an assistant actually does bookkeeping.
  • It is not tax or accounting advice. These are definitions, and a definition cannot know your circumstances.
  • It is not exhaustive. It covers what this site covers, which is small-business double-entry bookkeeping and the protocol layer around it.

Common questions

Do I need an API key?
No. It is unauthenticated and returns definitions rather than anybody's books, so there is nothing to protect. The authenticated endpoint is the MCP one, which is a different thing entirely.
Can I use this commercially?
Yes, under CC BY 4.0 — including commercially and in derivative work. The condition is attribution to BalanceMCP with a link.
Is it rate limited?
The responses are statically generated and cached for an hour, so ordinary use costs us nothing and is not throttled. Please do not hammer it.
What are the ids for?
The same identifier appears in the page URL, in this API, and in the JSON-LD on the page. An entity found one way can be resolved every other way, which is the property that makes it a graph rather than a set of documents.
Will the ids change?
They are treated as a contract. Renaming one is a breaking change and the test suite treats it as such.