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: true
Filter by active status. Defaults to true (active accounts only). Pass false to include deactivated accounts.
flat boolean optional Default: false
Return a flat list sorted by account code instead of the default hierarchical tree.
type string optional
Filter by account type. Returns only accounts of this type.
assetliabilityequityrevenueexpense

Response

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 string
Account type. Determines balance direction and report section. Immutable on system accounts.
assetliabilityequityrevenueexpense
children array<object>
Child accounts in the hierarchy. Present when flat=false (default).
code string
Unique account code within the organisation (e.g. 1200, 4000). Max 20 characters.
controlType string nullable
Control account category (e.g. trade_debtors, trade_creditors, vat_control). Only meaningful when isControlAccount is true.
createdAt string date-time
ISO 8601 creation timestamp.
defaultVatRate integer nullable
Default VAT rate as a whole percentage (e.g. 20 for 20%). Applied as suggestion when creating transaction lines.
description string nullable
Optional description of the account purpose. Max 500 characters.
id string
Prefixed account ID (e.g. acc_1200). Immutable after creation.
isActive boolean
Whether the account is active. Inactive accounts are excluded from selection lists but retained for historical reporting.
isControlAccount boolean
Whether this is a control account used in automated journal creation (e.g. Trade Debtors for invoice finalisation).
isSystem boolean
Whether the account was seeded during organisation setup. System accounts cannot be modified (except isActive) or deleted. Read-only.
name string
Display name (e.g. Trade Debtors, Sales). Max 200 characters.
parentId string nullable
Prefixed ID of the parent account (e.g. acc_100), or null for root accounts.
updatedAt string date-time
ISO 8601 last-updated timestamp.
meta object
Show child attributes
total integer
Total number of accounts matching the filter.