Skip to main content
PATCH
/
api
/
lists
/
{id}
/
companies
/
{cid}
/
cells
Update a company cell
curl --request PATCH \
  --url https://app.puffle.ai/api/lists/{id}/companies/{cid}/cells \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "columnId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "value": "<string>"
}
'
{ "success": true }

Overview

Upsert a single cell under list_company_cells, keyed by (columnId, companyRowId). If a cell already exists for that pair, its value is overwritten; otherwise a new row is inserted. Status is forced to complete — this endpoint is for manual edits, not for programmatic enrichment (enrichment cells are written by Trigger.dev tasks). An empty string or omitted value is stored as NULL. There is no server-side type coercion — the value is stored as-is regardless of the column’s responseType.

AI agent notes

This is for manual edits. If you want to trigger re-enrichment of a cell, use the column’s generate endpoint instead — overwriting here will not re-run the enrichment agent.Column must exist on the list. The endpoint does not validate that columnId is a company-subject column with matching list ownership. Supplying a stale or foreign columnId will insert a dangling cell row that the UI won’t render. Always discover columnId via listListCompanies first.No partial cell updates. This replaces value wholesale. To clear a cell, pass value: null (or omit the field).Reasoning and error are untouched. If the cell was previously produced by an enrichment run with reasoning or error set, those fields stay. Status is forced to complete regardless of prior state.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string<uuid>
required

List UUID

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
cid
string<uuid>
required

Company row UUID

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$

Body

application/json

Upsert a single cell. If a cell already exists for (columnId, companyRowId) it is updated; otherwise a new one is inserted. Status is forced to complete.

columnId
string<uuid>
required

The company-subject column this cell belongs to. Must exist on the list.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
value
string | null

New cell value. Empty string or omitted is written as NULL. Arbitrary text — no server-side schema validation at this endpoint.

Response

Cell upserted successfully.

success
enum<boolean>
required
Available options:
true