Skip to content

Tables

Bulk update rows

Apply separate partial patches to up to 1,000 rows, preserving omitted columns. A row outside the table rejects the entire request with `400` and lists missing IDs. Use Update rows by filter to apply one patch to every matching row. OAuth scope: `api:write`.

POST/api/v2/tables/{tableId}/rows/bulk-update

Apply separate partial patches to up to 1,000 rows, preserving omitted columns. A row outside the table rejects the entire request with 400 and lists missing IDs. Use Update rows by filter to apply one patch to every matching row.

OAuth scope: api:write.

Authentication

Send a personal or workspace API key in X-API-Key. See key types and access; operations that reject workspace keys say so in their description.

Send X-API-Key in the request header.

Alternatively

Send a Sim OAuth access token in Authorization: Bearer. See OAuth authentication and scopes.

Authorization: Bearer YOUR_ACCESS_TOKEN

Required scopes: api:write

OAuth flows
json
{
  "authorizationCode": {
    "authorizationUrl": "https://www.sim.ai/api/auth/oauth2/authorize",
    "tokenUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "refreshUrl": "https://www.sim.ai/api/auth/oauth2/token",
    "scopes": {
      "api:read": "Read your workspaces, workflows, files, tables, and logs",
      "api:write": "Read, create, change, run, and delete resources in your workspaces",
      "offline_access": "Stay signed in without asking again"
    }
  }
}

OAuth scope: api:write.

Path parameters

tableIdstringRequired

Unique table identifier.

minLength
1

Request body

Required

Workspace scope and one merge patch per row.

object

Workspace scope and one merge patch per row.

2 fields
workspaceIdstringRequired

Workspace that owns the table.

minLength
1
maxLength
128
updatesarrayRequired

One merge patch per row. Each row identifier may appear at most once.

minItems
1
maxItems
1000
Schema details
Array itemobject
2 fields
rowIdstringRequired

Identifier of the row this patch applies to.

minLength
1
dataobjectRequired

Cells to merge into this row, keyed by column name.

Schema details
Additional propertiesvalue

User-defined cell value interpreted by its column definition.

Additional properties are not allowed.

Additional properties are not allowed.

Request example 1

json
{
  "workspaceId": "a91c4b2e-6d3f-4e8a-b5c7-0d9e2f1a8c64",
  "updates": [
    {
      "rowId": "row_1f3e5d7c9b8a4c2d806e4a6b8d0f2e93",
      "data": {
        "status": "active"
      }
    },
    {
      "rowId": "row_2b4d6f8a0c1e3759b8d0f2a4c6e80193",
      "data": {
        "status": "churned"
      }
    }
  ]
}

Responses

200

The bulk update result.

object

Updated row count and identifiers.

1 field
dataobjectRequired

Response data.

2 fields
updatedCountintegerRequired

Number of rows the batch updated.

minimum
0
maximum
9007199254740991
updatedRowIdsarrayRequired

Identifiers of the rows the batch updated.

Schema details
Array itemstring

Additional properties are not allowed.

Additional properties are not allowed.

Response headers

X-RateLimit-Limitinteger

Maximum requests allowed in the current window.

minimum
0
maximum
9007199254740991
X-RateLimit-Remaininginteger

Requests remaining in the current window.

minimum
0
maximum
9007199254740991
X-RateLimit-Resetstring

ISO 8601 timestamp when the current rate-limit window resets.

format
date-time
pattern
^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Was this helpful?
Suggest an edit