---
title: "Delete a record, as the builder"
description: "Removes the row, its links and (out of sight) its comments."
canonical: "https://gtable.app/docs/builder-api/data/records-delete"
updated: "2026-10-05"
---

# Delete a record, as the builder

`DELETE https://studio.gtable.app/v1/apps/{appId}/tables/{tableId}/records/{recordId}`

Removes the row, its links and (out of sight) its comments.

The op log keeps all three, so changesets.revert puts the record back whole, same id, same number, its links to records that still exist, its comments, the id of the bundle to pass it comes back as `changesetId`.

Requires the `records:write` scope. Operation `apps.records.delete`. MCP tool `apps_records_delete`. CLI, once published: `gtable apps records delete`.

## Path parameters

| Name       | Type   | Required | Description |
| ---------- | ------ | -------- | ----------- |
| `appId`    | string | yes      |             |
| `tableId`  | string | yes      |             |
| `recordId` | string | yes      |             |

## Headers

| Name              | Type   | Required | Description                                                                                                                                                                                                                                                        |
| ----------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Idempotency-Key` | string | no       | Any unique string. Sending the same key with the same request again returns the first response (marked `Idempotency-Replayed: true`) instead of running it twice. Reusing it for a different request is refused with 409. Kept for 24 hours. Up to 255 characters. |
