Skip to main content

Patch cells (batch)

Write values into multiple cells. Unknown keys create manual/API columns; detect_types controls inference for new columns and defaults false.

PATCH/api/tables/{table_id}/cells
Scope tables:writeUpdated September 27, 2026

This page documents the canonical HTTP contract. Switch to the CLI example when you want the operator workflow.

The successful response contains updated and eventReprocess; empty updates return only updated: 0. Writes are synchronous. The route rejects over 500 updates or 100 distinct rows with 413, requires every referenced row to belong to this table, and blocks semantic, calculated, or source-managed columns. A conflicting mutation returns 409.

Path parameters

  • table_idrequired

    string

    Target table ID.

Query parameters

  • detect_types · optional

    boolean

    When true, infer data types for newly created columns; default false.

Body parameters

  • updatesrequired

    array

    Required list of cell writes. Each item includes rowId, key, and optional value. Maximum 500 updates and 100 distinct rows.

  • updates[].rowIdrequired

    string

    Row ID.

  • updates[].keyrequired

    string

    Column key. Missing keys create new manual/API columns.

  • updates[].value · optional

    any|null

    Arbitrary JSON cell value; null or blank string clears the corresponding source value.

Errors

StatusMeaning
400Invalid payload or protected column.
401Invalid API key or missing auth.
403Access denied or missing tables:write scope.
404One or more rows not found in this table.
409Table is inactive or another row mutation is already active.
413More than 500 updates or 100 distinct rows.

Docs