> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.staple.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.staple.ai/_mcp/server.

# Bulk Delete Multiple Rows

DELETE https://api.staple.io/v2/master-data/{sheetId}/master-data-rows/row-ids
Content-Type: application/json

**Purpose:** Bulk delete multiple records from a master data collection by their unique row identifiers

**Description:** This endpoint enables you to remove multiple records from a specific master data sheet in a single operation. It accepts a list of row IDs and attempts to delete all corresponding records. The endpoint provides detailed feedback on the deletion operation, including which records were successfully removed and which were not found.

Reference: https://docs.staple.ai/api-reference/v2/master-data/bulk-delete-multiple-rows

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: v2
  version: 1.0.0
paths:
  /v2/master-data/{sheetId}/master-data-rows/row-ids:
    delete:
      operationId: bulkDeleteMultipleRows
      summary: Bulk Delete Multiple Rows
      description: >-
        **Purpose:** Bulk delete multiple records from a master data collection
        by their unique row identifiers


        **Description:** This endpoint enables you to remove multiple records
        from a specific master data sheet in a single operation. It accepts a
        list of row IDs and attempts to delete all corresponding records. The
        endpoint provides detailed feedback on the deletion operation, including
        which records were successfully removed and which were not found.
      tags:
        - masterData
      parameters:
        - name: sheetId
          in: path
          required: true
          schema:
            type: string
        - name: x-api-key
          in: header
          description: API key issued by Staple.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Master
                  Data_bulkDeleteMultipleRows_Response_200
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                rowIds:
                  type: array
                  items:
                    type: string
servers:
  - url: https://api.staple.io
    description: https://api.staple.io
components:
  schemas:
    Master Data_bulkDeleteMultipleRows_Response_200:
      type: object
      properties: {}
      description: Empty response body
      title: Master Data_bulkDeleteMultipleRows_Response_200
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key issued by Staple.
    bearerAuth:
      type: http
      scheme: bearer
      description: JWT obtained from the login endpoint.

```

## Examples

### Delete A Specific Row From Sheet



**Request**

```json
undefined
```

**Response**

```json
{
  "deleteMaterSheetRows": {
    "data": {
      "deleted_row_ids": [
        "4d48a9e9-2a25-4d8a-b3e3-a26c27df871b",
        "632a8a39-482f-4015-b07e-55f6c42df054",
        "65be3e06-a784-4e2b-b917-88e276d3a37b",
        "e5c90691-d2c2-48ec-9bae-7d790b234d76",
        "c8248d1b-79d4-45ba-abc4-1f33719770a2"
      ],
      "message": "all records are succesfully removed from the master data sheet",
      "not_found_row_ids": [
        "65be3e06-a784-4e2b-b917-88e276d3a37b"
      ],
      "rows_deleted": 14,
      "status_code": 202
    }
  }
}
```

**SDK Code**

```python Delete A Specific Row From Sheet
import requests

url = "https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids"

headers = {
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.delete(url, headers=headers)

print(response.json())
```

```javascript Delete A Specific Row From Sheet
const url = 'https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids';
const options = {
  method: 'DELETE',
  headers: {'x-api-key': '<apiKey>', 'Content-Type': 'application/json'},
  body: undefined
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Delete A Specific Row From Sheet
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids"

	req, _ := http.NewRequest("DELETE", url, nil)

	req.Header.Add("x-api-key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Delete A Specific Row From Sheet
require 'uri'
require 'net/http'

url = URI("https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'

response = http.request(request)
puts response.read_body
```

```java Delete A Specific Row From Sheet
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.delete("https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .asString();
```

```php Delete A Specific Row From Sheet
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('DELETE', 'https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids', [
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Delete A Specific Row From Sheet
using RestSharp;

var client = new RestClient("https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids");
var request = new RestRequest(Method.DELETE);
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
IRestResponse response = client.Execute(request);
```

```swift Delete A Specific Row From Sheet
import Foundation

let headers = [
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "DELETE"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Master Data_bulkDeleteMultipleRows_example



**Request**

```json
{
  "rowIds": [
    "4d48a9e9-2a25-4d8a-b3e3-a26c27df871b",
    "632a8a39-482f-4015-b07e-55f6c42df054",
    "65be3e06-a784-4e2b-b917-88e276d3a37b",
    "e5c90691-d2c2-48ec-9bae-7d790b234d76",
    "c8248d1b-79d4-45ba-abc4-1f33719770a2",
    "65be3e06-a784-4e2b-b917-88e276d3a37b"
  ]
}
```

**Response**

```json
{
  "deleteMaterSheetRows": {
    "data": {
      "deleted_row_ids": [
        "4d48a9e9-2a25-4d8a-b3e3-a26c27df871b",
        "632a8a39-482f-4015-b07e-55f6c42df054",
        "65be3e06-a784-4e2b-b917-88e276d3a37b",
        "e5c90691-d2c2-48ec-9bae-7d790b234d76",
        "c8248d1b-79d4-45ba-abc4-1f33719770a2"
      ],
      "message": "all records are succesfully removed from the master data sheet",
      "not_found_row_ids": [
        "65be3e06-a784-4e2b-b917-88e276d3a37b"
      ],
      "rows_deleted": 14,
      "status_code": 202
    }
  }
}
```

**SDK Code**

```python Master Data_bulkDeleteMultipleRows_example
import requests

url = "https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids"

payload = { "rowIds": ["4d48a9e9-2a25-4d8a-b3e3-a26c27df871b", "632a8a39-482f-4015-b07e-55f6c42df054", "65be3e06-a784-4e2b-b917-88e276d3a37b", "e5c90691-d2c2-48ec-9bae-7d790b234d76", "c8248d1b-79d4-45ba-abc4-1f33719770a2", "65be3e06-a784-4e2b-b917-88e276d3a37b"] }
headers = {
    "x-api-key": "<apiKey>",
    "Content-Type": "application/json"
}

response = requests.delete(url, json=payload, headers=headers)

print(response.json())
```

```javascript Master Data_bulkDeleteMultipleRows_example
const url = 'https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids';
const options = {
  method: 'DELETE',
  headers: {'x-api-key': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"rowIds":["4d48a9e9-2a25-4d8a-b3e3-a26c27df871b","632a8a39-482f-4015-b07e-55f6c42df054","65be3e06-a784-4e2b-b917-88e276d3a37b","e5c90691-d2c2-48ec-9bae-7d790b234d76","c8248d1b-79d4-45ba-abc4-1f33719770a2","65be3e06-a784-4e2b-b917-88e276d3a37b"]}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Master Data_bulkDeleteMultipleRows_example
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids"

	payload := strings.NewReader("{\n  \"rowIds\": [\n    \"4d48a9e9-2a25-4d8a-b3e3-a26c27df871b\",\n    \"632a8a39-482f-4015-b07e-55f6c42df054\",\n    \"65be3e06-a784-4e2b-b917-88e276d3a37b\",\n    \"e5c90691-d2c2-48ec-9bae-7d790b234d76\",\n    \"c8248d1b-79d4-45ba-abc4-1f33719770a2\",\n    \"65be3e06-a784-4e2b-b917-88e276d3a37b\"\n  ]\n}")

	req, _ := http.NewRequest("DELETE", url, payload)

	req.Header.Add("x-api-key", "<apiKey>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Master Data_bulkDeleteMultipleRows_example
require 'uri'
require 'net/http'

url = URI("https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)
request["x-api-key"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"rowIds\": [\n    \"4d48a9e9-2a25-4d8a-b3e3-a26c27df871b\",\n    \"632a8a39-482f-4015-b07e-55f6c42df054\",\n    \"65be3e06-a784-4e2b-b917-88e276d3a37b\",\n    \"e5c90691-d2c2-48ec-9bae-7d790b234d76\",\n    \"c8248d1b-79d4-45ba-abc4-1f33719770a2\",\n    \"65be3e06-a784-4e2b-b917-88e276d3a37b\"\n  ]\n}"

response = http.request(request)
puts response.read_body
```

```java Master Data_bulkDeleteMultipleRows_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.delete("https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids")
  .header("x-api-key", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"rowIds\": [\n    \"4d48a9e9-2a25-4d8a-b3e3-a26c27df871b\",\n    \"632a8a39-482f-4015-b07e-55f6c42df054\",\n    \"65be3e06-a784-4e2b-b917-88e276d3a37b\",\n    \"e5c90691-d2c2-48ec-9bae-7d790b234d76\",\n    \"c8248d1b-79d4-45ba-abc4-1f33719770a2\",\n    \"65be3e06-a784-4e2b-b917-88e276d3a37b\"\n  ]\n}")
  .asString();
```

```php Master Data_bulkDeleteMultipleRows_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('DELETE', 'https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids', [
  'body' => '{
  "rowIds": [
    "4d48a9e9-2a25-4d8a-b3e3-a26c27df871b",
    "632a8a39-482f-4015-b07e-55f6c42df054",
    "65be3e06-a784-4e2b-b917-88e276d3a37b",
    "e5c90691-d2c2-48ec-9bae-7d790b234d76",
    "c8248d1b-79d4-45ba-abc4-1f33719770a2",
    "65be3e06-a784-4e2b-b917-88e276d3a37b"
  ]
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-api-key' => '<apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Master Data_bulkDeleteMultipleRows_example
using RestSharp;

var client = new RestClient("https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids");
var request = new RestRequest(Method.DELETE);
request.AddHeader("x-api-key", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"rowIds\": [\n    \"4d48a9e9-2a25-4d8a-b3e3-a26c27df871b\",\n    \"632a8a39-482f-4015-b07e-55f6c42df054\",\n    \"65be3e06-a784-4e2b-b917-88e276d3a37b\",\n    \"e5c90691-d2c2-48ec-9bae-7d790b234d76\",\n    \"c8248d1b-79d4-45ba-abc4-1f33719770a2\",\n    \"65be3e06-a784-4e2b-b917-88e276d3a37b\"\n  ]\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Master Data_bulkDeleteMultipleRows_example
import Foundation

let headers = [
  "x-api-key": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = ["rowIds": ["4d48a9e9-2a25-4d8a-b3e3-a26c27df871b", "632a8a39-482f-4015-b07e-55f6c42df054", "65be3e06-a784-4e2b-b917-88e276d3a37b", "e5c90691-d2c2-48ec-9bae-7d790b234d76", "c8248d1b-79d4-45ba-abc4-1f33719770a2", "65be3e06-a784-4e2b-b917-88e276d3a37b"]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.staple.io/v2/master-data/sheetId/master-data-rows/row-ids")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "DELETE"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```