---
title: "Update Project"
method: PUT
path: "/api/v1/projects/{project_id}"
tags: ["projects", "projects"]
---

# Update Project

`PUT /api/v1/projects/{project_id}`

## Request

- Base URL: `https://api.peil.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.peil.app/api/v1/projects/{project_id}`
- Auth: OAuth 2 (password, token URL `/api/v1/auth/jwt/login`)

## Path parameters

- `project_id` integer, required

## Request body

- ProjectUpdate
  - `name` string, nullable
  - `description` string, nullable
  - `active` boolean
  - `billable_default` boolean
  - `client_id` integer, nullable
  - `start_date` string, date, nullable
  - `end_date` string, date, nullable
  - `budget` number, nullable
  - `status` 'active' | 'completed' | 'archived' | 'on_hold'
  - `project_type` 'folder' | 'hourly' | 'fixed' | 'retainer'
  - `retainer_monthly` number, nullable
  - `retainer_hours_per_month` integer, nullable
  - `retainer_interval` 'monthly' | 'quarterly' | 'annual', nullable

## Response `200`

Successful Response

- Project
  - `name` string, required
  - `description` string, nullable
  - `active` boolean
  - `billable_default` boolean
  - `client_id` integer, nullable
  - `start_date` string, date, nullable
  - `end_date` string, date, nullable
  - `budget` number, nullable
  - `status` 'active' | 'completed' | 'archived' | 'on_hold'
  - `project_type` 'folder' | 'hourly' | 'fixed' | 'retainer'
  - `retainer_monthly` number, nullable
  - `retainer_hours_per_month` integer, nullable
  - `retainer_interval` 'monthly' | 'quarterly' | 'annual', nullable
  - `id` integer, required
  - `user_id` integer, required
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `client_name` string, nullable

## Other responses

- `422`: Validation Error

---

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