---
title: "Update a project"
method: PATCH
path: "/gh/{ownerKeyOrId}/projects/{keyOrId}"
tags: ["Projects"]
---

# Update a project

`PATCH /gh/{ownerKeyOrId}/projects/{keyOrId}`

## Request

- Base URL: `https://api.qlty.sh`
- URL: `https://api.qlty.sh/gh/{ownerKeyOrId}/projects/{keyOrId}`
- Auth: HTTP bearer

Assign a Project to an Application, or pass `applicationId: null` to unassign it. The Workspace must have Applications enabled.

## Path parameters

- `ownerKeyOrId` string, required: Repository owner name (login) or workspace ID
- `keyOrId` string, required: Repository name or project ID

## Request body

- ProjectUpdate
  - `applicationId` string, uuid, nullable, required: ID of the Application to assign this Project to, or null to unassign it

## Response `200`

The updated project

- Project
  - `id` string, required
  - `workspaceId` string, required
  - `providerUrl` string, required: URL to the repository on the provider
  - `key` string, required: Repository name
  - `workspaceKey` string, required: Key of the workspace this project belongs to
  - `applicationId` string, nullable, required: ID of the Application this project is assigned to, or null when unassigned

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not Found
- `429`: Rate Limit Exceeded
- `500`: Internal Server Error

## Changes

- **2026-09-05** `de1caa330e97`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/qlty/apis/qlty-api/changes/gh/:ownerKeyOrId/projects/:keyOrId/patch.md)

---

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