Tablewealth

Transactions

Read normalized transaction data across accounts or for one account.

Transactions describe money movement. They power spending, income, transfers, cash flow, and spreadsheet workflows.

Endpoints

MethodPathScope
GET/v1/transactionstransactions:read
GET/v1/accounts/{accountId}/transactionstransactions:read

List transactions

Use GET /v1/transactions to list transactions across all accounts visible to the current API key.

Query parameters

ParameterDescription
accountIdRestrict results to one account.
dateFromStart date in YYYY-MM-DD format.
dateToEnd date in YYYY-MM-DD format.
pendingFilter pending or posted transactions.
visibilityFilter visible, hidden, or ignored transactions.
categoryFilter by transaction category.
pageSizeNumber of records to return, up to 100.
pageTokenCursor from the previous page.

Request

curl "https://api.tablewealth.com/v1/transactions?dateFrom=2026-01-01&dateTo=2026-01-31&pageSize=50" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
const url = new URL('https://api.tablewealth.com/v1/transactions');
url.searchParams.set('dateFrom', '2026-01-01');
url.searchParams.set('dateTo', '2026-01-31');
url.searchParams.set('pageSize', '50');

const response = await fetch(url, {
  headers: {
    'X-API-Key': process.env.TABLEWEALTH_API_KEY!
  }
});

const body = await response.json();
import os
import requests

response = requests.get(
    "https://api.tablewealth.com/v1/transactions",
    headers={"X-API-Key": os.environ["TABLEWEALTH_API_KEY"]},
    params={"dateFrom": "2026-01-01", "dateTo": "2026-01-31", "pageSize": 50},
    timeout=30,
)
response.raise_for_status()
body = response.json()

Response fields

Key fields include id, accountId, transactionDate, authorizedDate, name, merchantName, amount, displayAmount, currencyCode, pending, and isIgnored.

Account transactions

Use GET /v1/accounts/{accountId}/transactions when the user has already selected an account.

Request

curl "https://api.tablewealth.com/v1/accounts/acct_123/transactions?visibility=active" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
const accountId = 'acct_123';
const url = new URL(
  `https://api.tablewealth.com/v1/accounts/${accountId}/transactions`
);
url.searchParams.set('visibility', 'active');

const response = await fetch(url, {
  headers: {
    'X-API-Key': process.env.TABLEWEALTH_API_KEY!
  }
});

const body = await response.json();
import os
import requests

account_id = "acct_123"
response = requests.get(
    f"https://api.tablewealth.com/v1/accounts/{account_id}/transactions",
    headers={"X-API-Key": os.environ["TABLEWEALTH_API_KEY"]},
    params={"visibility": "active"},
    timeout=30,
)
response.raise_for_status()
body = response.json()

Response fields

Account-scoped transaction responses include account context such as accountName, institutionName, sourcePrimaryCategory, sourceDetailedCategory, and organizationTransactionCategoryName.

Amounts and dates

  • Transaction amount is the stored source-normalized amount.
  • Transaction displayAmount is user-facing and currently equals amount * -1.
  • Dates use YYYY-MM-DD for date-only fields.

On this page