---
title: "Create a new project (use case)"
method: POST
path: "/projects"
tags: ["Projects"]
---

# Create a new project (use case)

`POST /projects`

Creates a new project with associated members and frameworks. If an approval_workflow_id is provided, framework creation is deferred until the approval request is approved.

## Request body

- CreateProjectRequest
  - `project_title` string, required
  - `owner` integer, required
  - `start_date` string, date-time, required
  - `geography` integer
  - `ai_risk_classification` 'Prohibited' | 'High risk' | 'Limited risk' | 'Minimal risk' — EU AI Act risk classification level
  - `type_of_high_risk_role` 'Deployer' | 'Provider' | 'Distributor' | 'Importer' | 'Product manufacturer' | 'Authorized representative' — Role of the organization under the EU AI Act for high-risk systems
  - `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
  - `is_organizational` boolean
  - `members` integer[]
  - `framework` integer[], required
  - `approval_workflow_id` integer, nullable
  - `enable_ai_data_insertion` boolean

## Response `201`

Project created successfully

- object
  - `message` string
  - `data` object
    - `project` Project
      - `id` integer
      - `uc_id` string
      - `project_title` string
      - `owner` integer
      - `start_date` string, date-time
      - `geography` integer
      - `ai_risk_classification` 'Prohibited' | 'High risk' | 'Limited risk' | 'Minimal risk' — EU AI Act risk classification level
      - `type_of_high_risk_role` 'Deployer' | 'Provider' | 'Distributor' | 'Importer' | 'Product manufacturer' | 'Authorized representative' — Role of the organization under the EU AI Act for high-risk systems
      - `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
      - `last_updated_by` integer
      - `created_at` string, date-time
      - `is_organizational` boolean
      - `is_demo` boolean
      - `approval_workflow_id` integer, nullable
      - `pending_frameworks` string, nullable
      - `enable_ai_data_insertion` boolean
      - `organization_id` integer
      - `framework` ProjectFramework[]
        - `project_framework_id` integer
        - `framework_id` integer
        - `name` string
      - `members` integer[]
    - `frameworks` object

## Other responses

- `400` — Validation error
- `403` — Business logic error (e.g. framework not allowed)
- `500` — Internal server error
- `503` — Service unavailable — project creation returned null

## Changes

- **2026-04-21** `55cdc040840c` — 5 breaking, 17 info
  - added the new required request property `framework`
  - added the new required request property `owner`
  - added the new required request property `project_title`
  - added the new required request property `start_date`
  - …18 more
- **2026-04-05** `ac49160fcab0` — 1 breaking, 1 info
  - api path removed without deprecation
  - endpoint added
- **2026-04-05** `c419b1e72a65` — 1 breaking, 1 info
  - api path removed without deprecation
  - endpoint added
- **2025-09-11** `cfa9ae933c17` — 1 breaking, 9 warning, 6 info
  - added the new required request property `name`
  - removed the request property `ai_risk_classification`
  - removed the request property `goal`
  - removed the request property `id`
  - …12 more
- **2025-01-22** `ed48b7196725` — 13 breaking, 9 warning, 15 info
  - the request property `goal` became not nullable
  - removed the enum value `Authorized representative` of the request property `type_of_high_risk_role`
  - removed the enum value `Deployer` of the request property `type_of_high_risk_role`
  - removed the enum value `Distributor` of the request property `type_of_high_risk_role`
  - …33 more

[Change history](https://skmtc.dev/verifywise-ai/apis/verifywise-api/changes/projects/post.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/d86d0bf8bebe/schema)
