All API key requests must include an Authorization: Bearer <token> header. See API Overview for how to generate a key.
API key access requires a Starter or higher plan. Free tier requests return 403 Forbidden. Each plan includes a monthly call quota.
Accounts
/api/accounts
Returns all accounts for the authenticated user.
Response
[
{
"id": "acc_abc123",
"name": "Current Account",
"type": "asset",
"subtype": "checking",
"currency": "GBP",
"balance": 2450.00,
"archivedAt": null
}
]
/api/accounts
Creates a new account.
Request body
{
"name": "Savings",
"type": "asset",
"subtype": "savings",
"currency": "GBP",
"openingBalance": 1000.00
}
Response
{
"id": "acc_xyz789",
"name": "Savings",
"type": "asset",
"subtype": "savings",
"currency": "GBP",
"balance": 1000.00,
"archivedAt": null
}
Transactions
/api/transactions
Returns transactions for the authenticated user. Supports pagination and filtering.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| accountId | query | string | No | Filter by from or to account ID |
| from | query | string | No | Start date (ISO 8601, e.g. 2024-01-01) |
| to | query | string | No | End date (ISO 8601, e.g. 2024-03-31) |
| limit | query | number | No | Max results (default 50, max 200) |
| offset | query | number | No | Pagination offset (default 0) |
Response
{
"transactions": [
{
"id": "txn_abc",
"fromAccountId": "acc_abc123",
"toAccountId": null,
"fromAmount": 45.00,
"fromCurrency": "GBP",
"toAmount": 45.00,
"toCurrency": "GBP",
"description": "Groceries",
"date": "2024-03-15"
}
],
"total": 142
}
/api/transactions
Creates a new transaction. Use fromAccountId for expenses (money leaving an account) and toAccountId for income (money entering). Set both for transfers between accounts.
Request body
{
"fromAccountId": "acc_abc123",
"toAccountId": null,
"fromAmount": 45.00,
"fromCurrency": "GBP",
"toAmount": 45.00,
"toCurrency": "GBP",
"description": "Groceries",
"date": "2024-03-15"
}
Response
{
"id": "txn_xyz",
"fromAccountId": "acc_abc123",
"toAccountId": null,
"fromAmount": 45.00,
"fromCurrency": "GBP",
"toAmount": 45.00,
"toCurrency": "GBP",
"description": "Groceries",
"date": "2024-03-15"
}
Automations
Info
/api/automations
Creates a new automation rule. The rule is written directly to your cloud database and will be picked up on the next sync.
Request body
{
"name": "Monthly savings transfer",
"type": "transfer",
"fromAccountId": "acc_abc123",
"toAccountId": "acc_xyz789",
"amount": 500.00,
"currency": "GBP",
"scheduleType": "text",
"scheduleText": "every 1st day of month",
"active": true
}
Response
{
"id": "3f8a1c2d-...",
"name": "Monthly savings transfer",
"type": "transfer",
"active": true,
"nextRun": "2024-04-01"
}
Rule types
The type field accepts the following values:
| Type | Description |
|---|---|
transfer | Scheduled transfer between two accounts |
transfer_splitted | Transfer split across multiple destination pockets |
transfer_remaining | Transfer the remaining balance after other rules run |
categorization | Auto-categorize matching transactions by keyword |
Exchange rates
/api/rates
Returns the exchange rate between two currencies. Rates are updated daily.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| from | query | string | Yes | Source currency code (e.g. USD) |
| to | query | string | Yes | Target currency code (e.g. GBP) |
Response
{ "rate": 0.79143 }
Schedule validation
/api/schedule/validate
Validates a schedule expression and returns the next 3 execution dates.
Request body
{
"scheduleType": "text",
"scheduleText": "every 1st day of month"
}
Response
{
"isValid": true,
"nextExecutions": [
"1 Apr 2024",
"1 May 2024",
"1 Jun 2024"
]
}