---
title: "List Projects"
method: GET
path: "/aurd-tracking/{claim_id}/projects"
tags: ["au-rd-tracking"]
---

# List Projects

`GET /aurd-tracking/{claim_id}/projects`

## Request

- Base URL: `https://api.claimkit.co` (the document declares no server; this is the origin it was published from)
- URL: `https://api.claimkit.co/aurd-tracking/{claim_id}/projects`
- Auth: none declared

List all projects for a claim with nested activities.

`source` selects the data source. When omitted, the claim's
``discovery_methodology`` decides:

* ``NULL`` (default) -> ``legacy`` (read from the original AURD tables
  via ``_build_project_list_response``).
* non-null (e.g. ``"activity-map.v1"``) -> ``activity-map`` (read from
  ``activity_map_*`` tables via
  ``_build_project_list_response_from_activity_map``).

Pass an explicit ``?source=legacy|activity-map`` to override the claim
setting (admin dogfooding / dev testing). The status_filter argument is
mapped to the activity-map builder's ``status_filter`` semantics
(``active`` / ``all``); ``None`` becomes ``active``.

Note: projects and activities with ``status='merged'`` (soft-deleted by
a reverse-mergeable merge) are always filtered out of this response. Use
``GET …/projects/merged`` and ``GET …/activities/merged`` to enumerate
them; ``?status=merged`` here will return an empty list.

## Path parameters

- `claim_id` integer, required

## Query parameters

- `status` string, nullable
- `source` 'legacy' | 'activity-map', nullable

## Response `200`

Successful Response

- ProjectListResponse
  - `projects` ProjectResponse[], required
    - `id` integer, required
    - `name` string, required
    - `description` string, nullable, required
    - `status` string, required
    - `ai_reasoning` string, nullable
    - `activities` ActivityResponse[]
      - `id` integer, required
      - `name` string, required
      - `description` string, nullable, required
      - `activity_type` string, required
      - `status` string, required
      - `ai_reasoning` string, nullable
      - `work_item_count` integer
      - `total_hours` number
      - `total_expenditure_cost` number, nullable
      - `sort_order` integer
      - `created_at` string, required
      - `employee_summaries` ActivityEmployeeSummary[]
        - `employee_identity_id` integer, nullable, required
        - `work_item_count` integer, required
        - `total_hours` number, required
        - `total_expenditure_cost` number, nullable
    - `sort_order` integer
    - `created_at` string, required
    - `updated_at` string, required
  - `source` 'legacy' | 'activity-map'

## Other responses

- `422`: Validation Error

---

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