---
title: "List reports produced by an Experiment"
method: GET
path: "/v1/experiments/{experiment_id}/reports"
tags: ["experiments"]
---

# List reports produced by an Experiment

`GET /v1/experiments/{experiment_id}/reports`

## Request

- Base URL: `https://api.pioneer.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pioneer.ai/v1/experiments/{experiment_id}/reports`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/pioneer/apis/brain-api/docs/v1/experiments/:experiment_id/reports/get.ts> (a function with typed inputs; its response is checked against the schema)

List normalized run reports for one authorized Experiment.

Args:
    experiment_id: Experiment whose report-producing runs are requested.
    auth: Authenticated caller.
    limit: Maximum items returned.
    cursor: Opaque exclusive keyset from a previous page.

Returns:
    One stable report page.

Raises:
    HTTPException: 404 when hidden or absent, 400 for an invalid cursor.

## Path parameters

- `experiment_id` string, uuid, required

## Query parameters

- `limit` integer
- `cursor` string, nullable

## Response `200`

Successful Response

- ExperimentReportPage: Stable keyset page of report items.
  - `items` ReportItem[], required
    - `source` ReportSource, required: Stable identity of the persisted report source.
      - `kind` 'agent_run' | 'auto_agent_run' | 'experiment', required: Persisted run table that supplied a normalized report item.
      - `id` string, required
    - `status` string, required
    - `timestamps` ReportTimestamps, required: Timestamps shared by both run types without inference.
      - `created_at` string, date-time, required
      - `started_at` string, date-time, nullable
      - `completed_at` string, date-time, nullable
    - `structured` object, nullable
    - `final` string, nullable
    - `curation` string, nullable
    - `system_deficiencies` string, nullable
    - `provenance` ReportItemProvenance, required: Column-level provenance for all normalized report content.
      - `structured` ReportFieldProvenance, required: Exact table-kind, row, and column behind one normalized field.
        - `source_kind` 'agent_run' | 'auto_agent_run' | 'experiment', required: Persisted run table that supplied a normalized report item.
        - `source_id` string, required
        - `source_field` 'report' | 'final_report' | 'data_curation_report' | 'system_deficiencies' | 'deliverables_json' | 'curation_report', required: Persisted report column copied into a normalized content field.
      - `final` ReportFieldProvenance: Exact table-kind, row, and column behind one normalized field.
        - `source_kind` 'agent_run' | 'auto_agent_run' | 'experiment', required: Persisted run table that supplied a normalized report item.
        - `source_id` string, required
        - `source_field` 'report' | 'final_report' | 'data_curation_report' | 'system_deficiencies' | 'deliverables_json' | 'curation_report', required: Persisted report column copied into a normalized content field.
      - `curation` ReportFieldProvenance: Exact table-kind, row, and column behind one normalized field.
        - `source_kind` 'agent_run' | 'auto_agent_run' | 'experiment', required: Persisted run table that supplied a normalized report item.
        - `source_id` string, required
        - `source_field` 'report' | 'final_report' | 'data_curation_report' | 'system_deficiencies' | 'deliverables_json' | 'curation_report', required: Persisted report column copied into a normalized content field.
      - `system_deficiencies` ReportFieldProvenance: Exact table-kind, row, and column behind one normalized field.
        - `source_kind` 'agent_run' | 'auto_agent_run' | 'experiment', required: Persisted run table that supplied a normalized report item.
        - `source_id` string, required
        - `source_field` 'report' | 'final_report' | 'data_curation_report' | 'system_deficiencies' | 'deliverables_json' | 'curation_report', required: Persisted report column copied into a normalized content field.
  - `next_cursor` string, nullable: Opaque cursor for the next page; absent at the end.

## Other responses

- `422`: Validation Error

## Changes

- **2026-09-24** `0e5e86e2bae5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/pioneer/apis/brain-api/changes/v1/experiments/:experiment_id/reports/get.md)

---

[API](https://skmtc.dev/pioneer/apis/brain-api.md) - [All operations](https://skmtc.dev/pioneer/apis/brain-api/llms.txt) - [OpenAPI document](https://skmtc.dev/pioneer/apis/brain-api/revisions/0e5e86e2bae5?raw)
