solarOS Organization API

Organization API

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.

/api/v1/cases/{id}/fields

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

cases:write

Parameters

NameInTypeDescription
idrequiredpathstringCase identifier returned by the Organization API.

Request body

objectrequired
FieldTypeDescription
valuesrequiredobjectField Values keyed by savedIdentity from GET /api/v1/schema.
preserveExistingbooleanOptional unless marked required.
updatecasefieldsRequest
{
  "values": {
    "storyCount": 2,
    "roofPitch": "4_12",
    "panelCount": 18
  },
  "preserveExisting": true
}

Responses

200

Saved Case Fields and the keys updated by this request

object

400

Malformed payload or unknown, unavailable, or invalid Field Value

#/components/schemas/OrgApiError

401

Missing or invalid organization API key

#/components/schemas/OrgApiError

402

Organization billing access or an endpoint-specific business quota denied the request

#/components/schemas/OrgApiError

403

Missing required scope: cases:write

#/components/schemas/OrgApiError

404

Case not found

#/components/schemas/OrgApiError

429

Rate limit exceeded

#/components/schemas/OrgApiError

Errors

400 Malformed payload or unknown, unavailable, or invalid Field Value401 Missing or invalid organization API key402 Organization billing access or an endpoint-specific business quota denied the request403 Missing required scope: cases:write404 Case not found429 Rate limit exceeded

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}'