Skip to content

Tables

Update column

Update a column by name and return the complete schema. Renames update rows, views, and workflow-group references keyed by column ID. Workflow Table blocks keep their authored `filter`, `order`, and `data` JSON unchanged. Bound blocks still referencing the old name appear in `unmigrated`; edit them with Apply Workflow Operations to prevent failures on their next run. OAuth scope: `api:write`.

PATCH/api/v2/tables/{tableId}/columns

Update a column by name and return the complete schema. Renames update rows, views, and workflow-group references keyed by column ID. Workflow Table blocks keep their authored filter, order, and data JSON unchanged. Bound blocks still referencing the old name appear in unmigrated; edit them with Apply Workflow Operations to prevent failures on their next run.

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, current column name, and fields to update.

object

Workspace scope, current column name, and fields to update.

3 fields
workspaceIdstringRequired

Workspace that owns the table.

minLength
1
maxLength
128
columnNamestringRequired

Current name of the column to update.

minLength
1
maxLength
50
pattern
^[A-Za-z_][A-Za-z0-9_]*$
updatesobjectRequired

Mutable column fields.

7 fields
namestring

Replacement column name.

minLength
1
maxLength
50
pattern
^[A-Za-z_][A-Za-z0-9_]*$
typestring

Replacement column data type.

enum
["string","number","currency","boolean","date","json","select"]
requiredboolean

Whether inserts must supply a value for this column.

uniqueboolean

Whether values in the column must be unique.

optionsarray

Replacement select options for select-type columns.

maxItems
100
Schema details
Array itemobject
2 fields
idstringRequired

Stable select-option identifier.

minLength
1
namestringRequired

Display name of the select option.

minLength
1
maxLength
100
multipleboolean

Whether a select column accepts multiple values.

currencyCodestring

Replacement ISO 4217 code for a currency column.

pattern
^[A-Za-z]{3}$

Additional properties are not allowed.

Additional properties are not allowed.

Request example 1

json
{
  "workspaceId": "a91c4b2e-6d3f-4e8a-b5c7-0d9e2f1a8c64",
  "columnName": "plan",
  "updates": {
    "name": "subscriptionPlan"
  }
}

Responses

200

The updated table columns, plus any unmigrated workflow Table blocks.

object

The table column list after the update, plus workflow Table blocks a rename left on the old column name.

1 field
dataobjectRequired

Response data.

2 fields
columnsarrayRequired

Current table columns.

Schema details
Array itemobject

A typed column in a table schema.

9 fields
idstring

Stable server-assigned column identifier.

namestringRequired

Column name used as the public row-data key.

minLength
1
maxLength
50
pattern
^[A-Za-z_][A-Za-z0-9_]*$
typestringRequired

Data type of values stored in the column.

enum
["string","number","currency","boolean","date","json","select"]
requiredbooleanRequired

Whether inserts require a value for this column.

default
false
uniquebooleanRequired

Whether values must be unique across table rows.

default
false
workflowGroupIdstring

Workflow group whose output populates this column.

optionsarray

Options declared for a select column.

maxItems
100
Schema details
Array itemobject
2 fields
idstringRequired

Stable select-option identifier.

minLength
1
namestringRequired

Display name of the select option.

minLength
1
maxLength
100

Additional properties are not allowed.

multipleboolean

Whether a select column accepts multiple options.

currencyCodestring

ISO 4217 code for a currency column, normalized to uppercase.

pattern
^[A-Za-z]{3}$

Additional properties are not allowed.

unmigratedarrayRequired

Workflow Table blocks bound to this table whose filter, order, or data still name the column by its previous name. Only populated by a rename; empty otherwise. Workflow state is never rewritten here — edit those blocks with Apply Workflow Operations or their next run fails on the old name.

Schema details
Array itemobject

A workflow Table block still configured against a renamed column.

5 fields
workflowIdstringRequired

Workflow holding the Table block.

workflowNamestringRequired

Display name of that workflow.

blockIdstringRequired

Table block whose configuration still names the old column.

blockNamestringRequired

Display name of that block.

fieldsarrayRequired

Sub-block fields that still reference the old column name.

Schema details
Array itemstring
enum
["filter","order","data"]

Additional properties are not allowed.

Additional properties are not allowed.

Additional properties are not allowed.

Response example 1

json
{
  "data": {
    "columns": [
      {
        "id": "col_name",
        "name": "name",
        "type": "string",
        "required": true,
        "unique": false
      },
      {
        "id": "col_plan",
        "name": "subscriptionPlan",
        "type": "string",
        "required": false,
        "unique": false
      }
    ],
    "unmigrated": [
      {
        "workflowId": "3b1f7c92-8d4e-4a6b-9c0d-5e2f8a714b36",
        "workflowName": "Weekly digest",
        "blockId": "blk_9c1d3f5a7e2b4068a0c2e4f6b8d0f193",
        "blockName": "Query plans",
        "fields": [
          "filter"
        ]
      }
    ]
  }
}

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