---
title: "Get Investigation"
method: GET
path: "/api/v1/report-ai/investigations/{investigation_id}"
tags: ["report-ai", "investigations"]
---

# Get Investigation

`GET /api/v1/report-ai/investigations/{investigation_id}`

Get a single investigation with steps and metadata.

## Path parameters

- `investigation_id` string, uuid, required

## Response `200`

Successful Response

- InvestigationDetailRead — Investigation with nested steps and metadata.
  - `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
  - `steps` InvestigationStepRead[]
    - `id` string, uuid, required
    - `tenant_id` string, uuid, required
    - `investigation_id` string, uuid, required
    - `step_type` string, required
    - `tool_name` string, nullable, required
    - `tool_params` object, nullable, required
    - `from_scenario` boolean, required
    - `scenario_name` string, nullable, required
    - `result_success` boolean, required
    - `result_data` object, nullable, required
    - `result_summary` string, nullable, required
    - `started_at` string, date-time, required
    - `duration_ms` integer, required
    - `sequence` integer, required
  - `investigation_metadata` InvestigationMetadataRead — Schema for reading InvestigationMetadata.
    - `id` string, uuid, required
    - `tenant_id` string, uuid, required
    - `investigation_id` string, uuid, required
    - `ticket_category` string, required
    - `ticket_subcategory` string, nullable, required
    - `severity` string, nullable, required
    - `has_booking` boolean, nullable, required
    - `booking_reference` string, nullable, required
    - `room_type` string, nullable, required
    - `stay_dates_start` string, date, nullable, required
    - `stay_dates_end` string, date, nullable, required
    - `recommended_action` string, nullable, required
    - `compensation_offered` boolean, required
    - `escalation_needed` boolean, required
    - `overall_confidence` string, nullable, required
    - `customer_sentiment` string, nullable, required
    - `investigation_duration_ms` integer, nullable, required
    - `tool_calls_count` integer, nullable, required
    - `tokens_used` integer, nullable, required
  - `extracted_facts` ExtractedFact[]
    - `key` string, required
    - `value` string, required
    - `source_step_ids` string[]
  - `actions_taken` ActionTaken[]
    - `action_type` string, required
    - `target` string, required
    - `details` string, nullable
    - `tool_citation` string, nullable
    - `success` boolean, required
    - `resource_id` string, nullable
    - `resource_url` string, nullable
    - `provider` string, nullable

## Other responses

- `404` — Investigation not found
- `422` — Validation Error

## Changes

> 17 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/:investigation_id/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/94579f820778?raw)
