---
title: "Get one finding by id"
method: GET
path: "/api/v1/runs/{runId}/findings/{findingId}"
tags: ["findings"]
---

# Get one finding by id

`GET /api/v1/runs/{runId}/findings/{findingId}`

## Request

- Base URL: `https://index365.co`
- URL: `https://index365.co/api/v1/runs/{runId}/findings/{findingId}`
- Auth: HTTP bearer

Fetch-by-id detail for a finding surfaced by list_findings.

## Path parameters

- `runId` string, uuid, required
- `findingId` string, required

## Response `200`

Finding.

- object
  - `schemaVersion` integer
  - `finding` object: Agent result contract v2 finding. findingId is deterministic and stable for a given run.
    - `findingId` string, required
    - `runId` string, uuid, required
    - `projectId` string, uuid, nullable
    - `category` 'discoverability' | 'structured_data' | 'metadata' | 'content_structure' | 'accessibility' | 'answerability' | 'agent_operability' | 'performance' | 'security' | 'general' | 'findability' | 'measurement' | 'conversion_path' | 'offer_clarity' | 'trust_proof' | 'schema_metadata' | 'social_preview' | 'performance_ux' | 'consent_privacy_signal' | 'connected_account', required
    - `marketingCategory` object: Marketing Signal findings only: the report category this finding sits under. Separate from `category`, which is the shared cross-product taxonomy and carries no Marketing Signal values. Optional, so legacy findings stay valid.
      - `key` 'seo' | 'content' | 'aeo' | 'analytics_tracking' | 'conversion' | 'trust_proof', required
      - `label` string, required
    - `status` 'open' | 'acknowledged' | 'resolved' | 'wont_fix', required: Existing v2 workflow enum retained for response compatibility. Scan projections currently emit open only; do not infer acknowledgement, resolution, or fix verification from a later run.
    - `severity` 'critical' | 'high' | 'medium' | 'low' | 'info', required
    - `confidence` 'high' | 'medium' | 'low', required
    - `title` string, required
    - `detail` string, required
    - `evidence` object[], required
      - `type` 'page' | 'file' | 'check', required
      - `url` string
      - `summary` string, required
    - `affectedUrls` string[], required
    - `remediation` string, required
    - `agentActions` object[], required
      - `type` 'remediation', required
      - `description` string, required
    - `humanUrl` string, required: Human-readable dashboard view of this run.
    - `source` object
      - `scanMode` string, nullable
      - `model` string, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `stage` 'find' | 'trust' | 'act' | 'measure' | 'improve': Marketing Signal funnel stage (Marketing Signal findings only).

## Other responses

- `401`: Missing/unknown/revoked API key.
- `403`: Key lacks the required scope (error.code=insufficient_scope).
- `404`: Resource not found in this organization.
- `409`: run_not_completed: findings exist only after completion.
- `429`: Rate limit exceeded (60 req/min per key). Honor Retry-After.

---

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