---
title: "Transfer Project To Organization"
method: POST
path: "/v0/project/{project_id}/transfer-to-organization"
tags: ["Projects"]
---

# Transfer Project To Organization

`POST /v0/project/{project_id}/transfer-to-organization`

Transfer a personal project to an organization.

Requirements:
- User must own the personal project (project.user_id == user_id)
- User must have org:write permission on target organization
- Project must be personal (organization_id = NULL)

Process:
- Sets project.organization_id = target org
- Sets project.user_id = NULL (org-owned)
- Creates explicit Owner ResourceAccess grant for the transferring user

## Path parameters

- `project_id` integer, required

## Request body

- TransferToOrganizationRequest — Request model for transferring a personal project to an organization.
  - `organization_id` integer, required

## Response `200`

Project transferred successfully

- TransferResponse — Response model for project transfer operations.
  - `success` boolean, required
  - `project_id` integer, required
  - `project_name` string, required
  - `from_type` string, required
  - `to_type` string, required
  - `message` string, required

## Other responses

- `400` — Bad Request - Project already in organization or invalid state
- `403` — Forbidden - User doesn't have required permissions
- `404` — Project or Organization Not Found
- `422` — Validation Error

---

[API](https://skmtc.net/unify/apis/unifyai-http-api-reference.md) · [All operations](https://skmtc.net/unify/apis/unifyai-http-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unify/unifyai-http-api-reference/versions/900377f918b6/schema)
