List chart of accounts
/partners/chart-of-accountsReturns the workspace chart of accounts with optional filters.
Accounts are returned with nested `subType` and `institution` shapes. Use boolean-string query flags such as `includeBalances` or `includeHiddenAccounts` to control optional fields.
Query parameters
typeenumoptionalFilter by high-level account type. Case-sensitive plural values only.
One of: Assets, Liabilities, Equity, Income, Expenses
subTypeIdintegeroptionalFilter by numeric AccountSubType id.
searchstringoptionalPartial match against account name or account number.
inactivestringoptionalWhen `"true"`, include inactive accounts.
includeBalancesstringoptionalWhen `"true"`, include `systemBalance` on each account and sub-account, plus `providerBalances` and `reconcileBalances` on top-level rows only.
includeHiddenstringoptionalWhen `"true"`, include hidden accounts.
includeHiddenAccountsstringoptionalAlias for including hidden accounts.
onlyCategoryAccountsstringoptionalWhen `"true"`, restrict to category-style accounts used for coding transactions.
includeDeleteMetastringoptionalWhen `"true"`, include `canDelete` and `deleteBlockedReason` on each row so integrations can tell whether delete will succeed.
pageintegeroptionalPage number for pagination. The first page is 1.
limitintegeroptionalRecords to return per page.
Responses
200Chart of accounts rows.400Invalid query parameters (for example malformed `type` or `subTypeId`).401Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. Troubleshoot403The credential does not have access to this workspace or resource. Troubleshoot429Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. Troubleshoothttps://api.getcount.com/partners/chart-of-accountsimport crypto from 'node:crypto';
const BASE_URL = 'https://api.getcount.com';
const CLIENT_ID = process.env.COUNT_CLIENT_ID;
const CLIENT_SECRET = process.env.COUNT_CLIENT_SECRET;
const ACCESS_TOKEN = process.env.COUNT_ACCESS_TOKEN;
const method = 'GET';
const signingPath = '/chart-of-accounts';
const timestamp = Math.floor(Date.now() / 1000).toString();
const bodyString = '';
const bodyHash = '';
const baseString = `${method}:${signingPath}:${timestamp}:${bodyHash}`;
const signature = crypto.createHmac('sha256', CLIENT_SECRET).update(baseString).digest('hex');
const response = await fetch(`${BASE_URL}/partners/chart-of-accounts`, {
method,
headers: {
'x-client-id': CLIENT_ID,
'x-timestamp': timestamp,
'x-signature': signature,
Authorization: `Bearer ${ACCESS_TOKEN}`,
},
});
console.log(await response.json());{
"page": 1,
"limit": 50,
"totalRecords": 1,
"filters": {
"type": null,
"subTypeId": null,
"search": null
},
"accounts": [
{
"id": "c8d9e0f1-a2b3-4567-cdef-789012345678",
"name": "Operating Bank Account",
"accountNumber": "1000",
"type": "Assets",
"status": "active",
"currency": "USD",
"description": "Primary business checking account",
"color": "#4A90D9",
"subType": {
"id": 1,
"type": "Assets",
"name": "Bank",
"anchorTier": null
},
"institution": {
"name": "Chase",
"logoUrl": null
},
"subAccounts": [],
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-28T14:22:30.000Z"
}
]
}