Skip to content

Spendable Endpoint

GET
/api/v1/budget/spendable
curl --request GET \
--url 'https://example.com/api/v1/budget/spendable?liquidity_horizon=immediate'

What is left of the liquid pool until the end of this month, after planned expenses still to come and the remaining budget headroom.

liquidity_horizon (repeatable, at most 4) selects the pooled accounts. The components add up to spendable, which can be negative. One bounded object, no pagination. Read-only.

liquidity_horizon
Liquidity Horizon
Array<string>
default: immediate <= 4 items
Allowed values: immediate semi_liquid blocked long_term

Successful Response

Media typeapplication/json
SpendableResponse

What is left of the liquid pool until the end of the current month, returned by GET /api/v1/budget/spendable – a single bounded object, not a list. Money values are decimal strings with two places; spendable is the exact sum of the component amounts and is never clamped, so it can be negative. Income still to come this month (planned, or recorded with a later date) is reported apart in expected_income and never changes spendable.

object
as_of
required
As Of
string
period_end
required
Period End
string
currency
required
Currency
string
liquidity_horizons
required
Liquidity Horizons
Array<string>
Allowed values: immediate semi_liquid blocked long_term
spendable
required
Spendable
string
components
required
Components
Array<object>
SpendableComponent

One row of the spendable breakdown. Rows add up exactly to SpendableResponse.spendable. kind is a plain string so a client that does not know a future kind can still render the row from its label.

object
kind
required
Kind
string
label
required
Label
string
amount
required
Amount
string
expected_income
required
Expected Income
string
oldest_snapshot_date
required
Any of:
string
snapshot_age_days
required
Any of:
integer
snapshot_stale
required
Snapshot Stale
boolean
excluded_failed_count
required
Excluded Failed Count
integer
missing_rate_currencies
required
Missing Rate Currencies
Array<string>
no_snapshot_account_count
required
No Snapshot Account Count
integer
has_counted_accounts
required
Has Counted Accounts
boolean

Example

{
"liquidity_horizons": [
"immediate"
]
}

Validation Error

Media typeapplication/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object

Example generated

{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}