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

# Finding Get

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

## 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/{findingRef}`
- Auth: none declared

Execute the UserTold finding get operation.

## Path parameters

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

## Response `200`

Success

- object
  - `finding` 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
  - `evidence` object[], required
    - `project_ref` string, required
    - `target_surface` 'product_under_test' | 'usertold_widget_interview' | 'interviewer_conductor_behavior' | 'ambiguous_needs_review', required
    - `confidence` number, required
    - `intensity` number, nullable, required
    - `quote` string, required
    - `timestamp_ms` number, nullable, required
    - `segment_id` string, nullable, required
    - `page_url` string, nullable, required
    - `page_title` string, nullable, required
    - `preceding_actions` string, nullable, required
    - `user_goal` string, nullable, required
    - `outcome` string, nullable, required
    - `headline` string, nullable
    - `claim` string, nullable
    - `reconstruction` string, nullable
    - `observed_facts_json` string, nullable
    - `evidence_grade` string, nullable
    - `window_start_ms` number, nullable
    - `window_end_ms` number, nullable
    - `transcript_uncertain` boolean, required
    - `transcript_uncertainty_note` string, nullable, required
    - `review_status` string, nullable
    - `review_note` string, nullable
    - `annotation_text` string, nullable, required
    - `annotation_by` string, nullable, required
    - `annotation_at` string, nullable, required
    - `dismissed_at` string, nullable, required
    - `dismissed_reason` string, nullable, required
    - `dismissed_by` string, nullable, required
    - `source` string, nullable, required
    - `created_at` string, required
    - `provenance` object, nullable
      - `study` object, nullable, required
        - `ref` string, required
        - `handle` string, required
        - `title` string, required
      - `interview` object, nullable, required
        - `id` string, required
        - `participant_name` string, nullable, required
        - `started_at` string, nullable, required
        - `interview_mode` string, nullable, required
        - `duration_seconds` number, nullable, required
      - `page` object, nullable, required
        - `url` string, nullable, required
        - `title` string, nullable, required
      - `timestamp_ms` number, nullable, required
      - `source` string, nullable, required
    - `evidence_ref` string, required
    - `interview_ref` string, required
    - `evidence_type` string, required
    - `evidence_resolution` object, nullable
      - `link_ref` string, required
      - `linked_at` string, nullable, required
      - `resolved_at` string, nullable, required
      - `resolved_by_provider` string, nullable, required
      - `resolved_by_provider_issue_id` string, nullable, required
      - `resolution_reason` string, nullable, required
  - `lifecycle_history` object[]
    - `id` string, required
    - `finding_ref` string, required
    - `project_ref` string, required
    - `from_research_state` 'draft' | 'reviewed' | 'closed' | 'null', nullable, required
    - `to_research_state` 'draft' | 'reviewed' | 'closed', required
    - `from_delivery_state` 'not_sent' | 'awaiting_product_triage' | 'accepted' | 'in_progress' | 'completed' | 'declined' | 'duplicate' | 'null', nullable, required
    - `to_delivery_state` 'not_sent' | 'awaiting_product_triage' | 'accepted' | 'in_progress' | 'completed' | 'declined' | 'duplicate', required
    - `source` 'user' | 'mcp' | 'linear_webhook' | 'github_webhook' | 'impact_measurement' | 'consolidation_reopen' | 'system', required
    - `reason` string, nullable, required
    - `actor_id` string, nullable, required
    - `created_at` string, required
  - `relations` object[]
    - `relation_ref` string, required
    - `relation_type` string, required
    - `reason` string, nullable, required
    - `score` number, nullable, required
    - `source` string, required
    - `created_at` string, required
    - `updated_at` string, required
    - `finding` 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
  - `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
  - `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
  - `decision_record` object
    - `record_version` 'finding_decision_record.v1', required
    - `decision` object, required
      - `state` 'blocked_needs_evidence' | 'needs_project_review' | 'reviewed_for_handoff' | 'in_delivery' | 'completed_under_watch' | 'recurrence_review', required
      - `label` string, required
      - `recommended_next_action` string, required
      - `rationale` string[], required
    - `evidence` object, required
      - `evidence_refs` string[], required
      - `evidence_types` string[], required
      - `interview_refs` string[], required
      - `average_confidence` number, nullable, required
      - `average_intensity` number, nullable, required
      - `top_quotes` object[], required
        - `evidence_ref` string, required
        - `quote` string, required
        - `evidence_type` string, required
        - `confidence` number, required
      - `supporting_evidence_count` number, required
      - `counter_evidence_count` number, required
      - `needs_review_evidence_count` number, required
      - `dismissed_history_count` number, required
      - `calibration_evidence_count` number, required
      - `counter_evidence_quotes` object[], required
        - `evidence_ref` string, required
        - `quote` string, required
        - `evidence_type` string, required
        - `confidence` number, required
      - `resolved_evidence_count` number, required
    - `review` object, required
      - `lifecycle_history_count` number, required
      - `related_findings_count` number, required
      - `recurrence_candidates` object, required
        - `total` number, required
        - `active` number, required
        - `confirmed` number, required
      - `counter_evidence` object, required
        - `state` 'not_available' | 'none_found' | 'needs_review', required
        - `summary` string, required
        - `recommended_next_action` string, 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)
