Save Case Field Values
Writes registered Field Values by key. Set preserveExisting to fill only unanswered Fields, preserving zero, false, and existing answers even during concurrent edits. Omitted keys remain unchanged. With preserveExisting false (the default), null clears an answer. Saves follow normal Case inheritance into unanswered draft Quote and Project Fields. GET /cases/{id} returns the values in customFields.
Writes registered Field Values by key. Set preserveExisting to fill only unanswered Fields, preserving zero, false, and existing answers even during concurrent edits. Omitted keys remain unchanged. With preserveExisting false (the default), null clears an answer. Saves follow normal Case inheritance into unanswered draft Quote and Project Fields. GET /cases/{id} returns the values in customFields.
Save Case Field Values. Use an organization API key with cases:write. Check the response envelope and meta.requestId before triggering dependent workflow steps.
Required scopes
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| idrequired | path | string | Case identifier returned by the Organization API. |
Request body
| Field | Type | Description |
|---|---|---|
| valuesrequired | object | Field Values keyed by savedIdentity from GET /api/v1/schema. |
| preserveExisting | boolean | Optional unless marked required. |
{
"values": {
"storyCount": 2,
"roofPitch": "4_12",
"panelCount": 18
},
"preserveExisting": true
}Responses
Saved Case Fields and the keys updated by this request
object
Malformed payload or unknown, unavailable, or invalid Field Value
#/components/schemas/OrgApiError
Missing or invalid organization API key
#/components/schemas/OrgApiError
Organization billing access or an endpoint-specific business quota denied the request
#/components/schemas/OrgApiError
Missing required scope: cases:write
#/components/schemas/OrgApiError
Case not found
#/components/schemas/OrgApiError
Rate limit exceeded
#/components/schemas/OrgApiError
Errors
Static examples
curl -X PATCH "$SOLAROS_BASE_URL/api/v1/cases/$SOLAROS_CASE/fields" \
-H "Authorization: Bearer $SOLAROS_API_KEY" \
-H "Content-Type: application/json" \
--data '{"values":{"storyCount":2,"roofPitch":"4_12","panelCount":18},"preserveExisting":true}'