Update Project
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 replaceWith 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:
| Field | Type | Description |
|---|---|---|
id | string | Required. Id of the project to update. |
clientId | string | Id of the client the project belongs to. |
name | string | Project name. |
description | string | Project description. |
startDate, dueDate | date | Project start / due dates (YYYY-MM-DD). |
active | boolean | Whether the project is active. |
portalAccess | enum | Client-portal visibility (PortalAccess). |
showTimeWorkedInPortal | boolean | Show logged time in the client portal. |
feeSchedule | object | Fee schedule configuration. |
hexColor | string | Display color. |
customValues | CustomValue[] | 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
| Status | Meaning |
|---|---|
412 Precondition Failed | id was missing from the body. |
404 / Not Found | No project with that id exists in your workspace. |