---
title: "Run auto-categorize now for the family's personal rows"
method: POST
path: "/families/{id}/personal/categorize"
tags: ["Families"]
---

# Run auto-categorize now for the family's personal rows

`POST /families/{id}/personal/categorize`

## Request

- Base URL: `https://ledgerhq.pro/api/v1`
- URL: `https://ledgerhq.pro/api/v1/families/{id}/personal/categorize`
- Auth: one of:
  - HTTP bearer and API key in header `x-organization-id`
  - HTTP bearer and API key in header `x-organization-id`

Firm-side family relationships only. Select the firm with x-organization-id. Owners, Admins and Staff Admins access all firm families; Staff Members need independent family assignment. Company access does not grant family access. OAuth requires the broad mcp grant, not a narrow banking scope; API keys retain ordinary agent permission scopes. No accounting organizations, portal grants, bank changes, invitations or charges are created. Writes require ordinary firm write entitlement. Cross-firm and inaccessible IDs return 404. Personal accounts never post journals; these operations read delivered bank rows and save household categories, notes and rules. Rows nobody categorized by hand are categorized automatically (rule, then the firm's earlier choice for the merchant, then Plaid, then AI); a person's choice always wins. Rules never hide rows. Revisits rows automation categorized before, so a new rule or merchant choice takes effect. AI uses the firm's Tally allowance. Requires banking permission.

## Path parameters

- `id` string, uuid, required

## Response `200`

Success

- object
  - `success` boolean
  - `familyId` string, uuid
  - `categorized` integer
  - `bySource` object
    - `rule` integer
    - `firm` integer
    - `plaid` integer
    - `ai` integer
  - `aiReviewed` integer
  - `more` boolean: More merchants wait for AI; run again or let the bank-feed process continue
  - `stoppedReason` string, nullable: Why AI stopped early, such as the firm's Tally allowance

## Other responses

- `403`: Firm staff or required permission missing
- `404`: Record not found or not accessible
- `409`: Archived family, last-member removal, identity conflict, already-linked member, explicit owner selection required, or redundant administrator assignment

## Changes

- **2026-10-20** `01c3e57d281f`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/ledgerhq-pro/apis/ledgerhq-bookkeeping-api/changes/families/:id/personal/categorize/post.md)

---

[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)
