API Reference

Tablewealth API docs

Build read-only integrations against organization-scoped financial data. The API exposes discoverable capabilities, normalized accounts, transactions, holdings, and organization details through API-key authenticated GET endpoints.

Base URL:https://api.tablewealth.comVersion:v1Auth:X-API-Key
01

Quickstart

Create an API key in the dashboard, inspect its capabilities, then call only the operations returned for that key.

curl https://api.tablewealth.com/v1/api-key \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"

1. Scope the key

Grant the smallest useful set of scopes and, when needed, limit the key to selected accounts.

2. Discover access

Call GET /v1/api-key to read scopes, rate limits, account access, and available operations.

3. Page through data

Use pageSize and pageToken on list endpoints. The maximum page size is 100.

02

Authentication

All API routes require an API key in the X-API-Key header. User ids and organization ids are never accepted from client input.

fetch("https://api.tablewealth.com/v1/accounts", {
  headers: {
    "X-API-Key": process.env.TABLEWEALTH_API_KEY
  }
});
Security model Every response is constrained by the key's organization, granted scopes, and account access policy. A CUSTOM_ACCOUNTS key can only see the selected account ids returned by discovery.
03

Conventions

The API uses consistent envelopes, source-agnostic naming, cursor-style pagination, and normalized error responses.

Success envelope

{
  "data": [],
  "pagination": {
    "pageSize": 50,
    "nextPageToken": "..."
  },
  "meta": {}
}

Error envelope

{
  "error": {
    "code": "forbidden_scope",
    "message": "The API key lacks the required scope.",
    "requestId": "req_..."
  }
}

Rate limits

Responses include RateLimit-Limit, RateLimit-Remaining, and RateLimit-Reset headers when available.

List headers

List responses include X-TableWealth-Item-Count with the count returned in the current page.

Errors

Errors include unauthorized, forbidden_scope, invalid_query, not_found, rate_limited, and internal_error.

04

Discovery

Start here when an agent or integration needs to understand what the current API key is allowed to do.

GET/v1/api-key

Inspect the current API key capabilities

Any valid key

Parameters

No parameters

Response fields

scopesaccountScopeselectedAccountIdsrateLimitsavailableOperationsdiscovery
curl "https://api.tablewealth.com/v1/api-key" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
05

Organization

Read organization-level profile data for the workspace attached to the API key.

GET/v1/organization

Get organization details

organization:read

Parameters

No parameters

Response fields

nameaddressphoneemailwebsitebaseCurrencyCode
curl "https://api.tablewealth.com/v1/organization" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
06

Accounts

List and retrieve accessible financial accounts. Account visibility is always constrained by the API key account scope.

GET/v1/accounts

List accessible financial accounts

accounts:read

Parameters

statuscategorysourceTypesupportsTransactionssupportsHoldingspageSizepageToken

Response fields

idsourceTypeproviderstatuscategorynameinstitutionNamebalancessupportsTransactionssupportsHoldings
curl "https://api.tablewealth.com/v1/accounts?category=investment&pageSize=25" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
GET/v1/accounts/{accountId}

Get one accessible financial account

accounts:read

Parameters

accountId

Response fields

idconnectionIdnameofficialNameinstitutionIdconnectionStatusownershipPercentagecreatedAt
curl "https://api.tablewealth.com/v1/accounts/acct_123" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
07

Transactions

Query normalized transaction data across accessible accounts or for a single account.

GET/v1/transactions

List accessible financial transactions

transactions:read

Parameters

accountIddateFromdateTopendingvisibilitycategorypageSizepageToken

Response fields

idaccountIdtransactionDateauthorizedDatenamemerchantNameamountdisplayAmountcurrencyCodependingisIgnored
curl "https://api.tablewealth.com/v1/transactions?dateFrom=2026-01-01&dateTo=2026-01-31&pageSize=50" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
GET/v1/accounts/{accountId}/transactions

List transactions for one accessible account

transactions:read

Parameters

accountIddateFromdateTopendingvisibilitycategorypageSizepageToken

Response fields

idaccountNameinstitutionNamesourcePrimaryCategorysourceDetailedCategoryorganizationTransactionCategoryName
curl "https://api.tablewealth.com/v1/accounts/acct_123/transactions?visibility=active" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
08

Holdings

Read positions and cash-equivalent holdings across accessible investment accounts.

GET/v1/holdings

List accessible financial holdings

holdings:read

Parameters

accountIdtickerSymbolisCashEquivalentpageSizepageToken

Response fields

idaccountIdassetNametickerSymbolquantitycurrentPricemarketValuecostBasisisCashEquivalent
curl "https://api.tablewealth.com/v1/holdings?tickerSymbol=VTI" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
GET/v1/accounts/{accountId}/holdings

List holdings for one accessible account

holdings:read

Parameters

accountIdtickerSymbolisCashEquivalentpageSizepageToken

Response fields

idaccountNameinstitutionNamesecurityIdtypesubtypesectorindustry
curl "https://api.tablewealth.com/v1/accounts/acct_123/holdings?isCashEquivalent=false" \
  -H "X-API-Key: $TABLEWEALTH_API_KEY"
09

Schemas

These are the highest-signal response fields for the core resources.

Account

  • id
  • sourceType
  • provider
  • status
  • category
  • name
  • institutionName
  • balances
  • supportsTransactions
  • supportsHoldings

Transaction

  • id
  • accountId
  • transactionDate
  • name
  • merchantName
  • amount
  • displayAmount
  • currencyCode
  • pending
  • isIgnored

Holding

  • id
  • accountId
  • assetName
  • tickerSymbol
  • quantity
  • currentPrice
  • marketValue
  • costBasis
  • isCashEquivalent
10

OpenAPI JSON

Use the machine-readable schema when generating typed clients, validating responses, or giving an agent the exact API contract.

https://api.tablewealth.com/openapi.json