Skip to content
Open app

Finance summary

GET
/v1/finance/summary

Per-currency realized income/expense/net, outstanding (pending) totals and top expense categories over a window. Read-only. Requires scope finance:read.

range
string
default: 30d
Allowed values: 7d 30d month
currency
string

ISO-4217 filter.

Finance summary.

Realized totals (completed rows only) grouped per currency; no FX conversion.

object
range
string
Allowed values: 7d 30d month
from
string format: date-time
to
string format: date-time
currency
string
nullable
totals
Array<object>
object
currency
string
income
number
expense
number
net
number
topExpenseCategories
Array<object>
object
categoryId
integer
nullable
categoryName
string
total
number
outstanding
Array<object>
object
currency
string
incomePending
number
expensePending
number

Missing or invalid bearer token.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "unauthorized",
"message": "Invalid bearer principal"
}

The API key does not have the required scope for this operation.

Standard error envelope for all v1 error responses.

object
error

Machine-readable error code.

string
Allowed values: bad_request not_found conflict unauthorized forbidden rate_limited internal_error
message

Human-readable explanation of the error.

string
details

Optional structured context (field-level validation errors, etc.).

nullable
Example
{
"error": "forbidden",
"message": "scope contacts:write is required"
}