---
title: "List pinned Dataset cases with trial-level evidence reduced to row aggregates."
method: GET
path: "/api/{org_id}/experiments/{experiment_id}/rows"
tags: ["Experiments"]
---

# List pinned Dataset cases with trial-level evidence reduced to row aggregates.

`GET /api/{org_id}/experiments/{experiment_id}/rows`

## Request

- Base URL: `https://api.openobserve.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.openobserve.ai/api/{org_id}/experiments/{experiment_id}/rows`
- Auth: API key in header `Authorization`
- TypeScript: <https://skmtc.dev/openobserve/apis/openobserve-api-http/docs/api/:org_id/experiments/:experiment_id/rows/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `org_id` string, required
- `experiment_id` string, required

## Query parameters

- `page` integer
- `pageSize` integer
- `sort` 'dataset' | 'dispersion_desc'
- `highDispersionOnly` boolean

## Response `200`

Pinned result rows

- ExperimentResultRowPageResponseBody
  - `pagination` ExperimentResultRowPaginationBody, required
    - `hasMore` boolean, required
    - `page` integer, required
    - `pageSize` integer, required
    - `totalRows` integer, required
  - `rows` ExperimentResultRowBody[], required
    - `dispersion` ExperimentRowDispersionBody
      - `dimensions` ExperimentDimensionDispersionBody[], required
        - `consensus` unknown, required
        - `normalized` number, double, nullable: Internal cross-dimension key in `[0, 1]`. Absent when the dimension declares no valid range, which also keeps it out of row flagging.
        - `outlierTrialIndex` integer, nullable
        - `rawStd` number, double, nullable: Raw standard deviation in the dimension's own units, numeric only.
        - `scorerId` string, required
        - `scorerVersion` integer, required
        - `trialCount` integer, required
      - `high` boolean, required
      - `logicalId` string, required
      - `maxNormalized` number, double, nullable: Largest normalized dispersion across this case's dimensions. This is the key the result table flags and sorts by.
      - `outlierTrialIndex` integer, nullable
      - `rowId` string, required
    - `errorMessage` string, nullable: Sample message of the row's largest failure cause (grouped by kind, else by first line).
    - `expectedOutput` unknown
    - `input` unknown, required
    - `logicalId` string, required
    - `output` unknown
    - `p50LatencyMs` integer, nullable
    - `rowId` string, required
    - `rowIndex` integer, required: Zero-based position in deterministic pinned-snapshot row order.
    - `scoreOutcomes` ExperimentScoreOutcomesBody, required: `completed` is scored plus failed; `total` also counts pending, skipped and unscored.
      - `completed` integer, required
      - `failed` integer, required
      - `pending` integer, required
      - `scored` integer, required
      - `skipped` integer, required
      - `total` integer, required
      - `unscored` integer, required
    - `scoreSummaries` ExperimentScoreSummaryBody[], required
      - `errorCount` integer, required
      - `name` string, required: User-facing dimension label. This is the Score Config name when the Scorer declares one, otherwise the Scorer name.
      - `noReferenceCount` integer, required
      - `noTraceCount` integer, required
      - `pendingCount` integer, required
      - `sampleCount` integer, required
      - `scoreConfigId` string, nullable
      - `scoreConfigName` string, nullable
      - `scoreConfigVersion` integer, nullable
      - `scorerId` string, required
      - `scorerVersion` integer, required
      - `skippedCount` integer, required
      - `value` unknown
    - `status` 'pending' | 'running' | 'scoring' | 'completed' | 'skipped' | 'task_failed' | 'score_failed', required
    - `taskOutcomes` ExperimentTaskOutcomesBody, required: Slot counts over the pinned set; `pending` is `total` minus the slots that have finished.
      - `failed` integer, required
      - `pending` integer, required
      - `skipped` integer, required
      - `succeeded` integer, required
      - `total` integer, required
    - `trialCount` integer, required

## Other responses

- `400`: Invalid pagination
- `403`: Experiment is not accessible
- `404`: Experiment not found

---

[API](https://skmtc.dev/openobserve/apis/openobserve-api-http.md) - [All operations](https://skmtc.dev/openobserve/apis/openobserve-api-http/llms.txt) - [OpenAPI document](https://skmtc.dev/openobserve/apis/openobserve-api-http/revisions/0529b8a10252?raw)
