---
title: "Update exact records"
method: POST
path: "/api/mcp/tools/update_entity_records"
tags: ["tools"]
---

# Update exact records

`POST /api/mcp/tools/update_entity_records`

## Request

- Base URL: `https://finestructure.ai`
- URL: `https://finestructure.ai/api/mcp/tools/update_entity_records`
- Auth: HTTP bearer

Update exact records. Select explicit record_ids or exact-match filters and provide shared changes, or provide per-record updates. Executes directly for the authenticated app owner; expected_count aborts the write on a mismatch.

## Request body

- object
  - `app_id` string, required: The app ID
  - `entity` string, required: Entity name
  - `record_ids` string[]: Exact record IDs to update
  - `filters` union: One exact-match selector or a list of exact-match selectors
    - object
    - object[]
  - `changes` object: Shared fields to merge into every selected record
  - `updates` object[]: Per-record changes; use instead of shared changes
    - `record_id` string, required
    - `changes` object, required
  - `reason` string: Why these records should be updated
  - `expected_count` integer: Required match count safety check, when known

## Response `200`

Tool executed successfully

- ToolResult
  - `ok` boolean, required
  - `tool` string, required
  - `result` object, required

## Other responses

- `400`: Invalid arguments for this tool
- `401`: Missing or invalid bearer token
- `402`: Not enough credits on the account
- `403`: Token scope does not permit this tool
- `404`: Unknown tool name
- `429`: Rate limit exceeded, retry after the indicated delay
- `500`: Internal error while executing the tool

---

[API](https://skmtc.dev/finestructure/apis/fine-structure-api.md) · [All operations](https://skmtc.dev/finestructure/apis/fine-structure-api/llms.txt) · [OpenAPI document](https://skmtc.dev/finestructure/apis/fine-structure-api/revisions/02c50ed5fd70?raw)
