# dataset.listExperimentResults()

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

Lists individual item results for a specific experiment with pagination.

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

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.

**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\`.