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

# List reports produced by an Experiment

`GET /experiments/{experiment_id}/reports`

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', 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', 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', 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', 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', 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

---

[API](https://skmtc.net/pioneer/apis/brain-api.md) · [All operations](https://skmtc.net/pioneer/apis/brain-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/pioneer/brain-api/revisions/b92f75fd3b61/schema)
