---
title: "Findings List"
method: GET
path: "/api/orgs/{orgHandle}/projects/{projectHandle}/findings"
tags: ["Findings"]
---

# Findings List

`GET /api/orgs/{orgHandle}/projects/{projectHandle}/findings`

## Request

- Base URL: `https://mcp.usertold.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://mcp.usertold.ai/api/orgs/{orgHandle}/projects/{projectHandle}/findings`
- Auth: none declared

Execute the UserTold findings list operation.

## Path parameters

- `orgHandle` string, required: orgHandle path parameter
- `projectHandle` string, required: projectHandle path parameter

## Query parameters

- `research_state` 'draft' | 'reviewed' | 'closed'
- `delivery_state` 'not_sent' | 'awaiting_product_triage' | 'accepted' | 'in_progress' | 'completed' | 'declined' | 'duplicate'
- `stage` 'needs_review' | 'ready' | 'in_delivery' | 'done'
- `include_closed` string
- `target_surface` 'product_under_test' | 'usertold_widget_interview' | 'interviewer_conductor_behavior' | 'ambiguous_needs_review' | 'all'
- `evidence_interview_ref` string
- `min_priority` string
- `limit` string
- `offset` string

## Response `200`

Success

- object
  - `findings` object[], required
    - `finding_ref` string, required
    - `project_ref` string, required
    - `title` string, required
    - `description` string, nullable, required
    - `target_surface` 'product_under_test' | 'usertold_widget_interview' | 'interviewer_conductor_behavior' | 'ambiguous_needs_review', required
    - `research_state` 'draft' | 'reviewed' | 'closed', required
    - `delivery_state` 'not_sent' | 'awaiting_product_triage' | 'accepted' | 'in_progress' | 'completed' | 'declined' | 'duplicate' | 'null', nullable, required
    - `provider_placement` 'triage' | 'backlog_fallback' | 'null', nullable, required
    - `priority_score` number, required
    - `priority_label` string, required
    - `effort_estimate` string, nullable, required
    - `evidence_count` number, required
    - `interview_count` number, required
    - `implementation_branch` string, nullable, required
    - `implementation_pr_url` string, nullable, required
    - `implementation_pr_number` number, nullable, required
    - `deployed_at` string, nullable, required
    - `created_at` string, required
    - `updated_at` string, required
    - `relation_count` number
    - `provider_states` object[]
      - `provider_state_ref` string, required
      - `finding_ref` string, required
      - `project_ref` string, required
      - `provider` 'linear' | 'github' | 'usertold_linear', required
      - `external_id` string, nullable, required
      - `external_url` string, nullable, required
      - `external_status` string, nullable, required
      - `metadata_json` string, nullable, required
      - `synced_at` string, nullable, required
      - `created_at` string, required
      - `updated_at` string, required
      - `research_state` 'draft' | 'reviewed' | 'closed', required
      - `delivery_state` 'not_sent' | 'awaiting_product_triage' | 'accepted' | 'in_progress' | 'completed' | 'declined' | 'duplicate' | 'null', nullable, required
      - `provider_placement` 'triage' | 'backlog_fallback' | 'null', nullable, required
      - `ambiguity` string, nullable, required
    - `recurrence_candidates` object[]
      - `candidate_ref` string, required
      - `project_ref` string, required
      - `new_evidence_ref` string, required
      - `related_finding_ref` string, required
      - `related_resolved_evidence_ref` string, nullable, required
      - `confidence` number, required
      - `reason` string, nullable, required
      - `status` 'candidate' | 'confirmed' | 'dismissed', required
      - `created_at` string, required
      - `reviewed_at` string, nullable, required
  - `total` number, required
  - `project_total` number, required
  - `counts` object
    - `by_research_state` object, required
    - `by_delivery_state` object, required
    - `by_stage` object
    - `unlinked` number, required

## Other responses

- `401`: Not authenticated
- `404`: Not found
- `422`: Domain error (non-retryable)
- `500`: Internal server error
- `503`: Domain error (retryable)

---

[API](https://skmtc.dev/usertold/apis/usertold-ai-api.md) · [All operations](https://skmtc.dev/usertold/apis/usertold-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usertold/apis/usertold-ai-api/revisions/37d5b4f88d38?raw)
