---
title: "Delete Rows"
method: DELETE
path: "/api/v1/tables/{tableId}/rows"
tags: ["Tables"]
---

# Delete Rows

`DELETE /api/v1/tables/{tableId}/rows`

Delete rows by filter criteria or by an explicit list of row IDs. Pass either a `filter` object or a `rowIds` array.

## Path parameters

- `tableId` string, required

## Request body

- union
  - object — Delete by filter.
    - `workspaceId` string, required — The workspace that owns the table.
    - `filter` object, required — Filter criteria to match rows for deletion.
    - `limit` integer — Maximum number of rows to delete. Defaults to all matching rows, capped at 1000.
  - object — Delete by IDs.
    - `workspaceId` string, required — The workspace that owns the table.
    - `rowIds` string[], required — Explicit list of row IDs to delete (max 1000).

## Response `200`

Rows deleted.

- object
  - `success` boolean — Indicates whether the request was successful.
  - `data` object — Response payload.
    - `message` string — Confirmation message describing how many rows were deleted.
    - `deletedCount` integer — Number of rows that were deleted.
    - `deletedRowIds` string[] — Array of IDs for each row that was deleted.
    - `requestedCount` integer — Number of row IDs requested for deletion (only present when deleting by IDs).
    - `missingRowIds` string[] — Row IDs that were requested but not found (only present when deleting by IDs).

## Other responses

- `400` — Invalid request parameters. Check the details array for specific validation errors.
- `401` — Invalid or missing API key. Ensure the X-API-Key header is set with a valid key.
- `403` — Access denied. You do not have permission to access this resource. For audit log endpoints, this requires an Enterprise subscription and organization admin/owner role.
- `404` — The requested resource was not found. Verify the ID is correct and belongs to your workspace.
- `429` — Rate limit exceeded. Wait for the duration specified in the Retry-After header before retrying. The X-RateLimit-* headers accompany every response from an authenticated v1 request — success and error alike — and are omitted only when the request fails authentication, since no rate-limit bucket is consulted in that case.

---

[API](https://skmtc.net/simstudioai/apis/sim-api.md) · [All operations](https://skmtc.net/simstudioai/apis/sim-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/simstudioai/sim-api/versions/66a471c5b1df/schema)
