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

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

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

Lists the Project Context collection: the workspace Context reads scoped to the Project's repository, and — for a package Project — narrowed to its package subpath. The Project source URI is matched to the context source canonical repository URL; a root Project (no subpath) includes every accessible occurrence in that repository, a package Project only those whose path equals the subpath or begins with the subpath plus a slash, plus authored verifier files declared by a live manifest in that package even when the file itself is elsewhere in the repository. No Project-to-Context relation is stored: scope is matched at read time. Cursor paginated, sortable by name or -updatedAt, and filterable by kind, relationship state, provider, direct source repository, and free text.

## Path parameters

- `projectId` string, uuid, required

## Query parameters

- `sort` union
  - 'name'
  - '-name'
  - 'updatedAt'
  - '-updatedAt'
- `page[size]` number
- `page[after]` string
- `filter[kind]` string
- `filter[state]` union
  - 'published'
  - 'in-codebases'
- `filter[provider]` string
- `filter[repository]` string, uuid
- `filter[q]` string
- `filter[score]` union
  - 'ninety-plus'
  - 'seventy-to-eighty-nine'
  - 'below-seventy'
  - 'unscored'
  - union[]
    - union
      - 'ninety-plus'
      - 'seventy-to-eighty-nine'
      - 'below-seventy'
      - 'unscored'
- `filter[security]` union
  - 'none'
  - 'pending'
  - 'failed'
  - 'NONE'
  - 'LOW'
  - 'MEDIUM'
  - 'HIGH'
  - 'CRITICAL'
  - union[]
    - union
      - 'none'
      - 'pending'
      - 'failed'
      - 'NONE'
      - 'LOW'
      - 'MEDIUM'
      - 'HIGH'
      - 'CRITICAL'

## 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
    - `repositories` object[], required
      - `id` string, uuid, required
      - `name` string, required
      - `provider` string, required
  - `data` object[], required
    - `id` string, required
    - `type` 'workspace-context-row', required
    - `attributes` object, required
      - `kind` string, required
      - `name` string, required
      - `description` string, nullable, required
      - `states` object, required
        - `published` boolean, required
        - `inCodebases` boolean, required
      - `canonical` object, nullable, required
        - `lineageId` string, required
        - `sourceUrl` string, required
        - `provider` string, required
        - `slug` string, required
        - `owner` string, nullable, required
        - `repo` string, nullable, required
        - `registry` object, nullable, required
          - `workspaceName` string, required
          - `tileName` string, required
        - `directoryName` string, nullable, required
        - `path` string, nullable, required
      - `locations` object, required
        - `total` integer, required
        - `repositories` integer, required
        - `published` integer, required
      - `containment` object, nullable, required
        - `pluginLineageId` string, required
        - `pluginName` string, required
      - `providers` string[], required
      - `declarations` object[], required
        - `declarationId` string, uuid, required
        - `configurationRevisionId` string, uuid, required
        - `verifierId` string, uuid, required
        - `sourceId` string, uuid, required
        - `manifestPath` string, required
        - `group` string, required
        - `level` string, nullable, required
        - `enabled` boolean, required
      - `lastObservedAt` string, date-time, required
      - `qualityScore` integer, nullable, required
      - `scores` object, nullable, required
        - `version` string, required
        - `aggregate` number, nullable, required
        - `quality` number, nullable, required
        - `securityLevel` union, required
          - 'NONE'
          - 'LOW'
          - 'MEDIUM'
          - 'HIGH'
          - 'CRITICAL'
        - `evalAvg` number, nullable, required
        - `evalBaseline` number, nullable, required
        - `evalImprovementMultiplier` number, nullable, required
        - `evalCount` integer, nullable, required
        - `lastScoredAt` string, nullable, required
      - `scoreNotApplicable` boolean, required
      - `securityState` union, required
        - 'none'
        - 'pending'
        - 'failed'
        - 'completed'
      - `securitySeverity` union, required
        - 'NONE'
        - 'LOW'
        - 'MEDIUM'
        - 'HIGH'
        - 'CRITICAL'

## Other responses

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

## Changes

- **2026-09-15** `d50a02b79ad3` — 2 info
  - added the optional property `error/code` to the response with the `403` status
  - added the optional property `error/url` to the response with the `403` status
- **2026-09-15** `050f3217cf2c` — 1 info
  - added the required property `data/items/attributes/declarations` to the response with the `200` status
- **2026-09-09** `1de33e42f781` — 2 info
  - added the required property `data/items/attributes/canonical/anyOf[subschema #1]/path` to the response with the `200` status
  - added the required property `data/items/attributes/scoreNotApplicable` 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/context/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/288d28ba107c?raw)
