Holdings
Read investment positions and cash-equivalent holdings.
Holdings describe positions and cash-equivalent assets inside investment-capable accounts.
Endpoints
| Method | Path | Scope |
|---|---|---|
GET | /v1/holdings | holdings:read |
GET | /v1/accounts/{accountId}/holdings | holdings:read |
List holdings
Use GET /v1/holdings to list holdings across all accessible investment-capable accounts.
Query parameters
| Parameter | Description |
|---|---|
accountId | Restrict results to one account. |
tickerSymbol | Filter by ticker symbol. |
isCashEquivalent | Filter cash-equivalent positions. |
pageSize | Number of records to return, up to 100. |
pageToken | Cursor from the previous page. |
Request
curl "https://api.tablewealth.com/v1/holdings?tickerSymbol=VTI" \
-H "X-API-Key: $TABLEWEALTH_API_KEY"const url = new URL('https://api.tablewealth.com/v1/holdings');
url.searchParams.set('tickerSymbol', 'VTI');
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/holdings",
headers={"X-API-Key": os.environ["TABLEWEALTH_API_KEY"]},
params={"tickerSymbol": "VTI"},
timeout=30,
)
response.raise_for_status()
body = response.json()Response fields
Key fields include id, accountId, assetName, tickerSymbol, quantity, currentPrice, marketValue, costBasis, and isCashEquivalent.
Account holdings
Use GET /v1/accounts/{accountId}/holdings when the user has already selected an investment-capable account.
Request
curl "https://api.tablewealth.com/v1/accounts/acct_123/holdings?isCashEquivalent=false" \
-H "X-API-Key: $TABLEWEALTH_API_KEY"const accountId = 'acct_123';
const url = new URL(
`https://api.tablewealth.com/v1/accounts/${accountId}/holdings`
);
url.searchParams.set('isCashEquivalent', 'false');
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}/holdings",
headers={"X-API-Key": os.environ["TABLEWEALTH_API_KEY"]},
params={"isCashEquivalent": "false"},
timeout=30,
)
response.raise_for_status()
body = response.json()Response fields
Account-scoped holding responses include account context such as accountName, institutionName, securityId, type, subtype, sector, and industry.
Cash positions
Investment accounts often include cash or sweep positions. Use isCashEquivalent to separate invested holdings from cash-like positions in portfolio views.