Skip to main content
POST
/
graphql#ListProductMaterials
List product materials
curl --request POST \
  --url 'https://clarus-api.com/graphql#ListProductMaterials' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Clarus-Subdomain: <api-key>' \
  --data '
{
  "query": "query($filter: ProductMaterialFilterType) { product_materials { all(filter: $filter) { edges { node { id quantity parent_product { id code } child_product { id code } } } } } }"
}
'
{
  "data": {
    "product_materials": {
      "all": {
        "edges": [
          {
            "node": {
              "id": "55",
              "quantity": 4,
              "parent_product": {
                "id": "150",
                "code": "KIT-A"
              },
              "child_product": {
                "id": "88",
                "code": "SCREW-M4"
              }
            }
          }
        ]
      }
    }
  }
}

Query Structure

query($filter: ProductMaterialFilterType) {
  product_materials {
    all(filter: $filter) {
      edges {
        node {
          id
          quantity
          parent_product {
            id
            code
          }
          child_product {
            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": {
    "parent_product_id": {
      "eq": "value"
    }
  }
}

Available Filters

FilterInput TypeOperatorsDescription
parent_product_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledParent (BOM) product ID
child_product_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledComponent product ID
parent_product_codeStringInputTypeeq, ilike, like, in, betweenParent product code
child_product_codeStringInputTypeeq, ilike, like, in, betweenComponent product code
quantityDecimalInputTypeeq, gt, gteq, lt, lteq, betweenComponent quantity
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: ProductMaterialFilterType) { product_materials { all(filter: $filter) { edges { node { id quantity parent_product { id code } child_product { id code } } } } } }"

variables
object

Query variables including the filter object

Example:
{
"filter": { "parent_product_code": { "ilike": "KIT" } }
}

Response

Successful GraphQL response

data
object
errors
object[]