---
title: "GET /v1/projects/{projectId}/findings"
method: GET
path: "/v1/projects/{projectId}/findings"
tags: ["Projects", "Findings"]
---

# GET /v1/projects/{projectId}/findings

`GET /v1/projects/{projectId}/findings`

Lists the Project Findings collection: the workspace Findings scoped to the Project's repository, and — for a package Project — narrowed to its package subpath. A finding is in scope when one of its evidence coordinates addresses the Project repository (matched on the canonical repository URL); a root Project (no subpath) includes every finding in that repository, a package Project only those whose coordinate path equals the subpath or begins with the subpath plus a slash. Findings with no evidence inside the scope are excluded. No Project-to-Finding relation is stored: scope is matched at read time. The Project scope is applied before pagination, counts, filters, and sorting. Finding identity, ignore state, evidence, and fix-action behavior are unchanged from the per-inventory and org findings endpoints; detail of gated archetypes (drift/overlap) is withheld on plans without the advancedInventoryFindings entitlement.

## Path parameters

- `projectId` string, uuid, required

## Query parameters

- `sort` union
  - union[]
    - union
      - 'priority'
      - '-priority'
  - 'priority'
  - '-priority'
- `page[size]` number
- `page[after]` string
- `page[before]` string
- `filter[status]` union
  - 'active'
  - 'ignored'
- `filter[archetype]` union
  - 'registry-match'
  - 'overlap'
  - 'frontmatter-error'
  - 'publishable'
  - 'drift'
  - 'untracked'
  - 'skill-overload'
  - 'policy-violation'
  - 'stale-content'
  - 'outdated-copy'
  - 'conflicting-rules'
  - union[]
    - union
      - 'registry-match'
      - 'overlap'
      - 'frontmatter-error'
      - 'publishable'
      - 'drift'
      - 'untracked'
      - 'skill-overload'
      - 'policy-violation'
      - 'stale-content'
      - 'outdated-copy'
      - 'conflicting-rules'
- `filter[priority]` union
  - 'critical'
  - 'high'
  - 'medium'
  - 'low'
  - union[]
    - union
      - 'critical'
      - 'high'
      - 'medium'
      - 'low'
- `filter[repoActivity]` union
  - 'active'
  - 'quiet'
  - 'dormant'
  - union[]
    - union
      - 'active'
      - 'quiet'
      - 'dormant'
- `filter[skill]` union
  - string
  - string[]
- `filter[id]` union
  - string, uuid
  - string[]

## Headers

- `Authorization` string

## Response `200`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
    - `next` string, uri, nullable, required
    - `prev` string, uri, nullable, required
  - `meta` object, required
    - `count` number, required
    - `total` integer, required
  - `data` object[], required
    - `id` string, required
    - `type` 'skill-inventory-finding', required
    - `attributes` object, required
      - `archetype` union, required
        - 'registry-match'
        - 'overlap'
        - 'frontmatter-error'
        - 'publishable'
        - 'drift'
        - 'untracked'
        - 'skill-overload'
        - 'policy-violation'
        - 'stale-content'
        - 'outdated-copy'
        - 'conflicting-rules'
      - `priority` union, required
        - 'critical'
        - 'high'
        - 'medium'
        - 'low'
      - `title` string, required
      - `description` string, required
      - `repoActivity` union, required
        - 'active'
        - 'quiet'
        - 'dormant'
      - `status` union, required
        - 'active'
        - 'resolved'
        - 'ignored'
      - `ignoreReason` union, required
        - 'not-relevant'
        - 'wont-fix'
        - 'noisy'
      - `gated` boolean, required
      - `logicalSkill` object, nullable, required
        - `canonicalRepo` string, required
        - `canonicalName` string, required
        - `body` string, nullable, required
        - `frontmatter` object, nullable, required
        - `instanceCount` number, required
      - `skillInstance` object, nullable, required
        - `name` string, required
        - `path` string, required
        - `frontmatterError` string, nullable, required
        - `body` string, nullable, required
        - `frontmatter` object, nullable, required
        - `repoFullName` string, required
        - `repoDefaultBranch` string, required
        - `repoUrl` string, required
      - `clusterMembers` object[], required
        - `canonicalRepo` string, required
        - `canonicalName` string, required
        - `body` string, nullable, required
        - `frontmatter` object, nullable, required
        - `instanceCount` number, required
      - `instances` object[], required
        - `id` string, uuid, required
        - `path` string, required
        - `kind` union, required
          - 'source'
          - 'dependency'
        - `agents` string[], required
        - `lastModified` object, nullable, required
          - `date` string, nullable, required
          - `authorLogin` string, nullable, required
          - `authorName` string, nullable, required
        - `repoFullName` string, required
        - `repoUrl` string, required
        - `repoDefaultBranch` string, required
      - `repoFullName` string, nullable, required
      - `canonicalName` string, nullable, required
      - `evidence` object, nullable, required
        - `document` object, required
          - `contextType` 'agent-docs', required
          - `provider` string, required
          - `canonicalRepoUrl` string, required
          - `path` string, required
          - `contextLineageId` string, uuid, required
          - `contextVersionId` string, uuid, required
        - `ruleA` object, required
          - `startLine` integer, required
          - `endLine` integer, required
          - `text` string, required
        - `ruleB` object, required
          - `startLine` integer, required
          - `endLine` integer, required
          - `text` string, required
        - `sharedCondition` string, required
        - `explanation` string, required
        - `suggestedClarification` string, required
      - `workspaceId` string, uuid, nullable, required
      - `workspaceName` string, nullable, required
      - `groupId` string, uuid, nullable, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

## Changes

- **2026-09-10** `e57a144d1cab` — 2 info
  - added `subschema #11` to the `data/items/attributes/archetype` response property `anyOf` list for the response status `200`
  - added the required property `data/items/attributes/evidence` to the response with the `200` status
- **2026-09-04** `62bb86f8aa90` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/tessl/apis/tessl-api/changes/v1/projects/:projectId/findings/get.md)

---

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