Skip to main content
POST
/
graphql#ListProductStorageUnits
List product storage units
curl --request POST \
  --url 'https://clarus-api.com/graphql#ListProductStorageUnits' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Clarus-Subdomain: <api-key>' \
  --data '
{
  "query": "query($filter: ProductStorageUnitFilterType) { product_storage_units { all(filter: $filter) { edges { node { id priority stock_configuration unit_of_measure per_layer number_of_layers total product { id code } storage_unit_type { id code } } } } } }"
}
'
{
  "data": {
    "product_storage_units": {
      "all": {
        "edges": [
          {
            "node": {
              "id": "9",
              "priority": 0,
              "stock_configuration": "case",
              "unit_of_measure": "centimetre",
              "per_layer": 10,
              "number_of_layers": 5,
              "total": 50,
              "product": {
                "id": "150",
                "code": "WIDGET-RED-500"
              },
              "storage_unit_type": {
                "id": "12",
                "code": "PAL"
              }
            }
          }
        ]
      }
    }
  }
}

Query Structure

query($filter: ProductStorageUnitFilterType) {
  product_storage_units {
    all(filter: $filter) {
      edges {
        node {
          id
          priority
          stock_configuration
          unit_of_measure
          per_layer
          number_of_layers
          total
          product {
            id
            code
          }
          storage_unit_type {
            id
            code
          }
        }
      }
    }
  }
}

Filter Argument

All filters are passed inside the filter argument. Each filter field accepts an input object with operators (e.g. eq, ilike, from, to, between):
{
  "filter": {
    "product_id": {
      "eq": "value"
    }
  }
}

Available Filters

FilterInput TypeOperatorsDescription
product_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledProduct ID
product_codeStringInputTypeeq, ilike, like, in, betweenProduct code
storage_unit_type_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledStorage unit type ID
storage_unit_type_codeStringInputTypeeq, ilike, like, in, betweenStorage unit type code
priorityIntegerInputTypeeq, gt, gteq, lt, lteq, betweenPriority
totalDecimalInputTypeeq, gt, gteq, lt, lteq, betweenTotal per full unit
More fields and filters available via GraphQL introspection.

Authorizations

Authorization
string
header
required

OAuth 2.0 authentication. Use the client credentials or authorization code flow to obtain an access token.

X-Clarus-Subdomain
string
header
required

The subdomain/tenant name identifying which tenant's data to access. Required for all API requests.

Body

application/json
query
string<textarea>
required

GraphQL query string

Example:

"query($filter: ProductStorageUnitFilterType) { product_storage_units { all(filter: $filter) { edges { node { id priority stock_configuration unit_of_measure per_layer number_of_layers total product { id code } storage_unit_type { id code } } } } } }"

variables
object

Query variables including the filter object

Example:
{
"filter": { "product_code": { "ilike": "WIDGET" } }
}

Response

Successful GraphQL response

data
object
errors
object[]