> Discover all available pages from the documentation index: https://mastra.ai/llms.txt

# dataset.listExperimentResults()

**Added in:** `@mastra/core@1.4.0`

Lists individual item results for a specific experiment with optional filters and pagination. Filters are applied at the storage layer.

## Usage example

```typescript
import { Mastra } from '@mastra/core'

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

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

const { results, pagination } = await dataset.listExperimentResults({
  experimentId: 'exp-id',
  page: 0,
  perPage: 50,
})

// Restrict to results that still need review
const { results: pending } = await dataset.listExperimentResults({
  experimentId: 'exp-id',
  status: 'needs-review',
})

// Restrict to results tied to a specific trace
const { results: byTrace } = await dataset.listExperimentResults({
  experimentId: 'exp-id',
  traceId: 'trace-abc',
})

for (const result of results) {
  console.log(`Item ${result.itemId}: ${result.error ? 'FAILED' : 'OK'}`)
}
```

## Parameters

**experimentId** (`string`): ID of the experiment to list results for.

**traceId** (`string`): Restrict results to those linked to this trace ID.

**status** (`'needs-review' | 'reviewed' | 'complete'`): Restrict results to this per-result review status.

**filters** (`ExperimentTenancyFilters`): Multi-tenant scoping filters (organizationId, projectId). Forwarded to the storage layer.

**page** (`number`): Page number. Defaults to 0.

**perPage** (`number`): Number of results per page. Defaults to 20.

## Returns

**result** (`Promise<object>`): Paginated experiment results.

**result.results** (`ExperimentResult[]`): Array of item-level results.

**result.results.id** (`string`): Unique result ID.

**result.results.experimentId** (`string`): ID of the parent experiment.

**result.results.itemId** (`string`): ID of the dataset item.

**result.results.itemDatasetVersion** (`number | null`): Dataset version of the item when executed.

**result.results.input** (`unknown`): Input data passed to the target.

**result.results.output** (`unknown | null`): Output from the target.

**result.results.groundTruth** (`unknown | null`): Expected output.

**result.results.error** (`{ message: string; stack?: string; code?: string } | null`): Structured error if execution failed.

**result.results.startedAt** (`Date`): When execution started.

**result.results.completedAt** (`Date`): When execution completed.

**result.results.retryCount** (`number`): Number of retry attempts.

**result.results.traceId** (`string | null`): Trace ID for observability.

**result.results.createdAt** (`Date`): When the result record was created.

**result.pagination** (`PaginationInfo`): Pagination metadata with total, page, perPage, and hasMore.