---
title: "List project cases"
method: GET
path: "/v1/projects/{project_id}/cases"
tags: ["Cases"]
---

# List project cases

`GET /v1/projects/{project_id}/cases`

## Request

- Base URL: `https://api.agentry.sh`
- URL: `https://api.agentry.sh/v1/projects/{project_id}/cases`
- Auth: HTTP bearer

Human owner/member case inventory. Automation runners must use server-issued trigger receipts and cannot enumerate project cases.

## Path parameters

- `project_id` string, required

## Query parameters

- `status` 'active' | 'resolved' | 'suppressed' | 'all'
- `limit` integer
- `cursor` string
- `q` string
- `environment` string
- `deploy_sha` string
- `since` integer
- `until` integer
- `unhandled` boolean

## Response `200`

OK

- object
  - `data_boundary` object, required
  - `cases` CaseSummary[], required
    - `id` string, required
    - `project_id` string, required
    - `fingerprint` string, required
    - `status` 'active' | 'resolved' | 'suppressed', required
    - `revision` integer, required
    - `event_count` integer, required
    - `first_seen_at` integer, required
    - `last_seen_at` integer, required
    - `last_deploy_sha` string, nullable
    - `latest_observation` object, required
      - `emitter` object, required
      - `evidence` object, required
      - `inspection` object, required
    - `annotations` object, required
    - `last_agent_run_at` integer, nullable
    - `last_agent_run_status` string, nullable
    - `agent_run_count` integer, required
    - `active_claim` object, nullable, required
      - `id` string, required
      - `automation_id` string, required
      - `expires_at` integer, required
  - `next_cursor` string, nullable, required
  - `has_more` boolean, required: Whether more rows remain in Agentry's local case projection for this query. This is independent of projection_refresh.truncated.
  - `projection_refresh` CaseProjectionRefresh, required
    - `source` 'posthog_error_tracking', required
    - `provider_status_filter` 'all', required
    - `requested_case_status` 'active' | 'resolved' | 'suppressed' | 'all', required
    - `page_size` integer, required
    - `max_pages` integer, required
    - `pages` integer, required
    - `projected` integer, required
    - `changed` integer, required
    - `complete` boolean, required: true only when PostHog reported no additional issue page during this bounded refresh.
    - `truncated` boolean, required: true when the owner read reached max_pages while PostHog still reported more issues; local rows beyond next_offset may remain stale until the durable sweep reaches them.
    - `next_offset` integer, nullable, required: Next PostHog issue offset when truncated, otherwise null. This is projection freshness metadata, not the local result-page cursor.
  - `control` object, required

## Other responses

- `default`: Error

---

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