Update a project
PATCH/api/projects/{id}
Required permissions:
- pipeline.edit: to update a project where the user is PM or Account
- pipeline.edit_other: to update a project where the user is not PM nor Account
- pipeline.job_order: to update a project job order
Here the dedicated support page.
Project metadata
You can set project metadata values using the
dynamic field like metadata_13 where 13 is the ID of the project metadata you want to set.
You can get all the available project metadata using the related endpoint.
Only project metadata with a value will appear in the response.
Timesheet whitelist
You can enable or disable the timesheet whitelist for the project using is_timesheet_whitelist_enabled.
People can then be added to or removed from the whitelist using the
timesheet whitelist endpoints.
As of today, this endpoint does not support the following functionalities:
- Setting project risk
- Setting won/lost feedback
Are you interested in any of these? Let us know!
Request
Path Parameters
The ID of the project to update
Header Parameters
The company you want to interact with
The API version you want to use
- application/json
Body
Possible values: <= 500 characters
Project name
ID of the client of this project
ID of the client contact for this project
Project purchase order
ID of the person designed to manage this project
ID of the person designed as account for this project
ID of the job order category to associate to this project
ID of the project type to associate to this project
Possible values: <= 150 characters
Project job order
The value of the project in K
Possible values: <= 100
Duration of the project in months
Estimate of the external costs as percentage of the project value
Project start month. This follows the YYYY-MM-DD format
Possible values: >= 1
The probability of the project
The date the project is supposed to end
The date the project has been signed
ID of the opportunity stage
ID of the business unit to which this project belongs
Whether the timesheet whitelist is enabled for this project. When enabled, only whitelisted people can log time on the project. It cannot be disabled while the whitelist still has people in it.
Responses
- 200
- 400
- 401
- 403
- 404
- 412
Returns the updated project.
- application/json
- Schema
- Example (from schema)
Schema
Possible values: >= 1
The unique identifier of the resource
The date and time when the resource was created
The date and time when the resource was last updated
The value of the project in K
Possible values: <= 100
The probability of the project
The amount of external costs in percentage of the project value
The first day of month where the project started
Possible values: >= 1
Duration of the project in months
The date the project was archived
The date the project is supposed to end
The date the project has been signed
Whether timesheet whitelist is enabled for the project
Possible values: >= 1
ID of the job order category
Possible values: >= 1
ID of the project type
Possible values: >= 1
ID of the client
Possible values: >= 1
ID of the person who is the project manager
Possible values: >= 1
ID of the person who is the account
Possible values: >= 1
ID of the client contact
Possible values: >= 1
ID of the reason why the project is won or lost
Possible values: >= 1
ID of the business unit
Possible values: >= 1
ID of the billing group the project is in
Possible values: >= 1
ID of the opportunity stage
job_order_category
object
Possible values: >= 1
The unique identifier of the resource
The date and time when the resource was created
The date and time when the resource was last updated
Possible values: <= 50 characters
The job order category name
Possible values: <= 50 characters
The job order category RGB color
Whether the job order category is chargeable
Whether plannings on projects with this job order category must be approved
Whether everybody can plan projects with this job order category, regardless of their permissions
Whether projects with this job order category have unlimited planning
The type of hours worked on projects with this job order category
Whether projects with this job order category must be in a program
Whether projects with this job order category use invoice-driven budget
Whether projects with this job order category are capex
Possible values: [on-goods-sold, before-contribution-margin, on-g-and-a, on-marketing]
The type of external costs for projects with this job order category
Whether projects with this job order category track won/lost feedback
Whether projects with this job order category track opportunity status
Whether projects with this job order category use automatic timesheets
Whether projects with this job order category use external drive canvas
Possible values: [remaining-days, percentage, time-based, timesheet-based]
The project status mode for projects with this job order category
Whether projects with this job order category require a review after being archived
The minimum project value in K to require a review after being archived
The ID of the job order category group
The ID of the job order template
The date and time when the resource was deleted
The date and time when the resource was deleted
{
"id": 1,
"created_at": "2026-06-18T08:17:48.538Z",
"updated_at": "2026-06-18T08:17:48.538Z",
"name": "First project",
"job_order": "jo_001",
"purchase_order": "po_001",
"value": "1.5",
"probability": "50",
"external_cost_percentage": 20,
"date_start": "2024-01-01",
"duration": "4",
"is_archived": true,
"archived_on": "2024-01-01",
"due_date": "2024-01-01",
"signed_on": "2024-01-01",
"is_timesheet_whitelist_enabled": true,
"job_order_category_id": 1,
"project_type_id": 1,
"client_id": 1,
"pm_id": 1,
"account_id": 1,
"client_contact_id": 1,
"reason_why_id": 1,
"business_unit_id": 1,
"billing_group_id": 1,
"project_stage_id": 1,
"job_order_category": {
"id": 1,
"created_at": "2026-06-18T08:17:48.539Z",
"updated_at": "2026-06-18T08:17:48.539Z",
"name": "Development",
"color": "rgb(255, 0, 0)",
"is_chargeable": true,
"is_allocation_request_required": false,
"is_planning_allowed_to_everybody": false,
"is_planning_unlimited": false,
"hours_type": "workable",
"is_program_required": false,
"is_budget_invoice_driven": true,
"is_capex": false,
"external_costs_type": "on-goods-sold",
"is_won_lost_feedback_required": false,
"is_opportunity_status_tracking_enabled": false,
"is_timesheet_automatic": false,
"is_external_drive_canvas_enabled": true,
"project_status_mode": "time-based",
"is_project_review_required": false,
"project_review_value_threshold": 50,
"job_order_category_group_id": 1,
"job_order_template_id": 1,
"deleted_at": "2026-06-18T08:17:48.539Z"
},
"deleted_at": "2026-06-18T08:17:48.539Z"
}
Validation failed
- application/json
- Schema
- Example (from schema)
Schema
- ResponseHeaderBag
Array [
]
headers
object
oneOf
Default value: 64
Error unique key
Human-readable message describing the error
failures
object[]
List of validation errors
Name of the field causing the error
Human-readable description of the error
{
"headers": {},
"content": "string",
"version": "string",
"status_code": 0,
"status_text": "string",
"charset": "string",
"callback": "string",
"encoding_options": 64,
"key": "invalid_data",
"message": "You provided invalid data. Check 'failures' for details.",
"failures": [
{
"field": "string",
"message": "string"
}
]
}
Unauthorized
- application/json
- Schema
- Example (from schema)
Schema
- ResponseHeaderBag
headers
object
oneOf
Default value: 64
Error unique key
Human-readable message describing the error
{
"headers": {},
"content": "string",
"version": "string",
"status_code": 0,
"status_text": "string",
"charset": "string",
"callback": "string",
"encoding_options": 64,
"key": "string",
"message": "string"
}
Forbidden
- application/json
- Schema
- Example (from schema)
Schema
- ResponseHeaderBag
headers
object
oneOf
Default value: 64
Error unique key
Human-readable message describing the error
{
"headers": {},
"content": "string",
"version": "string",
"status_code": 0,
"status_text": "string",
"charset": "string",
"callback": "string",
"encoding_options": 64,
"key": "string",
"message": "string"
}
Not found
- application/json
- Schema
- Example (from schema)
Schema
- ResponseHeaderBag
headers
object
oneOf
Default value: 64
Error unique key
Human-readable message describing the error
{
"headers": {},
"content": "string",
"version": "string",
"status_code": 0,
"status_text": "string",
"charset": "string",
"callback": "string",
"encoding_options": 64,
"key": "not_found",
"message": "string"
}
Precondition failed
- application/json
- Schema
- Example (from schema)
Schema
- ResponseHeaderBag
headers
object
oneOf
Default value: 64
Error unique key
Human-readable message describing the error
{
"headers": {},
"content": "string",
"version": "string",
"status_code": 0,
"status_text": "string",
"charset": "string",
"callback": "string",
"encoding_options": 64,
"key": "precondition_failure",
"message": "string"
}