Skip to main content
GET
Summarise transactions

Authorizations

Authorization
string
header
required

A workspace API key created in ThinkOut settings. One key reads one workspace.

Query Parameters

from
string<date>
required

First day of the window, inclusive.

to
string<date>
required

Last day of the window, inclusive.

interval
enum<string>
default:month

The period bucket rows are grouped into. A period bucket for report rows. The same buckets the ThinkOut cash flow screen offers.

Available options:
day,
week,
month
group_by
enum<string>

A second dimension to group by, alongside the period bucket. At most one. Omit it to get one row per period.

A dimension to group report rows by, alongside the period bucket.

Available options:
category,
counterparty,
label,
account,
activity,
direction
currency
string

Currency to report totals in. Defaults to the workspace currency. The conversion object on the response says whether conversion happened and on what basis.

ISO 4217 alphabetic currency code.

Pattern: ^[A-Z]{3}$
Example:

"RON"

bank_id
string<uuid>[]

Only rows on the accounts fed by these bank connections. Comma-separated for several.

account_id
string<uuid>[]

Only rows on these accounts. Comma-separated for several.

category_id
string<uuid>[]

Only rows in these categories. Comma-separated for several. On transactions this also matches a split transaction whose pieces are in one of them, even though the row itself carries no category.

label_id
string<uuid>[]

Only rows carrying at least one of these labels. Comma-separated for several.

counterparty_id
string<uuid>[]

Only rows attributed to these counterparties. Comma-separated for several.

direction
enum<string>

Whether money comes in or goes out.

On a transaction or a forecast it follows the sign of amount and can never disagree with it. It is present so that responses can be grouped and read without inspecting signs.

Available options:
inflow,
outflow

Response

The summary.

object
string
required
Allowed value: "summary"
period
object
required

The window actually computed, after resolving any macro or stored relative dates.

conversion
object
required

What was done to make amounts comparable.

group_by
enum<string> | null
required

A dimension to group report rows by, alongside the period bucket.

Available options:
category,
counterparty,
label,
account,
activity,
direction
has_data
boolean
required

false when nothing matched. Distinguishes "no transactions here" from totals that genuinely came to zero.

totals
object
required

The whole window added up, after the same exclusions as the rows.

data
object[]
required