---
title: "Edit bounding boxes for multiple samples"
method: POST
path: "/api/{projectId}/raw-data/batch/edit-bounding-boxes"
tags: ["Raw data"]
---

# Edit bounding boxes for multiple samples

`POST /api/{projectId}/raw-data/batch/edit-bounding-boxes`

## Request

- Base URL: `https://studio.edgeimpulse.com/v1`
- URL: `https://studio.edgeimpulse.com/v1/api/{projectId}/raw-data/batch/edit-bounding-boxes`
- Auth: one of:
  - API key in header `x-api-key`
  - API key in cookie `jwt`
  - API key in header `x-jwt-token`
  - OAuth 2
    - Authorization code: `/v1/oauth/authorize`
    - Client credentials
    - Implicit: `/v1/oauth/authorize`
    - Password
    - Token URL: `/v1/oauth/token`
- TypeScript: <https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/docs/api/:projectId/raw-data/batch/edit-bounding-boxes/post.ts> (a function with typed inputs; its response is checked against the schema)

Relabels (or removes) bounding boxes for multiple samples.
Depending on the number of affected samples this will either execute immediately or return the ID of a job that will perform this action in batches.

## Path parameters

- `projectId` integer, required

## Query parameters

- `category` 'training' | 'testing' | 'validation' | 'post-processing' | 'all', required
- `labels` string
- `filename` string
- `maxLength` integer
- `minLength` integer
- `minFrequency` number
- `maxFrequency` number
- `signatureValidity` 'both' | 'valid' | 'invalid'
- `includeDisabled` 'both' | 'enabled' | 'disabled'
- `ids` string
- `excludeIds` string
- `minLabel` number
- `maxLabel` number
- `search` string
- `dataType` 'audio' | 'image'
- `minId` integer
- `maxId` integer
- `metadata` string
- `minDate` string, date-time
- `maxDate` string, date-time

## Request body

- BatchEditBoundingBoxesRequest
  - `oldLabels` string[], required: List of labels to edit. All bounding boxes with this label will be edited.
  - `newLabel` string, required: New label. Set to an empty string to remove the bounding boxes.

## Response `200`

OK

- union
  - GenericApiResponse
    - `success` boolean, required: Whether the operation succeeded
    - `error` string: Optional error description (set if 'success' was false)
  - StartJobResponse
    - `success` boolean, required: Whether the operation succeeded
    - `error` string: Optional error description (set if 'success' was false)
    - `id` integer, required: Job identifier. Status updates will include this identifier.

---

[API](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api.md) - [All operations](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/llms.txt) - [OpenAPI document](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/revisions/e2a976d38427?raw)
