Skip to main content
GET
Read the numbers a spreading run produced: the consolidated income statement, balance sheet, and cash flow as line items by period. These are the same figures the report PDF presents. Every spread uses the same template — the possible rows and their keys are fixed. What varies is which rows have figures and what those figures are.

Reading the figures

Each statement is a list of periods. Every period has a values object with the rows that have figures for that period, keyed by row key. A row absent from values has no figure for that period.
To match a period across statements, use periods[].id — the same period carries the same id in every block. label is display copy derived from the source documents and may differ between statements. The income statement adds an annualized column beside each interim period (shorter than 12 months), with figures scaled to a full year. derivedFrom points back to the period it was derived from. The cash flow starts one period later than the others, since it measures change between balance sheet dates. A period with no dates gets an id that doesn’t match anything else in the response.

Authentication

Requires the x-api-key header with a valid workspace API key.

Path Parameters

string
required
The run id returned by Create Spread.

Response

boolean
Whether the request succeeded.
object
The spread’s figures.

Periods

array
The block’s columns in display order.

Values

Each entry in a period’s values object has the following fields.
number
The figure for this row in this period.
string
Display copy for the row. May be reworded over time.
string
line for a line item, subtotal for a computed subtotal or derived metric, total for a statement total.
boolean
True when we derived the row rather than reading it off a source document. Subtotals, totals, the variance rows, EBITDA/EBIDA, and every cash flow row are computed; template line items are not.
boolean
True for display-only rows not included in computed totals — the balance sheet’s equity rollforward rows, for instance. Including them in a total will double-count them.

Row keys

Row keys are stable camelCase identifiers from our spreading template. label is display copy and may be reworded; it’s also not unique across statements (“Net Income” appears on all three).
Line items: netRevenues, cogsGoodsMaterials, cogsLabor, cogsOther, officerCompGuaranteedPayments, salariesWages, badDebts, rent, interest, depreciation, amortization, otherDiscretionary, otherSgna, otherIncome, otherExpense.Subtotals and totals: totalCostOfRevenues, grossProfit, totalOperatingExpenses, netIncome.Also: reportedNetIncome (the net income the source printed, before our consolidation), incomeStatementVariance (our computed net income minus that reported figure), ebitda, and ebida (EBITDA without the income-tax add-back).
Assets: cash, accountsReceivable, inventory, otherCurrentAssets, totalCurrentAssets, grossFixedAssets, accumulatedDepreciation, netFixedAssets, loansToAffiliates, goodwill, otherIntangibles, otherNonCurrentAssets, totalNonCurrentAssets, totalAssets.Liabilities: accountsPayable, currentDebt, otherCurrentLiabilities, totalCurrentLiabilities, longTermDebt, dueToAffiliates, otherLiabilities, totalNonCurrentLiabilities, totalLiabilities.Equity: commonStock, additionalPaidInCapital, treasuryStock, endingRetainedEarnings, otherEquity, totalEquity, totalLiabilitiesAndEquity.Equity rollforward, all memo rows excluded from totalEquity: beginningRetainedEarnings, netIncomeEquity, distributionsDividends.Also: balanceSheetVariance, total assets minus total liabilities and equity. A non-zero value means the spread is out of balance for that period.
Operating: netIncome, depreciation, amortization, changeInAccountsReceivable, changeInInventory, changeInOtherCurrentAssets, changeInAccountsPayable, changeInOtherCurrentLiabilities, netCashFromOperating.Investing: capitalExpenditures, changeInIntangibles, changeInLoansToAffiliates, changeInOtherNonCurrentAssets, netCashFromInvesting.Financing: changeInCurrentDebt, changeInLongTermDebt, changeInDueToAffiliates, changeInOtherLiabilities, distributionsDividends, netEquityContributions, netCashFromFinancing.Totals: netChangeInCash, beginningCash, endingCash, and cashFlowVariance — net change in cash minus the actual movement in the cash balance.

Compatibility

schemaVersion is 2 today. We may make these changes without changing it, so parse defensively:
  • adding a statement or a row
  • adding a field to the response, a period, or a values entry
  • rewording any label
  • changing which rows a given spread carries
We will change schemaVersion if we rename or remove a row key, or restructure periods or values. If you want to fail loudly rather than silently mis-read a future response, assert on it.

Errors

Every error body carries success: false and a human-readable error. Branch on the status code rather than on the message text, which we may reword.
error
No spread with this id exists in your workspace.
error
The run has not completed. Results are served only for a COMPLETE run: one still in flight has partly written statements, and regenerating a run rewrites them in place, so an earlier read could return a mix of the old spread and the new one.To know when to fetch, poll Get Spread for the run’s status or subscribe to the spread.completed webhook. A FAILED run will never produce results, so stop polling when you see one.
409