Valid periods range from the month the user’s account was created to the last fully completed calendar month. Requests outside this range, or with an unsupported denomination asset, return a 409 error. A valid period with no user activity still returns a successful response — holdings and transactions will have no entries.
The denomination query parameter accepts a single asset code (e.g. denomination=GBP). If not provided, USD is used by default. Exchange rates use USD as the base pair. When the denomination is not USD, the response also includes a USD-{denomination} rate to complete the conversion.
Supported assets include some of the major fiat currencies and BTC. If you need a particular asset added to this list, please reach out to your Account Manager.
For a more detailed explanation of the denomination concept, check the Core Concepts page.
Call Get portfolio statement to retrieve the user’s holdings at the end of the requested period, along with exchange rates in the requested denomination. Rates are a period-end snapshot.
GET /core/statements/portfolio?period=one-month&year=2025&month=3&denomination=GBP
Holdings are returned per asset. Assets already held in the denomination currency (GBP in this case) have no rate entry — their value is their amount directly.
Call Get transactions statement to retrieve a paginated list of completed transactions during the period, each with exchange rates captured at the time they completed.
GET /core/statements/transactions?period=one-month&year=2025&month=3&denomination=GBP&page=1&perPage=50
Each entry contains the transaction details and a rates object with exchange rates captured at the time that transaction completed.
The response includes a pagination object with first and next URL links. next points to the next page and is absent on the last page. For a full overview of how pagination works across the API, see Pagination in responses.To retrieve all transactions, request each page in sequence and follow next until it’s absent. The following helper collects all pages upfront:
To generate a quarterly report, use the helpers above: fetch the portfolio snapshot at the end of the last month of the quarter and aggregate transactions across all three months.