Skip to main content

DatasetsManager

Added in: @mastra/core@1.4.0

The DatasetsManager class provides the public API for managing datasets, including CRUD operations and cross-dataset experiment comparisons. Access it via mastra.datasets.

Usage examples
Direct link to Usage examples

Create and list datasets
Direct link to Create and list datasets

src/mastra/datasets/manage.ts
import { Mastra } from '@mastra/core'

const mastra = new Mastra({/* storage config */})

// Create a dataset
const dataset = await mastra.datasets.create({
name: 'QA pairs',
description: 'Question-answer evaluation set',
})

// List all datasets
const { datasets } = await mastra.datasets.list()

Get and delete a dataset
Direct link to Get and delete a dataset

src/mastra/datasets/get-delete.ts
import { Mastra } from '@mastra/core'

const mastra = new Mastra({/* storage config */})

// Get by ID
const dataset = await mastra.datasets.get({ id: 'dataset-id' })

// Delete by ID
await mastra.datasets.delete({ id: 'dataset-id' })

Get experiment
Direct link to Get experiment

Retrieves a specific experiment (run) by ID. Unlike dataset.getExperiment(), this works across all datasets without needing a dataset reference first.

import { Mastra } from '@mastra/core'

const mastra = new Mastra({/* storage config */})

// Get experiment directly without knowing the dataset
const experiment = await mastra.datasets.getExperiment({
experimentId: 'exp-id',
})

console.log(`Dataset: ${experiment.datasetId}`)
console.log(`Status: ${experiment.status}`)

Delete experiment
Direct link to Delete experiment

Deletes an experiment directly by ID, including experiments orphaned by dataset deletion. The experiment's results are deleted, and Mastra also attempts to delete its observability traces. Unsupported observability storage leaves the traces in place and logs a warning.

await mastra.datasets.deleteExperiment({
experimentId: 'experiment-id',
organizationId: 'organization-id',
projectId: 'project-id',
})

See DatasetsManager.deleteExperiment() for tenancy behavior and trace cascade details.

Compare experiments
Direct link to Compare experiments

src/mastra/datasets/compare.ts
import { Mastra } from '@mastra/core'

const mastra = new Mastra({/* storage config */})

const comparison = await mastra.datasets.compareExperiments({
experimentIds: ['exp-1', 'exp-2'],
baselineId: 'exp-1',
})

Access
Direct link to Access

DatasetsManager isn't instantiated directly. Access it from a Mastra instance:

const mastra = new Mastra({/* storage config */})
const datasetsManager = mastra.datasets