---
title: "Get all projects"
method: GET
path: "/projects"
tags: ["Projects"]
---

# Get all projects

`GET /projects`

Returns all projects visible to the authenticated user. Admins and SuperAdmins see all projects in the organization; other roles see only projects they own or are members of.

## Response `200`

List of projects retrieved successfully

- object
  - `message` string
  - `data` ProjectListItem[]
    - `id` integer
    - `uc_id` string, nullable
    - `project_title` string
    - `owner` integer
    - `start_date` string, date-time, nullable
    - `geography` integer, nullable
    - `ai_risk_classification` 'Prohibited' | 'High risk' | 'Limited risk' | 'Minimal risk' | 'GPAI' | 'General Risk' — EU AI Act risk classification level
    - `type_of_high_risk_role` 'Deployer' | 'Provider' — Role of the organization under the EU AI Act for high-risk systems
    - `use_case_category` string, nullable
    - `use_case_purpose` string, nullable
    - `use_case_audience` string, nullable
    - `deployment_context` string, nullable
    - `goal` string, nullable
    - `target_industry` string, nullable
    - `description` string, nullable
    - `status` 'Not started' | 'In progress' | 'Under review' | 'Completed' | 'Closed' | 'On hold' | 'Rejected' — Current lifecycle status of the project
    - `last_updated` string, date-time, nullable
    - `last_updated_by` integer, nullable
    - `created_at` string, date-time
    - `is_organizational` boolean
    - `is_demo` boolean
    - `_source` string, nullable
    - `framework` ProjectFramework[]
      - `project_framework_id` integer
      - `framework_id` integer
      - `name` string
    - `members` integer[]
    - `has_pending_approval` boolean
    - `approval_status` 'pending' | 'rejected' | 'null', nullable

## Other responses

- `401` — Unauthorized — missing or invalid JWT
- `500` — Internal server error

## Changes

> 70 revisions in range; 56 could not be searched.

- **2026-04-21** `55cdc040840c` — 3 info
  - added the media type `application/json` for the response with the status `200`
  - added the media type `application/json` for the response with the status `401`
  - added the media type `application/json` for the response with the status `500`
- **2025-08-07** `8f39d60f160a` — 1 breaking, 10 info
  - the `data/items/` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - added the optional property `data/items/ai_risk_classification` to the response with the `200` status
  - added the optional property `data/items/goal` to the response with the `200` status
  - added the optional property `data/items/id` to the response with the `200` status
  - …7 more

[Change history](https://skmtc.dev/verifywise-ai/apis/verifywise-api/changes/projects/get.md)

---

[API](https://skmtc.dev/verifywise-ai/apis/verifywise-api.md) · [All operations](https://skmtc.dev/verifywise-ai/apis/verifywise-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/verifywise-ai/verifywise-api/revisions/3b138b306b5b/schema)
