Skip to main content
PUT
Upsert rows into a table

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

table_id
string
required

Body

application/json

Upsert rows keyed on their business columns.

The primary key (s_id) is derived server-side from key_columns, so rows must NOT carry s_id; re-sending the same entity updates it in place rather than duplicating. Inherits the same per-row validation as append.

rows
Rows · object[]
required

Rows to upsert, 1 to 500 per request. Each row is an object of column_name to scalar value; values are coerced to their column type by the table's schema. Every row must carry the same column names. Do NOT include the primary key (s_id) — it is derived from key_columns.

Required array length: 1 - 500 elements
key_columns
string[] | null

Business-key column names that identify a row. The stable primary key (s_id) is derived deterministically from just these columns, so the same entity always maps to the same row: re-sending it updates in place. Each must be present and non-empty in every row. Omit to use the table's own declared business keys — the usual case, so a caller need not restate keys the table already defines. If provided, must not be empty, and must match the table's declared key columns exactly whenever the rows carry any of them: the declared keys are the row identity the backend enforces, so no other identity can upsert them idempotently.

Minimum array length: 1

Response

Successful Response