---
title: "Edit a company row's field values"
method: PATCH
path: "/api/v1/ackdb/observe/companies/{entityId}/fields"
tags: ["ackDB"]
---

# Edit a company row's field values

`PATCH /api/v1/ackdb/observe/companies/{entityId}/fields`

## Request

- Base URL: `http://localhost:3009`
- URL: `http://localhost:3009/api/v1/ackdb/observe/companies/{entityId}/fields`
- Auth: HTTP bearer

Directly edit the values a company row shows (#238) - a batch { "<fieldKey>": <value>, … }. The server routes each field by its catalog group: a TRAIT upserts entity_traits (op:set, the same row POST /ingest writes, stamped source="manual", validated against the trait definition); the `name` attribute updates the entity. Computed/derived columns (activity, event_count, sources, last_active, revenue, credits, source_names, domain, created_at, …), event columns (append-only), and the internal `status` lifecycle enum are rejected per-field (edit the status/lifecycle TRAIT instead). Trait definitions, events, and raw_payloads are never touched. Partial success: valid fields apply, the rest return in `errors`.

## Path parameters

- `entityId` string, required

## Request body

- object: Field key → new value. Multiple fields allowed.

## Response `200`

The keys that were updated + a per-field error map for any that were rejected.

- AckdbObserveFieldEditResponse: Result of a direct field-value edit (#238). `updated` lists the field keys that were written; `errors` maps each field that was NOT written to a reason - an unknown field, a type/allowedValues violation, or a non-editable field (a computed/derived column, an append-only event/event-field column, or the internal `status` lifecycle enum).
  - `data` object, required
    - `updated` string[], required: Field keys successfully written.
    - `errors` object, required: Field key → rejection/validation reason for fields that were not written.

## Other responses

- `400`: Empty/non-object body, or no field could be updated (BAD_REQUEST; `details.errors` per field).
- `404`: No company with that entity_id (ENTITY_NOT_FOUND).

---

[API](https://skmtc.dev/floqer/apis/floqer-public-api.md) - [All operations](https://skmtc.dev/floqer/apis/floqer-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/floqer/apis/floqer-public-api/revisions/fce50dc07b20?raw)
