---
title: "Delete Table Records"
method: DELETE
path: "/api/v3/data/{baseId}/{tableId}/records"
tags: ["Table Records"]
---

# Delete Table Records

`DELETE /api/v3/data/{baseId}/{tableId}/records`

## Request

- Base URL: `https://app.nocodb.com`
- URL: `https://app.nocodb.com/api/v3/data/{baseId}/{tableId}/records`
- Auth: one of:
  - API key in header `xc-token`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/nocodb/apis/nocodb-v3/docs/api/v3/data/:baseId/:tableId/records/delete.ts> (a function with typed inputs; its response is checked against the schema)

Delete one or more records, addressed by `id`. Send a single object or an array, or pass ids in the `records` query parameter. The count is capped per deployment (10 by default).

## Query parameters

- `records` union
  - string[]
  - string
- `view_id` string

## Headers

- `xc-token` string, required

## Request body

- union
  - DataDeleteRequestV3: Single record delete request
    - `id` union, required: Record identifier
      - string
      - number
  - DataDeleteRequestV3[]: Up to 10 records per request by default; the cap is configured per deployment and exceeding it returns 422. Ids given through the `records` query parameter are merged into this array before the count.
    - `id` union, required: Record identifier
      - string
      - number

## Response `200`

OK

- DataDeleteResponseV3: V3 Data Delete Response format
  - `records` DataRecordWithDeletedV3[], required: Array of deleted records
    - `id` union, required: Record identifier (primary key value)
      - string
      - number
    - `id_fields` object: Individual primary key field values as object
    - `fields` object: Record fields data, excluding the primary key. Always present; an empty object when the record has no other fields.
    - `field_errors` string[]: Fields whose value could not be computed because the field is broken (e.g. a lookup through a deleted link). Their value in `fields` is null.
    - `deleted` boolean, required: Indicates if the record was deleted

## Other responses

- `400`: BadRequest
- `422`: Unprocessable Entity — more records than the deployment's bulk cap (`ERR_MAX_PAYLOAD_LIMIT_EXCEEDED`).

## Changes

- **2026-10-13** `2ba4267a99d7`: 4 info
  - added the new optional `query` request parameter `records`
  - added the new optional `query` request parameter `view_id`
  - added the non-success response with the status `422`
  - added the optional property `records/items/allOf[#/components/schemas/DataRecordV3]/field_errors` to the response with the `200` status

[Operation history](https://skmtc.dev/nocodb/apis/nocodb-v3/changes/api/v3/data/:baseId/:tableId/records/delete.md)

---

[API](https://skmtc.dev/nocodb/apis/nocodb-v3.md) - [All operations](https://skmtc.dev/nocodb/apis/nocodb-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/nocodb/apis/nocodb-v3/revisions/62a735aaf849?raw)
