---
title: "List Investigations"
method: GET
path: "/api/v1/report-ai/investigations"
tags: ["report-ai", "investigations"]
---

# List Investigations

`GET /api/v1/report-ai/investigations`

List investigations with pagination and optional filters.

## Query parameters

- `report_agent_id` string, uuid, nullable
- `report_agent_ids` string[], nullable
- `status` string, nullable
- `lifecycle_status` string, nullable
- `source` string, nullable
- `voice_call_id` string, uuid, nullable
- `text_session_id` string, uuid, nullable
- `since` string, date-time, nullable
- `page` integer
- `per_page` integer

## Response `200`

Successful Response

- InvestigationListResponse — Paginated investigation list response.
  - `items` InvestigationRead[], required
    - `id` string, uuid, required
    - `created_at` string, date-time, required
    - `tenant_id` string, uuid, required
    - `report_agent_id` string, uuid, required
    - `report_agent_name` string, required
    - `report_agent_type` 'analysis' | 'action', required — Whether this agent analyzes interactions or takes actions.
    - `trigger_source` 'voice_call_ended' | 'text_session_ended' | 'crm_webhook' | 'slack_event' | 'manual' | 'scheduled', required — Where the investigation was triggered from.
    - `triggered_by_user_id` string, uuid, nullable, required
    - `external_ticket_id` string, nullable, required
    - `voice_call_id` string, uuid, nullable, required
    - `text_session_id` string, uuid, nullable, required
    - `interaction_summary` string, required
    - `interaction_content` string, required
    - `customer_email` string, nullable, required
    - `customer_name` string, nullable, required
    - `customer_phone` string, nullable, required
    - `interaction_metadata` object, required
    - `structured_extraction` object, nullable, required
    - `status` 'pending' | 'skipped' | 'processing' | 'completed' | 'failed', required — Investigation lifecycle status.
    - `started_at` string, date-time, nullable, required
    - `completed_at` string, date-time, nullable, required
    - `error_message` string, nullable, required
    - `retry_count` integer, required
    - `skip_reason` 'empty' | 'spam' | 'automated' | 'duplicate' | 'low_quality' | 'unsupported_language', required — Why an investigation was skipped after triage.
    - `triage_confidence` number, nullable, required
    - `triage_details` string, nullable, required
    - `matched_scenario_id` string, uuid, nullable, required
    - `matched_scenario_name` string, nullable, required
    - `report_json` object, nullable, required
    - `customer_profile_id` string, uuid, nullable, required
    - `thread_id` string, uuid, nullable
    - `lifecycle_status` string
    - `closed_reason` string, nullable
    - `closed_at` string, date-time, nullable
    - `closed_by_user_id` string, uuid, nullable
    - `closed_note` string, nullable
    - `superseded_by_id` string, uuid, nullable
    - `opened_by_message_id` string, uuid, nullable
  - `total` integer, required
  - `page` integer, required
  - `per_page` integer, required

## Other responses

- `422` — Validation Error

## Changes

> 24 revisions in range; 1 not diffed.

- **2026-09-03** `d65b8fefae34` — 2 info
  - added the optional property `detail/items/ctx` to the response with the `422` status
  - added the optional property `detail/items/input` to the response with the `422` status

[Change history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/report-ai/investigations/get.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) · [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) · [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/ae7627cd46da?raw)
