Skip to content

Tables

Delete rows

Delete rows by a non-empty predicate or an explicit bounded list of row identifiers. OAuth scope: `api:write`.

DELETE/api/v2/tables/{tableId}/rows

Delete rows by a non-empty predicate or an explicit bounded list of row identifiers.

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 exactly one of a predicate or row identifier list.

object

Workspace scope and exactly one of a predicate or row identifier list.

4 fields
workspaceIdstringRequired

Unique workspace identifier.

minLength
1
maxLength
128
filterTablePredicateInput

One condition or a recursive all/any group, normalized to a grouped predicate. Limits: 100 members per group, 10 levels, and 500 nodes. The negating operators include nulls and absent cells, multi-select included; combine with isNotNull or isNotEmpty to exclude them. Pattern operators use * as the only wildcard; %, _, and backslash are literal. Select operators: single-select uses eq/ne/in/nin; multi-select uses contains/ncontains; option names resolve to IDs. Full operand rules are documented on op.

Schema details

Exactly one of

Option 1object

Matches a row when every member matches.

1 field
allarrayRequired

Members combined with AND. An empty group is rejected, because it would compile to no filter at all.

minItems
1
maxItems
100
Schema details
Array itemvalue

A nested group, or a single condition.

Schema details

Any of

Option 1 references recursive schema TablePredicateInput. See the complete schema in the OpenAPI download.

Option 2object

One column comparison.

3 fields
fieldstringRequired

Column name to compare, or one of the system fields id, createdAt, updatedAt.

minLength
1
maxLength
128
opstringRequired

Operators: eq, ne, gt, gte, lt, lte; in/nin take arrays; isEmpty, isNotEmpty, isNull, and isNotNull take no operand. Text operators are contains, ncontains, startsWith, endsWith, like, nlike, ilike, and nilike. Contains variants are case-insensitive and literal; like/nlike are case-sensitive, while ilike/nilike are case-insensitive. * is the only wildcard; %, _, and backslash are literal. For select columns, single-select accepts eq, ne, in, nin; multi-select accepts contains, ncontains. Option names resolve to IDs.

enum
["eq","ne","gt","gte","lt","lte","in","nin","contains","ncontains","startsWith","endsWith","like","ilike","nlike","nilike","isEmpty","isNotEmpty","isNull","isNotNull"]
valuevalue

Operand. A scalar for the comparison operators, an array of at most 1000 entries for in/nin, a pattern for the matching operators, and omitted for isEmpty/isNotEmpty/isNull/isNotNull.

Additional properties are not allowed.

Additional properties are not allowed.

Option 2object

Matches a row when at least one member matches.

1 field
anyarrayRequired

Members combined with OR. An empty group is rejected, because it would compile to no filter at all.

minItems
1
maxItems
100
Schema details
Array itemvalue

A nested group, or a single condition.

Schema details

Any of

Option 1 references recursive schema TablePredicateInput. See the complete schema in the OpenAPI download.

Option 2object

One column comparison.

3 fields
fieldstringRequired

Column name to compare, or one of the system fields id, createdAt, updatedAt.

minLength
1
maxLength
128
opstringRequired

Operators: eq, ne, gt, gte, lt, lte; in/nin take arrays; isEmpty, isNotEmpty, isNull, and isNotNull take no operand. Text operators are contains, ncontains, startsWith, endsWith, like, nlike, ilike, and nilike. Contains variants are case-insensitive and literal; like/nlike are case-sensitive, while ilike/nilike are case-insensitive. * is the only wildcard; %, _, and backslash are literal. For select columns, single-select accepts eq, ne, in, nin; multi-select accepts contains, ncontains. Option names resolve to IDs.

enum
["eq","ne","gt","gte","lt","lte","in","nin","contains","ncontains","startsWith","endsWith","like","ilike","nlike","nilike","isEmpty","isNotEmpty","isNull","isNotNull"]
valuevalue

Operand. A scalar for the comparison operators, an array of at most 1000 entries for in/nin, a pattern for the matching operators, and omitted for isEmpty/isNotEmpty/isNull/isNotNull.

Additional properties are not allowed.

Additional properties are not allowed.

Option 3object

One column comparison.

3 fields
fieldstringRequired

Column name to compare, or one of the system fields id, createdAt, updatedAt.

minLength
1
maxLength
128
opstringRequired

Operators: eq, ne, gt, gte, lt, lte; in/nin take arrays; isEmpty, isNotEmpty, isNull, and isNotNull take no operand. Text operators are contains, ncontains, startsWith, endsWith, like, nlike, ilike, and nilike. Contains variants are case-insensitive and literal; like/nlike are case-sensitive, while ilike/nilike are case-insensitive. * is the only wildcard; %, _, and backslash are literal. For select columns, single-select accepts eq, ne, in, nin; multi-select accepts contains, ncontains. Option names resolve to IDs.

enum
["eq","ne","gt","gte","lt","lte","in","nin","contains","ncontains","startsWith","endsWith","like","ilike","nlike","nilike","isEmpty","isNotEmpty","isNull","isNotNull"]
valuevalue

Operand. A scalar for the comparison operators, an array of at most 1000 entries for in/nin, a pattern for the matching operators, and omitted for isEmpty/isNotEmpty/isNull/isNotNull.

Additional properties are not allowed.

limitinteger

Maximum matching rows to delete.

minimum
1
maximum
1000
rowIdsarray

Explicit row identifiers to delete.

minItems
1
maxItems
1000
Schema details
Array itemstring
minLength
1

Additional properties are not allowed.

Request example 1

json
{
  "workspaceId": "a91c4b2e-6d3f-4e8a-b5c7-0d9e2f1a8c64",
  "rowIds": [
    "row_1f3e5d7c9b8a4c2d806e4a6b8d0f2e93"
  ]
}

Responses

200

The bulk deletion result.

object

Deleted row counts, identifiers, and optional missing identifiers.

1 field
dataobjectRequired

Response data.

4 fields
deletedCountnumberRequired

Number of deleted rows.

deletedRowIdsarrayRequired

Identifiers of deleted rows.

Schema details
Array itemstring
requestedCountnumber

Number of row identifiers requested.

missingRowIdsarray

Requested row identifiers not found.

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