solarOS Organization API

Organization API

List project-contained Work Orders

Lists public API Work Orders that are contained in Projects. This endpoint only returns Work Orders that belong to a Project. Each Work Order carries its customer { id, displayName } (the Project's customer), scopeItems, and url, the Work Order page in solarOS. Filter by visit date with scheduledFrom and scheduledTo. Supply externalSystem, externalObject, and externalId together to filter by a canonical External Reference. Required scope: work_orders:read.

/api/v1/work-orders

Lists public API Work Orders that are contained in Projects. This endpoint only returns Work Orders that belong to a Project. Each Work Order carries its customer { id, displayName } (the Project's customer), scopeItems, and url, the Work Order page in solarOS. Filter by visit date with scheduledFrom and scheduledTo. Supply externalSystem, externalObject, and externalId together to filter by a canonical External Reference. Required scope: work_orders:read.

List project-contained Work Orders. Use an organization API key with work_orders:read. Check the response envelope and meta.requestId before triggering dependent workflow steps.

Required scopes

work_orders:read

Parameters

NameInTypeDescription
limitqueryintegerMaximum records to return. Defaults to 50 and is capped at 100.
cursorquerystringOpaque record cursor from the previous response meta.nextCursor value.
sortDirqueryasc | descSort direction. Defaults to desc.
projectIdquerystringFilter by containing Project id.
workTypeIdquerystringFilter by Work Type id.
scheduledFromquerystringISO 8601 date-time. Only Work Orders with a visit (a Service Appointment that is not canceled) starting at or after this time. May be sent without scheduledTo.
scheduledToquerystringISO 8601 date-time. Only Work Orders with a visit (a Service Appointment that is not canceled) starting before this time. With scheduledFrom, the same visit must start inside both bounds.
statusqueryNOT_READY_TO_SCHEDULE | READY_TO_SCHEDULE | SCHEDULED | IN_PROGRESS | COMPLETED | CANCELEDFilter by Work Order status.
externalSystemquerystringExternal Reference system filter. Supply with externalObject and externalId for exact reconciliation lookup.
externalObjectquerystringExternal Reference object filter. Supply with externalSystem and externalId.
externalIdquerystringExternal Reference id filter. Supply with externalSystem and externalObject.

Request body

This endpoint does not accept a JSON request body.

Responses

200

Work Order list envelope

#/components/schemas/OrgApiListEnvelope

400

An unsupported status, or a scheduledFrom or scheduledTo that is not a date-time

#/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: work_orders:read

#/components/schemas/OrgApiError

429

Rate limit exceeded

#/components/schemas/OrgApiError

Errors

400 An unsupported status, or a scheduledFrom or scheduledTo that is not a date-time401 Missing or invalid organization API key402 Organization billing access or an endpoint-specific business quota denied the request403 Missing required scope: work_orders:read429 Rate limit exceeded

Static examples

curl -X GET "$SOLAROS_BASE_URL/api/v1/work-orders" \
  -H "Authorization: Bearer $SOLAROS_API_KEY"