---
name: "companies_read_accounts"
area: "companies"
title: "Read the statements in an annual report"
price: "$0.05"
method: "POST"
url: "https://api.conecto.chat/v1/tools/companies_read_accounts"
mcp_server: "https://api.conecto.chat/mcp/companies"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/companies/companies_read_accounts"
---

# Read the statements in an annual report (`companies_read_accounts`)

The balance sheet and income statement read out of an annual report PDF, a scan by OCR, line by line with its page, German HGB or English.

The balance sheet and income statement read out of an annual report PDF in the file store (German HGB or English IFRS and UK GAAP): each recognised line with its figures per year and its page, and the figures by year under the fields companies_financials uses, scaled by the unit the report states. For companies whose register publishes no figures: German ones from their own report (from the business or the Bundesanzeiger), big UK ones from the accounts companies_save_accounts saves. A scan is read by OCR on Conecto's own server, from the pages that open with a statement's name; OCR can misread a digit, so check says which pages to look at yourself with documents_page_images. Nothing is charged when no statement line is found.

Price: $0.05 a call. A call that fails costs nothing.

## Use it when

For a company whose register publishes no figures: German ones from their own annual report, big UK ones from the scan companies_save_accounts saves.

- For figures a register publishes, use [companies_financials](https://conecto.chat/tools/companies/companies_financials.md).
- For the whole text of a PDF, use [documents_read_pdf](https://conecto.chat/tools/documents/documents_read_pdf.md).

## Say this to your agent

> Here is Kuechentechnik Nord's Jahresabschluss for 2025. Pull out its revenue, profit, equity and bank debt.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `file_id` | string | yes | The annual report, a PDF in the file store. Exactly 36 characters. |  |  |
| `first_page` | integer | no | At least 1. |  | `1` |
| `last_page` | integer | no | At least 1. |  |  |

## Example

Written for Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff.

MCP: call `companies_read_accounts` on the MCP server `https://api.conecto.chat/mcp/companies` with these arguments:

```json
{
  "file_id": "5b8e2c4d-1a9f-4e3b-8c7d-6f5e4d3c2b1a"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/companies_read_accounts \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_id": "5b8e2c4d-1a9f-4e3b-8c7d-6f5e4d3c2b1a"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "companies_read_accounts",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.05",
  "balance_usd": "$19.75",
  "result": {
    "file_id": "5b8e2c4d-1a9f-4e3b-8c7d-6f5e4d3c2b1a",
    "pages_read": [
      1,
      2
    ],
    "page_count": 2,
    "scan": false,
    "statement_pages": [
      {
        "page": 1,
        "heading": "Bilanz"
      },
      {
        "page": 2,
        "heading": "Gewinn- und Verlustrechnung"
      }
    ],
    "unit_scale": 1,
    "currency": "EUR",
    "number_format": "german",
    "columns": [
      "2025",
      "2024"
    ],
    "lines": [
      {
        "label": "A. Anlagevermögen",
        "field": "fixed_assets",
        "page": 1,
        "values": [
          2749492.0,
          2512000.0
        ]
      },
      {
        "label": "II. Sachanlagen",
        "field": "ppe_net",
        "page": 1,
        "values": [
          2311000.0,
          2100000.0
        ]
      }
    ],
    "mapped": {
      "2025": {
        "fixed_assets": 2749492.0,
        "ppe_net": 2311000.0,
        "current_assets": 15381836.0,
        "inventory": 6133476.0,
        "receivables": 6494584.0,
        "cash": 2753776.0,
        "total_assets": 18131328.0,
        "total_equity": 3791770.0,
        "provisions": 1200000.0,
        "bank_debt": 2228883.0,
        "payables": 4100000.0,
        "total_liabilities": 13139558.0,
        "revenue": 52211351.0,
        "materials": -38000000.0,
        "staff_costs": 7120030.0,
        "depreciation": 512000.0,
        "other_operating_expenses": 4910493.0,
        "interest_expense": 285514.0,
        "income_taxes": 292669.0,
        "net_income": 824858.0
      },
      "2024": {
        "fixed_assets": 2512000.0,
        "ppe_net": 2100000.0,
        "current_assets": 13900000.0,
        "inventory": 5800000.0,
        "receivables": 6000000.0,
        "cash": 2100000.0,
        "total_assets": 16412000.0,
        "total_equity": 3300000.0,
        "provisions": 1100000.0,
        "bank_debt": 2400000.0,
        "payables": 3900000.0,
        "total_liabilities": 12012000.0,
        "revenue": 50792301.0,
        "materials": -37000000.0,
        "staff_costs": 6900000.0,
        "depreciation": 480000.0,
        "other_operating_expenses": 4700000.0,
        "interest_expense": 300000.0,
        "income_taxes": 280000.0,
        "net_income": 712000.0
      }
    },
    "method": "Statement lines recognised by their labels (HGB in German, IFRS and UK GAAP in English), with the figures at the end of each line, scaled by the unit the document states. Check each figure against its page; a field found twice keeps its first figures."
  }
}
```

`result`: file_id, pages_read, page_count, scan, statement_pages, unit_scale, currency, number_format, columns (the years), lines (label, field, page, values), mapped (the figures by year and field) and method; for a scan also ocr_pages and check (the pages to look at yourself); with a note and no charge when no line was recognised.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `not_found` | 404 | No file with that id on this account. | files_list shows them. |
| `unsupported_type` | 400 | The file isn't a PDF. | Send the annual report as a PDF. |
| `invalid_input` | 400 | The PDF can't be read, or took too long. | For a damaged file, ask for a new copy; for a long scan, pass the statements' first_page and last_page. |
| `unavailable` | 503 | The analysis service isn't switched on yet, or didn't answer. | Try again later. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [companies_search](https://conecto.chat/tools/companies/companies_search.md): Companies by name or id across the public registers, each with its id, country, status, city and industry, best match first. Free up to 1,000,000 reads a month.
- [companies_get](https://conecto.chat/tools/companies/companies_get.md): A company's record in its register: legal form, status, address, industry, employees, LEI and its officers by name and role. $0.05 a call.
- [companies_financials](https://conecto.chat/tools/companies/companies_financials.md): Up to ten years of a company's filed figures in one shape, each with its source document, plus growth, margins, returns and payment days. $0.05 a call.
- [companies_save_accounts](https://conecto.chat/tools/companies/companies_save_accounts.md): A UK company's annual accounts as filed with Companies House, saved to the file store as a PDF: the latest, or a year's. $0.001 a call.
- [companies_owners](https://conecto.chat/tools/companies/companies_owners.md): A company's parents and subsidiaries from GLEIF, the SEC and Wikidata and, in the UK, the people and companies with significant control. $0.05 a call.
- [companies_legal_notice](https://conecto.chat/tools/companies/companies_legal_notice.md): A company's legal notice (Impressum) read from its own website: legal name, register court and number, managers and VAT number. $0.01 a call.
- [companies_estimate](https://conecto.chat/tools/companies/companies_estimate.md): A revenue estimate from headcount and Eurostat's turnover per person employed for the size class and industry, always labeled as an estimate. Free up to 1,000,000 reads a month.
- [companies_match](https://conecto.chat/tools/companies/companies_match.md): Matches a company list (CSV, Excel or rows) to the registers in the background, with a results file of each match. $0.01 per row matched.
