---
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

---

[API](https://skmtc.net/verifywise-ai/apis/verifywise-api.md) · [All operations](https://skmtc.net/verifywise-ai/apis/verifywise-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/verifywise-ai/verifywise-api/versions/c764f0a64a5e/schema)
