Skip to main content

Update Project

PUT PATCH /public/action/projects/update

Updates an existing project, identified by id in the request body. Use PATCH to change a few fields (partial merge) or PUT to replace the whole record.

Authentication: X-API-KEY header (see Authentication).

PUT is a full replace

With PUT, fields you omit are overwritten. Fetch the current project with Search Projects first, modify it, then PUT the complete object back. For a few fields, use PATCH instead. id is required for both; accountId is forced to your workspace.

Request body

The full Project object. Key fields:

FieldTypeDescription
idstringRequired. Id of the project to update.
clientIdstringId of the client the project belongs to.
namestringProject name.
descriptionstringProject description.
startDate, dueDatedateProject start / due dates (YYYY-MM-DD).
activebooleanWhether the project is active.
portalAccessenumClient-portal visibility (PortalAccess).
showTimeWorkedInPortalbooleanShow logged time in the client portal.
feeScheduleobjectFee schedule configuration.
hexColorstringDisplay color.
customValuesCustomValue[]Custom-field values (fieldId, mappingKey, fieldName, value, type).

Request

curl -X PUT https://api.withmoxie.com/public/action/projects/update \
-H "X-API-KEY: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"id": "66b0f4c3c3a9e40012ab6611",
"clientId": "66b0f2a1c3a9e40012ab34cd",
"name": "Website Redesign",
"description": "CMS migration",
"startDate": "2026-07-15",
"dueDate": "2026-10-01",
"active": true,
"showTimeWorkedInPortal": true
}'

Response

Returns the updated Project object.

{
"id": "66b0f4c3c3a9e40012ab6611",
"accountId": 10016,
"clientId": "66b0f2a1c3a9e40012ab34cd",
"name": "Website Redesign",
"description": "CMS migration",
"startDate": "2026-07-15",
"dueDate": "2026-10-01",
"active": true,
"showTimeWorkedInPortal": true,
"customValues": []
}

Partial update (PATCH)

Send only the fields to change, plus id:

curl -X PATCH https://api.withmoxie.com/public/action/projects/update \
-H "X-API-KEY: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"id": "66b0f4c3c3a9e40012ab6611",
"dueDate": "2026-11-15",
"active": false
}'

Returns the full updated Project object with only dueDate and active changed.

Errors

StatusMeaning
412 Precondition Failedid was missing from the body.
404 / Not FoundNo project with that id exists in your workspace.