solarOS Organization API

Organization API

Update schedule, assignment, notes, confidence, or window

Updates rescheduling fields, assignment changes, notes, scheduling confidence, and customer-facing windows. Direct operational status writes are rejected; use action endpoints instead. Scheduling confidence wire values are TENTATIVELY_SCHEDULED, CONFIDENTLY_SCHEDULED, and CONFIRMED.

/api/v1/service-appointments/{id}

Updates rescheduling fields, assignment changes, notes, scheduling confidence, and customer-facing windows. Direct operational status writes are rejected; use action endpoints instead. Scheduling confidence wire values are TENTATIVELY_SCHEDULED, CONFIDENTLY_SCHEDULED, and CONFIRMED.

Update schedule, assignment, notes, confidence, or window. Use an organization API key with service_appointments:write. Check the response envelope and meta.requestId before triggering dependent workflow steps.

Required scopes

service_appointments:write

Parameters

NameInTypeDescription
idrequiredpathstringService Appointment identifier returned by the Organization API.

Request body

objectrequired
FieldTypeDescription
scheduledStartstringOptional unless marked required.
scheduledEndstringOptional unless marked required.
timezonestringOptional unless marked required.
customerWindowStartstring | nullOptional unless marked required.
customerWindowEndstring | nullOptional unless marked required.
assignedTeamMemberIds[]array<string>Optional unless marked required.
primaryTeamMemberIdstringOptional unless marked required.
notesstring | nullOptional unless marked required.
schedulingConfidenceTENTATIVELY_SCHEDULED | CONFIDENTLY_SCHEDULED | CONFIRMEDOptional unless marked required.
updateserviceappointmentRequest
{
  "scheduledStart": "2026-08-13T17:00:00Z",
  "scheduledEnd": "2026-08-13T21:00:00Z",
  "timezone": "America/Los_Angeles",
  "notes": "Customer gate code is in the Work Order description."
}

Responses

200

Updated Service Appointment envelope with warnings

#/components/schemas/OrgApiResourceEnvelope

400

Validation error

#/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: service_appointments:write

#/components/schemas/OrgApiError

404

Not found

#/components/schemas/OrgApiError

409

Lifecycle conflict

#/components/schemas/OrgApiError

429

Rate limit exceeded

#/components/schemas/OrgApiError

Errors

400 Validation error401 Missing or invalid organization API key402 Organization billing access or an endpoint-specific business quota denied the request403 Missing required scope: service_appointments:write404 Not found409 Lifecycle conflict429 Rate limit exceeded

Static examples

curl -X PATCH "$SOLAROS_BASE_URL/api/v1/service-appointments/$SOLAROS_SERVICE_APPOINTMENT" \
  -H "Authorization: Bearer $SOLAROS_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{"scheduledStart":"2026-08-13T17:00:00Z","scheduledEnd":"2026-08-13T21:00:00Z","timezone":"America/Los_Angeles","notes":"Customer gate code is in the Work Order description."}'