---
title: "Filed accounts, year by year"
method: GET
path: "/accounts/{number}"
tags: ["Intelligence"]
---

# Filed accounts, year by year

`GET /accounts/{number}`

## Request

- Base URL: `https://api.companystack.co.uk`
- URL: `https://api.companystack.co.uk/accounts/{number}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`

Every year of accounts figures held for a company, newest first, with ratios and where each year's figures came from. A company that heads a group files two sets of figures for a year: its own (basis `company`) and the consolidated group's (basis `group`). By default one row per year is returned, the group figures where they are held and the company figures otherwise; `basis` selects one basis only. Every row states its `basis`, and `bases` counts the years held on each.

On the Free plan: 100 calls a UTC day to this endpoint and GET /accounts/{number} together, inside the daily request limit. Each such call carries `X-Preview-Daily-Limit`, `X-Preview-Daily-Remaining` and `X-Preview-Daily-Reset` (Unix time of the next midnight UTC); when the day's calls are used the answer is 429 with `code: preview_limit_reached`, not counted against the request limit. Starter and above have no separate limit.

## Path parameters

- `number` string, required

## Query parameters

- `basis` 'presented' | 'group' | 'company'
- `limit` integer

## Response `200`

Accounts held for the company (an empty list when none)

- CompanyAccounts: Every year of accounts held for a company (routes/accounts.ts GET /accounts/{number}).
  - `company_number` string, required
  - `accounts` AccountsYear[], required: Newest first
    - `balance_sheet_date` string, date, required
    - `period_start` string, date, nullable
    - `period_end` string, date, nullable
    - `currency` string, nullable
    - `accounts_type` string, nullable
    - `basis` 'company' | 'group', required: company: the legal entity's own (separate) figures. group: consolidated figures of the group the entity heads. Every figure in the row is of this basis.
    - `profit_and_loss` object, required
      - `turnover` number, nullable: Turnover, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `cost_of_sales` number, nullable: Cost of sales, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `gross_profit` number, nullable: Gross profit, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `admin_expenses` number, nullable: Administrative expenses, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `operating_profit` number, nullable: Operating profit, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `profit_before_tax` number, nullable: Profit before tax, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `tax` number, nullable: Tax, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `profit_after_tax` number, nullable: Profit after tax, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `dividends` number, nullable: Dividends, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
    - `balance_sheet` object, required
      - `assets` object
        - `tangible_assets` number, nullable: Tangible assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `intangible_assets` number, nullable: Intangible assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `fixed_assets` number, nullable: Fixed assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `current_assets` number, nullable: Current assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `total_assets` number, nullable: Total assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `cash_at_bank` number, nullable: Cash at bank, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `debtors` number, nullable: Debtors, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `stocks` number, nullable: Stocks, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `prepayments_accrued_income` number, nullable: Prepayments and accrued income shown outside current assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `share_capital_not_paid` number, nullable: Called-up share capital not paid, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `liabilities` object
        - `current_liabilities` number, nullable: Creditors due within a year, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `long_term_liabilities` number, nullable: Creditors due after a year, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `provisions` number, nullable: Provisions for liabilities, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `accruals_deferred_income` number, nullable: Accruals and deferred income shown outside creditors, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `total_liabilities` number, nullable: Total liabilities, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `net_position` object
        - `net_assets` number, nullable: Net assets (negative for net liabilities), in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `shareholder_funds` number, nullable: Shareholder funds, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `net_worth` number, nullable: Net worth, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `net_assets_label` 'Net assets' | 'Net liabilities' | 'null', nullable: How UK accounts present net_assets: "Net liabilities" when it is negative (show the amount without its sign), else "Net assets". Null when net_assets is null.
        - `net_current_assets` number, nullable: Net current assets: current assets less creditors due within a year, calculated here (negative for net current liabilities), in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `net_current_assets_label` 'Net current assets' | 'Net current liabilities' | 'null', nullable: "Net current liabilities" when net_current_assets is negative, else "Net current assets". Null when it cannot be calculated.
    - `cash_and_funding` object
      - `cash_and_equivalents` number, nullable: Cash and cash equivalents, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `operating_cash_flow` number, nullable: Net cash from operating activities, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `shares_issued` number, nullable: Proceeds from shares issued in the period, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `share_capital` number, nullable: Called-up share capital, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `retained_earnings` number, nullable: Retained earnings (negative for accumulated losses), in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
    - `employees` integer, nullable
    - `ratios` object, required
      - `current_ratio` number, nullable
      - `debt_to_equity` number, nullable: Total liabilities (printed, or calculated where it closes the balance sheet) divided by net assets; absent when net assets are nil or negative
      - `profit_margin` number, nullable: Profit before tax as a percentage of turnover
      - `return_on_assets` number, nullable: Percentage
    - `period_months` integer, nullable
    - `source` object
      - `kind` 'filed' | 'comparative' | 'scanned' | 'unverified': filed: the year's own electronic accounts. comparative: the prior-year column of the next year's accounts. scanned: read from a PDF or paper filing. unverified: read by an earlier parser and not re-checked.
      - `quality` integer, nullable
      - `flags` string[]
      - `implausible` string[]: Rules the figures break (for example a units error in the filing); the year is shown as filed and left out of summaries
      - `derived` string[]: Fields calculated from the other figures the accounts give, not read from them
    - `restated` object, nullable: Figures a later filing reported differently for this year, on the same basis
    - `not_filed` object: Blank figures the filing does not give, by field name (turnover, cash_at_bank, num_employees, ...), each with the reason in words: a check of the filing found no figure, or the accounts type does not require it (micro-entity, filleted or abbreviated small-company, dormant). A blank figure not listed here is one not read from the filing.
    - `parsed_at` string, date-time, nullable
  - `total` integer, required: Years returned
  - `years_available` integer, required: Years held on the basis requested (distinct balance-sheet dates for presented)
  - `basis` 'presented' | 'group' | 'company', required: The basis requested
  - `bases` object, required
    - `company` integer, required: Years held on the company basis
    - `group` integer, required: Years held on the group (consolidated) basis
  - `latest` AccountsYear: One year of a company's accounts as held (routes/accounts.ts formatAccount). Money in whole units of the reporting currency, null when not published.
    - `balance_sheet_date` string, date, required
    - `period_start` string, date, nullable
    - `period_end` string, date, nullable
    - `currency` string, nullable
    - `accounts_type` string, nullable
    - `basis` 'company' | 'group', required: company: the legal entity's own (separate) figures. group: consolidated figures of the group the entity heads. Every figure in the row is of this basis.
    - `profit_and_loss` object, required
      - `turnover` number, nullable: Turnover, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `cost_of_sales` number, nullable: Cost of sales, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `gross_profit` number, nullable: Gross profit, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `admin_expenses` number, nullable: Administrative expenses, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `operating_profit` number, nullable: Operating profit, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `profit_before_tax` number, nullable: Profit before tax, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `tax` number, nullable: Tax, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `profit_after_tax` number, nullable: Profit after tax, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `dividends` number, nullable: Dividends, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
    - `balance_sheet` object, required
      - `assets` object
        - `tangible_assets` number, nullable: Tangible assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `intangible_assets` number, nullable: Intangible assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `fixed_assets` number, nullable: Fixed assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `current_assets` number, nullable: Current assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `total_assets` number, nullable: Total assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `cash_at_bank` number, nullable: Cash at bank, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `debtors` number, nullable: Debtors, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `stocks` number, nullable: Stocks, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `prepayments_accrued_income` number, nullable: Prepayments and accrued income shown outside current assets, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `share_capital_not_paid` number, nullable: Called-up share capital not paid, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `liabilities` object
        - `current_liabilities` number, nullable: Creditors due within a year, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `long_term_liabilities` number, nullable: Creditors due after a year, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `provisions` number, nullable: Provisions for liabilities, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `accruals_deferred_income` number, nullable: Accruals and deferred income shown outside creditors, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `total_liabilities` number, nullable: Total liabilities, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `net_position` object
        - `net_assets` number, nullable: Net assets (negative for net liabilities), in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `shareholder_funds` number, nullable: Shareholder funds, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `net_worth` number, nullable: Net worth, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `net_assets_label` 'Net assets' | 'Net liabilities' | 'null', nullable: How UK accounts present net_assets: "Net liabilities" when it is negative (show the amount without its sign), else "Net assets". Null when net_assets is null.
        - `net_current_assets` number, nullable: Net current assets: current assets less creditors due within a year, calculated here (negative for net current liabilities), in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
        - `net_current_assets_label` 'Net current assets' | 'Net current liabilities' | 'null', nullable: "Net current liabilities" when net_current_assets is negative, else "Net current assets". Null when it cannot be calculated.
    - `cash_and_funding` object
      - `cash_and_equivalents` number, nullable: Cash and cash equivalents, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `operating_cash_flow` number, nullable: Net cash from operating activities, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `shares_issued` number, nullable: Proceeds from shares issued in the period, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `share_capital` number, nullable: Called-up share capital, in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
      - `retained_earnings` number, nullable: Retained earnings (negative for accumulated losses), in whole units of the reporting currency (normally GBP pounds, not pence); null when not published
    - `employees` integer, nullable
    - `ratios` object, required
      - `current_ratio` number, nullable
      - `debt_to_equity` number, nullable: Total liabilities (printed, or calculated where it closes the balance sheet) divided by net assets; absent when net assets are nil or negative
      - `profit_margin` number, nullable: Profit before tax as a percentage of turnover
      - `return_on_assets` number, nullable: Percentage
    - `period_months` integer, nullable
    - `source` object
      - `kind` 'filed' | 'comparative' | 'scanned' | 'unverified': filed: the year's own electronic accounts. comparative: the prior-year column of the next year's accounts. scanned: read from a PDF or paper filing. unverified: read by an earlier parser and not re-checked.
      - `quality` integer, nullable
      - `flags` string[]
      - `implausible` string[]: Rules the figures break (for example a units error in the filing); the year is shown as filed and left out of summaries
      - `derived` string[]: Fields calculated from the other figures the accounts give, not read from them
    - `restated` object, nullable: Figures a later filing reported differently for this year, on the same basis
    - `not_filed` object: Blank figures the filing does not give, by field name (turnover, cash_at_bank, num_employees, ...), each with the reason in words: a check of the filing found no figure, or the accounts type does not require it (micro-entity, filleted or abbreviated small-company, dormant). A blank figure not listed here is one not read from the filing.
    - `parsed_at` string, date-time, nullable
  - `newer_accounts` object, nullable: Present (not null) when the register shows accounts made up to a later date than the newest year held: they are filed at Companies House and have not been read yet (accounts filed on paper or as a PDF wait to be read). null when the newest year held is the latest filed
    - `made_up_to` string, date, required: The date the newer accounts are made up to
    - `filed_on` string, date, nullable, required: The day they were filed, when the filing history held shows it
    - `text` string, required: The same in a sentence, for a page
  - `notice` string: Who the data is prepared for and that CompanyStack accepts no responsibility to anyone else who relies on it (Terms 15B). Keep it with the data if you show it to others (Terms 17.5).
  - `coverage` object, nullable: How complete the run of figures is, and whether the filing history is still being checked
    - `state` 'complete' | 'latest_missing' | 'holes' | 'no_figures' | 'dormant'
    - `held_years` integer
    - `latest_filed` string, date, nullable
    - `latest_missing` boolean
    - `holes` integer
    - `history` 'checking' | 'reading' | 'checked' | 'unknown'
    - `years_being_read` integer
    - `years_in_review` integer
  - `history_limited_to` integer: Present when the plan caps the years shown
  - `reading` object, nullable: When no figures are held: the state of reading the filed documents (queued, reading, review, done, failed)

## Other responses

- `400`: basis is not company, group or presented
- `401`: API key missing, malformed or revoked
- `403`: The key's plan does not include this endpoint (`code: plan_upgrade_required`, with `upgrade_url`), the key may not call it, or the key is beyond the plan's key limit after a downgrade (`code: key_limit_exceeded`: the newest keys are paused until keys are deleted or the plan upgraded)
- `429`: Per-minute or per-day limit reached (`code: rate_limited`, `window: minute|day`). Wait `Retry-After` seconds; when both windows are full the day is reported. A refused request does not count against either limit. A bulk lookup (`POST /company/bulk`) counts each company number in it as one request, so one that is more than you have left is refused whole, and the body adds `requested` and `fits`.

---

[API](https://skmtc.dev/companystack/apis/companystack-api.md) · [All operations](https://skmtc.dev/companystack/apis/companystack-api/llms.txt) · [OpenAPI document](https://skmtc.dev/companystack/apis/companystack-api/revisions/8f3234237d2d?raw)
