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

# Move

> Moves images or videos, with their labels, from one dataset to another.

## Overview

Moves images and videos, with their annotations, from one dataset to another. Assets that are already in the destination dataset are skipped.

Moved assets leave the source dataset. To keep them in the source, use [Copy](/node-library/nodes/dataset-ops-copy) instead.

It's handy for moving data out of a temporary or review dataset, for example to send rejected images back to labeling.

To move only part of the source, connect a second dataset to **Assets to move (dataset)**, for example the output of [Filter images](/node-library/nodes/filter-filter-images). The node then moves only the source assets that this dataset also holds.

```mermaid
flowchart LR
  n1["Dataset"] --> n2["Random sample"] --> n3["Move"] --> n4["Dataset"]
```

## How it works

Takes the source images and videos. When an assets dataset is set, keeps only the ones it also holds.

Of those, finds the assets that the destination doesn't have yet.

Moves each asset missing from the destination, together with its source annotations, in one step: an image never appears in the destination without its annotation, so a Labeling or Review step fed from the destination never hands out an unlabeled image.

Adds the source's classes that the destination's ontology doesn't have yet.

## FAQ

#### What happens to assets already in the destination?

They're skipped. The node doesn't add them again and leaves them in the source dataset. Only assets missing from the destination leave the source.

#### Does the node move videos and annotations too?

Yes. Images and videos both move, and each asset's annotations move with it.

#### Why did the badge show \`+0 assets\`?

The source dataset is empty, the assets dataset shares no assets with it, or every asset is already in the destination. Nothing moved in that run.

#### Can I get the moved assets back into the source?

Not from a dataset version: Move changes both datasets in place and doesn't create a new version of either. The assets aren't deleted, so a Copy or Move in the other direction puts them back.

## Inputs

**`From dataset`** `dataset` — required

Dataset to take the assets from. They leave it after the move. Key: `SRC_DATASET`.

---

**`To dataset`** `dataset` — required

Dataset to move the assets to, with their annotations. Assets it already has are skipped and stay in the source dataset too. Key: `DST_DATASET`.

---

**`Assets to move (dataset)`** `dataset`

Dataset naming which assets to move: only the ones it shares with the source are moved. Leave empty to move everything from the source dataset. Key: `ASSETS_DATASET`.

---

## Outputs

**`Destination Dataset`** `dataset`

ID of the destination OvalBee dataset. Key: `DST_DATASET`.

---

**`Last Moved Assets Count`** `string`

Short badge with the number of assets moved in the latest run. Shown on the node as a badge. Key: `LAST_MOVED_ASSETS_COUNT`.

---

## JSON config

Machine-readable node interface for automation and advanced usage.

#### Show JSON

```json
{
  "name": "Move",
  "description": "Moves images or videos, with their labels, from one dataset to another.",
  "category": "Datasets",
  "namespace": "ovalbee",
  "templateKey": "dataset_ops/move",
  "version": "v1",
  "inputs": [
    {
      "key": "SRC_DATASET",
      "label": "From dataset",
      "type": "dataset",
      "description": "Dataset to take the assets from. They leave it after the move.",
      "required": true,
      "default": null,
      "visibleWhen": null,
      "options": {
        "creatable": false
      }
    },
    {
      "key": "DST_DATASET",
      "label": "To dataset",
      "type": "dataset",
      "description": "Dataset to move the assets to, with their annotations. Assets it already has are skipped and stay in the source dataset too.",
      "required": true,
      "default": null,
      "visibleWhen": null
    },
    {
      "key": "ASSETS_DATASET",
      "label": "Assets to move (dataset)",
      "type": "dataset",
      "description": "Dataset naming which assets to move: only the ones it shares with the source are moved. Leave empty to move everything from the source dataset.",
      "required": false,
      "default": null,
      "visibleWhen": null,
      "options": {
        "creatable": false
      }
    }
  ],
  "outputs": [
    {
      "key": "DST_DATASET",
      "label": "Destination Dataset",
      "type": "dataset",
      "description": "ID of the destination OvalBee dataset.",
      "artifact": false,
      "badge": false,
      "badgeOpens": null,
      "hidden": false
    },
    {
      "key": "LAST_MOVED_ASSETS_COUNT",
      "label": "Last Moved Assets Count",
      "type": "string",
      "description": "Short badge with the number of assets moved in the latest run.",
      "artifact": false,
      "badge": true,
      "badgeOpens": null,
      "hidden": false
    }
  ]
}
```