API reference
Board packs
What each month's close hands the board: its statements, burn, runway and MRR, and the commentary written about them.
- GET
/v1/board_packsList board packs - POST
/v1/board_packsMake the board pack of a month closed before packs existed - GET
/v1/board_packs/{pack_id}Get a board pack with its figures and statements - PATCH
/v1/board_packs/{pack_id}Write a board pack's commentary - DELETE
/v1/board_packs/{pack_id}Delete a board pack's commentary
Guides: Send the board pack
List board packs
GET/v1/board_packs
client.boardPacks.list()
Every board pack, the newest first: one for each close of each month, a reopened month's earlier packs kept as they were sent.
Parameters
| Name | Type | Description |
|---|---|---|
periodQuery | string or null | Only the packs of this month, like 2026-09. |
limitQuery | integer | Page size, 1–200. |
cursorQuery | string or null | The |
Response
Errors
- 400
- The request was malformed or a parameter is invalid.
- 401
- No valid credential was sent.
- 403
- The credential or the member's role does not allow this.
- 404
- No such resource in this ledger.
- 409
- A conflicting request, e.g. one with the same Idempotency-Key still running.
- 422
- A well-formed request a business rule refused.
- 429
- Too many requests; retry after the Retry-After header.
- 500
- Something failed on our side; the request_id identifies it.
Example
curl "https://api.ledgerit.ai/v1/board_packs" \
-H "Authorization: Bearer $LEDGERIT_TOKEN"Make the board pack of a month closed before packs existed
POST/v1/board_packs· Idempotent
client.boardPacks.create()
Make the board pack of a closed month whose close has none: one closed
before board packs existed. Its figures are read through the sequence
that close signed off, and kept. Closing a month makes its pack without
this. Refused with period_not_closed for a month that is open or
reopened, and with board_pack_exists when the close already has one.
Request body
Response
Errors
- 400
- The request was malformed or a parameter is invalid.
- 401
- No valid credential was sent.
- 403
- The credential or the member's role does not allow this.
- 404
- No such resource in this ledger.
- 409
- A conflicting request, e.g. one with the same Idempotency-Key still running.
- 422
- A well-formed request a business rule refused.
- 429
- Too many requests; retry after the Retry-After header.
- 500
- Something failed on our side; the request_id identifies it.
Example
curl -X POST "https://api.ledgerit.ai/v1/board_packs" \
-H "Authorization: Bearer $LEDGERIT_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"period":"…"}'Get a board pack with its figures and statements
GET/v1/board_packs/{pack_id}
client.boardPacks.get()
A board pack: the month's figures, its balance sheet, income statement and cash flow statement as its close kept them, and the commentary.
Parameters
| Name | Type | Description |
|---|---|---|
pack_idPath · Required | string | An id that starts with |
Response
Errors
- 400
- The request was malformed or a parameter is invalid.
- 401
- No valid credential was sent.
- 403
- The credential or the member's role does not allow this.
- 404
- No such resource in this ledger.
- 409
- A conflicting request, e.g. one with the same Idempotency-Key still running.
- 422
- A well-formed request a business rule refused.
- 429
- Too many requests; retry after the Retry-After header.
- 500
- Something failed on our side; the request_id identifies it.
Example
curl "https://api.ledgerit.ai/v1/board_packs/{pack_id}" \
-H "Authorization: Bearer $LEDGERIT_TOKEN"Write a board pack's commentary
PATCH/v1/board_packs/{pack_id}· Idempotent
client.boardPacks.update()
Write a pack's commentary. Its figures cannot change: they are what its close kept.
Parameters
| Name | Type | Description |
|---|---|---|
pack_idPath · Required | string | An id that starts with |
Request body
Response
200BoardPackOut
Errors
- 400
- The request was malformed or a parameter is invalid.
- 401
- No valid credential was sent.
- 403
- The credential or the member's role does not allow this.
- 404
- No such resource in this ledger.
- 409
- A conflicting request, e.g. one with the same Idempotency-Key still running.
- 422
- A well-formed request a business rule refused.
- 429
- Too many requests; retry after the Retry-After header.
- 500
- Something failed on our side; the request_id identifies it.
Example
curl -X PATCH "https://api.ledgerit.ai/v1/board_packs/{pack_id}" \
-H "Authorization: Bearer $LEDGERIT_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{}'Delete a board pack's commentary
DELETE/v1/board_packs/{pack_id}
client.boardPacks.delete()
Delete a pack and its commentary. The reports its close kept stay, and
POST makes the pack again from them.
Parameters
| Name | Type | Description |
|---|---|---|
pack_idPath · Required | string | An id that starts with |
Response
204No content
Errors
- 400
- The request was malformed or a parameter is invalid.
- 401
- No valid credential was sent.
- 403
- The credential or the member's role does not allow this.
- 404
- No such resource in this ledger.
- 409
- A conflicting request, e.g. one with the same Idempotency-Key still running.
- 422
- A well-formed request a business rule refused.
- 429
- Too many requests; retry after the Retry-After header.
- 500
- Something failed on our side; the request_id identifies it.
Example
curl -X DELETE "https://api.ledgerit.ai/v1/board_packs/{pack_id}" \
-H "Authorization: Bearer $LEDGERIT_TOKEN"Objects
The objects these operations take and return.
BoardPackPage
| Name | Type | Description |
|---|---|---|
dataRequired | array of BoardPackOut | |
has_moreRequired | boolean | |
next_cursorRequired | string or null |
NewBoardPack
| Name | Type | Description |
|---|---|---|
periodRequired | string | A closed month, like 2026-09. |
BoardPackDetailOut
A board pack with its figures and statements, each produced again from the report its close kept.
| Name | Type | Description |
|---|---|---|
asksRequired | string or null | What the company asks of its board and investors. |
balance_sheetRequired | BalanceSheetOut or null | As of the month's last day. |
cash_flowRequired | CashFlowStatementOut or null | For the month. |
challengesRequired | string or null | What did not, and what is being done about it. |
close_run_idRequired | string | The close it was made from. |
close_versionRequired | integer | Which close of the month: 1 for the first, 2 after a reopen. |
closed_atRequired | string (date-time) or null | When that close was signed off. |
created_atRequired | string (date-time) | When the pack was opened. |
figuresRequired | BoardPackFiguresOut or null | Cash, burn, runway, MRR, ARR, revenue and margin for the month. |
highlightsRequired | string or null | What went well this month. |
idRequired | string | The pack's id. |
income_statementRequired | IncomeStatementOut or null | For the month. |
periodRequired | string | The month it reports, like 2026-09. |
report_run_idsRequired | array of string | The kept reports it is made of: its figures and its three statements. |
reproducesRequired | boolean | True when every figure is exactly what it was when the close kept it. |
standsRequired | boolean | True while its close stands; false once the month was reopened, when the pack keeps the figures the board was given and a later close has its own pack. |
through_sequenceRequired | integer | The posting sequence every figure in the pack reads through. |
updated_atRequired | string (date-time) | When its commentary last changed. |
updated_byRequired | string or null | An id that starts with |
updated_by_emailRequired | string or null | Their address, while they are a member of these books. |
BoardPackChanges
Only the fields sent change; an empty one, or null, clears it.
| Name | Type | Description |
|---|---|---|
asks | string or null | What the company asks of its board. |
challenges | string or null | What did not. |
highlights | string or null | What went well this month. |
BoardPackOut
A board pack: one close of one month, and what was written for the board about it.
| Name | Type | Description |
|---|---|---|
asksRequired | string or null | What the company asks of its board and investors. |
challengesRequired | string or null | What did not, and what is being done about it. |
close_run_idRequired | string | The close it was made from. |
close_versionRequired | integer | Which close of the month: 1 for the first, 2 after a reopen. |
closed_atRequired | string (date-time) or null | When that close was signed off. |
created_atRequired | string (date-time) | When the pack was opened. |
highlightsRequired | string or null | What went well this month. |
idRequired | string | The pack's id. |
periodRequired | string | The month it reports, like 2026-09. |
report_run_idsRequired | array of string | The kept reports it is made of: its figures and its three statements. |
standsRequired | boolean | True while its close stands; false once the month was reopened, when the pack keeps the figures the board was given and a later close has its own pack. |
through_sequenceRequired | integer | The posting sequence every figure in the pack reads through. |
updated_atRequired | string (date-time) | When its commentary last changed. |
updated_byRequired | string or null | An id that starts with |
updated_by_emailRequired | string or null | Their address, while they are a member of these books. |
BalanceSheetOut
| Name | Type | Description |
|---|---|---|
as_ofRequired | string (date) | |
assetsRequired | BalanceSheetSectionOut | |
balancedRequired | boolean | |
currencyRequired | string | |
differenceRequired | string | |
equityRequired | BalanceSheetSectionOut | |
liabilitiesRequired | BalanceSheetSectionOut | |
total_assetsRequired | string | |
total_liabilities_and_equityRequired | string |
CashFlowStatementOut
| Name | Type | Description |
|---|---|---|
balancedRequired | boolean | |
beginning_cashRequired | string | |
currencyRequired | string | |
differenceRequired | string | |
ending_cashRequired | string | |
net_changeRequired | string | |
net_incomeRequired | string | |
sectionsRequired | array of CashFlowSectionOut | |
sinceRequired | string (date) | |
untilRequired | string (date) |
BoardPackFiguresOut
What a month's board pack says in figures, every one read from the books through the same posting sequence.
| Name | Type | Description |
|---|---|---|
arrRequired | string | MRR times twelve. |
burningRequired | boolean | True when the trailing net burn is above zero. |
cashRequired | string | Cash across every cash account at the end of the month. |
currencyRequired | string | The books' currency, as an ISO 4217 code. |
gross_burnRequired | string or null | Operating cash that left in the month, as a positive figure. Null before the books began. |
gross_marginRequired | string or null | Gross profit over revenue, as a fraction (0.9 = 90%); null with no revenue. |
monthsRequired | array of BurnMonthOut | Burn for up to six complete months, oldest first, ending with this one; months before the books began are left out. |
mrrRequired | string | Subscription revenue recognized in the month, as Home reads it. |
mrr_monthRequired | string (date) | The month MRR is for: this one, by its first day. |
net_burnRequired | string or null | The month's gross burn less its operating inflows. Positive means more went out than came in. |
net_incomeRequired | string | Net income in the month. |
operating_expensesRequired | string | Operating expenses in the month. |
revenueRequired | string | Revenue in the month, from the income statement. |
runway_monthsRequired | string or null | Months of cash at the trailing net burn, to one decimal; null when not burning. |
sinceRequired | string (date) | The month's first day. |
trailing_monthsRequired | integer | How many months |
trailing_net_burnRequired | string or null | Average net burn of the three complete months ending with this one: what runway divides by. The figure Home shows as net burn. |
untilRequired | string (date) | The month's last day. |
IncomeStatementOut
| Name | Type | Description |
|---|---|---|
cost_of_revenueRequired | string | |
currencyRequired | string | |
gross_marginRequired | string or null | |
gross_profitRequired | string | |
net_incomeRequired | string | |
operating_expensesRequired | string | |
operating_incomeRequired | string | |
other_expenseRequired | string | |
other_incomeRequired | string | |
revenueRequired | string | |
sectionsRequired | array of IncomeSectionOut | |
sinceRequired | string (date) | |
untilRequired | string (date) |
BalanceSheetSectionOut
| Name | Type | Description |
|---|---|---|
linesRequired | array of BalanceSheetLineOut | |
totalRequired | string |
CashFlowSectionOut
| Name | Type | Description |
|---|---|---|
keyRequired | string | |
linesRequired | array of CashFlowLineOut | |
nameRequired | string | |
totalRequired | string |
BurnMonthOut
| Name | Type | Description |
|---|---|---|
completeRequired | boolean | False for the current month, which is month to date. |
gross_burnRequired | string | Operating cash that left in the month, as a positive figure. |
monthRequired | string (date) | The first day of the month. |
net_burnRequired | string | Gross burn less operating inflows. Positive means more went out than came in. |
operating_inflowsRequired | string | Operating cash that came in during the month, as a positive figure. |
IncomeSectionOut
| Name | Type | Description |
|---|---|---|
groupsRequired | array of IncomeGroupOut | |
keyRequired | string | |
nameRequired | string | |
totalRequired | string |
BalanceSheetLineOut
| Name | Type | Description |
|---|---|---|
account_idRequired | string or null | An id that starts with |
amountRequired | string | |
codeRequired | string | |
nameRequired | string |
CashFlowLineOut
| Name | Type | Description |
|---|---|---|
account_idRequired | string | An id that starts with |
amountRequired | string | |
codeRequired | string | |
nameRequired | string |
IncomeGroupOut
| Name | Type | Description |
|---|---|---|
codeRequired | string | |
linesRequired | array of IncomeLineOut | |
nameRequired | string | |
totalRequired | string |
IncomeLineOut
| Name | Type | Description |
|---|---|---|
account_idRequired | string | An id that starts with |
amountRequired | string | |
codeRequired | string | |
nameRequired | string |