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.
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
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| limit | query | integer | Maximum records to return. Defaults to 50 and is capped at 100. |
| cursor | query | string | Opaque record cursor from the previous response meta.nextCursor value. |
| sortDir | query | asc | desc | Sort direction. Defaults to desc. |
| projectId | query | string | Filter by containing Project id. |
| workTypeId | query | string | Filter by Work Type id. |
| scheduledFrom | query | string | ISO 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. |
| scheduledTo | query | string | ISO 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. |
| status | query | NOT_READY_TO_SCHEDULE | READY_TO_SCHEDULE | SCHEDULED | IN_PROGRESS | COMPLETED | CANCELED | Filter by Work Order status. |
| externalSystem | query | string | External Reference system filter. Supply with externalObject and externalId for exact reconciliation lookup. |
| externalObject | query | string | External Reference object filter. Supply with externalSystem and externalId. |
| externalId | query | string | External Reference id filter. Supply with externalSystem and externalObject. |
Request body
This endpoint does not accept a JSON request body.
Responses
Work Order list envelope
#/components/schemas/OrgApiListEnvelope
An unsupported status, or a scheduledFrom or scheduledTo that is not a date-time
#/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: work_orders:read
#/components/schemas/OrgApiError
Rate limit exceeded
#/components/schemas/OrgApiError
Errors
Static examples
curl -X GET "$SOLAROS_BASE_URL/api/v1/work-orders" \ -H "Authorization: Bearer $SOLAROS_API_KEY"