---
title: "Research category suggestions for bank transactions"
method: POST
path: "/bank-transactions/suggestions/research"
tags: ["Banking"]
---

# Research category suggestions for bank transactions

`POST /bank-transactions/suggestions/research`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/bank-transactions/suggestions/research`
- Auth: one of:
  - HTTP bearer and API key in header `x-organization-id`
  - HTTP bearer and API key in header `x-organization-id`

Runs the bounded AI fallback for selected uncoded bank-feed rows, then returns the shared phone-book, history, and AI suggestions. Deterministic phone-book and history suggestions remain authoritative when present.

## Request body

- union
  - object
    - `bankAccountId` string, uuid, required
    - `bankTransactionIds` string[]
  - object
    - `bankAccountId` string, uuid
    - `bankTransactionIds` string[], required

## Response `200`

Research receipt and current suggestions

- object
  - `research` object
    - `organizationId` string, uuid
    - `skipped` 'not_configured' | 'budget_exhausted' | 'nothing_to_research' | 'no_income_or_expense_accounts'
    - `researched` integer
    - `suggested` integer
    - `rejectedInvalidAccount` integer
    - `spentMicrodollars` integer
    - `budgetRemainingMicrodollars` integer
  - `suggestions` object[]
    - `bankTransactionId` string, uuid
    - `accountId` string, uuid
    - `accountCode` string
    - `accountName` string
    - `category` string, nullable
    - `basis` string
    - `occurrences` integer
    - `confidence` number
    - `source` 'phonebook' | 'taxonomy' | 'history' | 'ai'
    - `rationale` string, nullable

## Other responses

- `default`: Error response

---

[API](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api.md) · [All operations](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/revisions/9a8269f0a586?raw)
