---
title: API CRUD DELETE | Datasquirel docs
description: Delete a record from a Datasquirel table via the API
page_title: DELETE
page_description: Delete one or more records from a table using the Datasquirel REST API or npm package.
---

## Overview

Use the DELETE endpoint to remove records from a table. You can delete by a specific record ID or by matching field values.

## npm Package

### Delete by ID

```javascript
import datasquirel from "@moduletrace/datasquirel";

const result = await datasquirel.crud.delete({
    dbName: "my_database",
    tableName: "users",
    targetID: 42,
    apiKey: process.env.DATASQUIREL_API_KEY,
});
```

### Delete by Field Value

```javascript
const result = await datasquirel.crud.delete({
    dbName: "my_database",
    tableName: "sessions",
    deleteSpec: {
        deleteKeyValues: [
            { key: "user_id", value: 42, operator: "=" },
        ],
    },
    apiKey: process.env.DATASQUIREL_API_KEY,
});
```

## Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `dbName` | `string` | Yes | The database slug |
| `tableName` | `string` | Yes | The table to delete from |
| `targetID` | `string \| number` | No | The `id` of the record to delete. Either `targetID` or `deleteSpec` is required |
| `deleteSpec` | `object` | No | Field-value conditions for deletion (see below) |
| `apiKey` | `string` | No | API key. Falls back to `DATASQUIREL_API_KEY` environment variable |

### deleteSpec.deleteKeyValues

An array of conditions. Each condition has:

| Field | Type | Description |
|-------|------|-------------|
| `key` | `string` | The field name to match |
| `value` | `string \| number \| null` | The value to match against |
| `operator` | `string` | Comparison operator — `"="`, `"!="`, `">"`, `"<"`, etc. Defaults to `"="` |

## REST API

```
DELETE /api/v1/crud/{dbName}/{tableName}/{id}
DELETE /api/v1/crud/{dbName}/{tableName}
```

**Headers:**
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

**Body (when deleting by field value):**
```json
{
    "deleteKeyValues": [
        { "key": "user_id", "value": 42, "operator": "=" }
    ]
}
```

## Response

```json
{
    "success": true,
    "payload": 1
}
```

A successful response returns `success: true` and `payload` with the number of deleted rows.
