---
title: "Move multiple samples"
method: POST
path: "/api/{projectId}/raw-data/batch/moveSamples"
tags: ["Raw data"]
---

# Move multiple samples

`POST /api/{projectId}/raw-data/batch/moveSamples`

## Request

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

Move multiple samples to another category (e.g. from test to training).
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

- MoveRawDataRequest
  - `newCategory` 'training' | 'testing' | 'validation' | 'post-processing', required

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