solarOS Organization API

Organization API

List Material Requests

Lists the organization's Material Requests — the materials ordered for project work, tracked through ordering, receipt, and pickup — with their line items. Filter by workOrderId, projectId (a request is on a Project through its project step or its Work Order), status, or updatedSince for incremental sync; a change to a line item counts as a change to its request. Deleted requests are not returned; a cancelled request has status CANCELLED. Required scope: material_reqs:read.

/api/v1/material-reqs

Lists the organization's Material Requests — the materials ordered for project work, tracked through ordering, receipt, and pickup — with their line items. Filter by workOrderId, projectId (a request is on a Project through its project step or its Work Order), status, or updatedSince for incremental sync; a change to a line item counts as a change to its request. Deleted requests are not returned; a cancelled request has status CANCELLED. Required scope: material_reqs:read.

List Material Requests. Use an organization API key with material_reqs:read. Check the response envelope and meta.requestId before triggering dependent workflow steps.

Required scopes

material_reqs: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.
workOrderIdquerystringOnly Material Requests for this Work Order.
projectIdquerystringOnly Material Requests on this Project.
statusqueryPENDING | ORDERED | PARTIALLY_RECEIVED | RECEIVED | READY_FOR_PICKUP | PICKED_UP | CANCELLEDFilter by Material Request status.
updatedSincequerystringISO 8601 date-time with Z or a UTC offset. Only Material Requests changed at or after this time, including changes to their line items.

Request body

This endpoint does not accept a JSON request body.

Responses

200

Material Request list envelope

#/components/schemas/MaterialRequestListEnvelope

400

UNSUPPORTED_FILTER: an unknown status. VALIDATION_FAILED: an updatedSince that is not a date-time with Z or a UTC offset.

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

#/components/schemas/OrgApiError

429

Rate limit exceeded

#/components/schemas/OrgApiError

Errors

400 UNSUPPORTED_FILTER: an unknown status. VALIDATION_FAILED: an updatedSince that is not a date-time with Z or a UTC offset.401 Missing or invalid organization API key402 Organization billing access or an endpoint-specific business quota denied the request403 Missing required scope: material_reqs:read429 Rate limit exceeded

Static examples

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