income_statement_periods
Read monthly revenue, expenses and net income over a trailing window. The current month is identified because it is incomplete.
What it shows
Revenue, expenses and net income month by month: the trailing months (6 by default) ending at through_month, or at the current month, which is marked current because it is still in progress. A functional-currency change splits the affected month into separately labelled currency columns.
Example MCP App view
The read-only example below uses illustrative demo data and the same report component as the MCP App. These are not your books or the result of the request example.
Inputs
Send the fixed kind and these parameters at the top level of the report request, not inside input.
Required means required within its containing object; an optional parent can be omitted.
| Field | Type | Required | Meaning and accepted values |
|---|---|---|---|
currency | string | No | Ledger currency (default: the functional currency active for the report period). Format: currency. |
through_month | string | No | Last month, YYYY-MM (default: this month). Format: month. Example: "2026-09". |
months | integer | No | How many monthly columns, 2–24 (default 6). Minimum: 2. Maximum: 24. Example: 6. |
Reading the result
Running this report does not change the books. Its description above distinguishes recorded-book summaries from previews based on supplied facts or assumptions. Interpret its totals, grouping, missing-data indicators and pagination using that description. Monetary amounts are integer strings in the reported unit; ratios and assumptions can be fractional numbers. An empty result is not evidence that the business had no activity.
The public OpenAPI contract does not enumerate this report’s result fields. Fetch GET /v1/reports for its live description and parameters, and inspect the returned JSON rather than assuming an output shape.
Example request
{
"kind": "income_statement_periods",
"through_month": "2026-09",
"months": 6
}All reports · Operation and errors · Reusable schemas
Keep credentials out of prompts; rehearse writes only in a disposable sandbox.
Exact request schema
{
"type": "object",
"additionalProperties": false,
"properties": {
"kind": {
"const": "income_statement_periods"
},
"currency": {
"description": "Ledger currency (default: the functional currency active for the report period).",
"type": "string",
"minLength": 1
},
"through_month": {
"description": "Last month, YYYY-MM (default: this month).",
"type": "string",
"minLength": 1,
"pattern": "^[0-9]{4}-[0-9]{2}$"
},
"months": {
"description": "How many monthly columns, 2–24 (default 6).",
"type": "integer",
"minimum": 2,
"maximum": 24
}
},
"required": [
"kind"
]
}