List chart of accounts
GET
https://app.speybooks.com/api/v1/accounts/Returns the chart of accounts for the authenticated organisation. By default, accounts are returned as a hierarchical tree based on parent/child relationships. Pass flat=true to get a flat list sorted by account code.
Filter by account type to retrieve only one section of the chart (e.g. all expense accounts). Filter by active status to include or exclude deactivated accounts.
Query parameters
active boolean optional Default: trueFilter by active status. Defaults to true (active accounts only). Pass false to include deactivated accounts.
flat boolean optional Default: falseReturn a flat list sorted by account code instead of the default hierarchical tree.
type string optionalFilter by account type. Returns only accounts of this type.
assetliabilityequityrevenueexpenseResponse
200 Returns the chart of accounts as a hierarchical tree (default) or flat list. Includes total count in meta.
Show response fields
accounts array<object>Show child attributes
accountType stringAccount type. Determines balance direction and report section. Immutable on system accounts.
assetliabilityequityrevenueexpensechildren array<object>Child accounts in the hierarchy. Present when flat=false (default).
code stringUnique account code within the organisation (e.g. 1200, 4000). Max 20 characters.
controlType string nullableControl account category (e.g. trade_debtors, trade_creditors, vat_control). Only meaningful when isControlAccount is true.
createdAt string date-timeISO 8601 creation timestamp.
defaultVatRate integer nullableDefault VAT rate as a whole percentage (e.g. 20 for 20%). Applied as suggestion when creating transaction lines.
description string nullableOptional description of the account purpose. Max 500 characters.
id stringPrefixed account ID (e.g. acc_1200). Immutable after creation.
isActive booleanWhether the account is active. Inactive accounts are excluded from selection lists but retained for historical reporting.
isControlAccount booleanWhether this is a control account used in automated journal creation (e.g. Trade Debtors for invoice finalisation).
isSystem booleanWhether the account was seeded during organisation setup. System accounts cannot be modified (except isActive) or deleted. Read-only.
name stringDisplay name (e.g. Trade Debtors, Sales). Max 200 characters.
parentId string nullablePrefixed ID of the parent account (e.g. acc_100), or null for root accounts.
updatedAt string date-timeISO 8601 last-updated timestamp.
meta objectShow child attributes
total integerTotal number of accounts matching the filter.