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

# Edit labels for multiple samples

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

## Request

- Base URL: `https://studio.edgeimpulse.com/v1`
- URL: `https://studio.edgeimpulse.com/v1/api/{projectId}/raw-data/batch/edit-labels`
- 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-labels/post.ts> (a function with typed inputs; its response is checked against the schema)

Sets the label (also known as class) of multiple samples. If you want to relabel bounding boxes, use "batchEditBoundingBoxes" instead.
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

- EditSampleLabelRequest
  - `label` string: New label for this sample

## 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)
