Bind a workflow or enrichment to the table and create the columns populated by its outputs. An output whose column the table already has attaches that column to the group instead of creating it, so outputColumns may be omitted when every output lands in an existing column.
OAuth scope: api:write.
/api/v2/tables/{tableId}/groupsYour Sim API key, personal or workspace-scoped. Generate one under Settings, then API Keys. Operations that reject workspace keys say so in their own description.
In: header
Path Parameters
Unique table identifier.
1 <= lengthRequest Body
application/json
Workspace scope, producer definition, and output columns.
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://www.sim.ai/api/v2/tables/string/groups" \ -H "X-API-Key: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "workspaceId": "a91c4b2e-6d3f-4e8a-b5c7-0d9e2f1a8c64", "group": { "workflowId": "3b1f7c92-8d4e-4a6b-9c0d-5e2f8a714b36", "name": "Enrich company", "outputs": [ { "blockId": "block_lookup", "path": "output.revenue", "columnName": "revenue" } ] }, "outputColumns": [ { "name": "revenue", "type": "number" } ] }'{
"data": {
"group": {
"id": "string",
"workflowId": "string",
"enrichmentId": "string",
"name": "string",
"type": "manual",
"dependencies": {
"columns": [
"string"
]
},
"outputs": [
{
"blockId": "string",
"path": "string",
"outputId": "string",
"columnName": "string"
}
],
"inputMappings": [
{
"inputName": "string",
"columnName": "string"
}
],
"deploymentMode": "live",
"autoRun": true
},
"columns": [
{
"id": "string",
"name": "string",
"type": "string",
"required": false,
"unique": false,
"workflowGroupId": "string",
"options": [
{
"id": "string",
"name": "string"
}
],
"multiple": true,
"currencyCode": "string"
}
]
}
}{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request"
}
}{
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication required"
}
}{
"error": {
"code": "FORBIDDEN",
"message": "Insufficient workspace permissions",
"details": {
"code": "INSUFFICIENT_WORKSPACE_ROLE"
}
}
}{
"error": {
"code": "NOT_FOUND",
"message": "Not found"
}
}{
"error": {
"code": "PAYLOAD_TOO_LARGE",
"message": "Request body is too large"
}
}{
"error": {
"code": "UNSUPPORTED_MEDIA_TYPE",
"message": "Request body must be sent as application/json"
}
}{
"error": {
"code": "LOCKED",
"message": "This table is insert-locked: new rows cannot be added.",
"details": {
"lock": "insert"
}
}
}{
"error": {
"code": "RATE_LIMITED",
"message": "API rate limit exceeded",
"details": {
"retryAfter": "2026-01-01T00:00:30.000Z"
}
}
}{
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error"
}
}{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Service temporarily unavailable"
}
}