Skip to main content
POST
/
graphql#ListTransactions
List transactions
curl --request POST \
  --url 'https://clarus-api.com/graphql#ListTransactions' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Clarus-Subdomain: <api-key>' \
  --data '
{
  "query": "query($filter: TransactionFilterType) { transactions { all(filter: $filter) { edges { node { id subtype category quantity created_at product { id code } account { id code } location_from { id code } location_to { id code } completing_user { id } } } } } }"
}
'
{
  "data": {
    "transactions": {
      "all": {
        "edges": [
          {
            "node": {
              "id": "904512",
              "subtype": "PICK",
              "category": "PICK",
              "quantity": 24,
              "created_at": "2026-06-15T14:32:08Z",
              "product": {
                "id": "1024",
                "code": "WIDGET-RED-500"
              },
              "account": {
                "id": "7",
                "code": "ACME"
              },
              "location_from": {
                "id": "318",
                "code": "AISLE-04-BAY-12"
              },
              "location_to": {
                "id": "990",
                "code": "PACK-STATION-02"
              },
              "completing_user": {
                "id": "210"
              }
            }
          }
        ]
      }
    }
  }
}

Query Structure

query($filter: TransactionFilterType) {
  transactions {
    all(filter: $filter) {
      edges {
        node {
          id
          subtype
          category
          quantity
          created_at
          product {
            id
            code
          }
          account {
            id
            code
          }
          location_from {
            id
            code
          }
          location_to {
            id
            code
          }
          completing_user {
            id
          }
        }
      }
    }
  }
}

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": {
    "subtype": {
      "eq": "value"
    }
  }
}

Available Filters

FilterInput TypeOperatorsDescription
subtypeSubtypeTypeInputTypeeq, inTransaction subtype (enum input — e.g. PICK, RCV, TRAN)
categoryStringInputTypeeq, ilike, like, in, betweenTransaction category
product_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledProduct ID
account_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledStock account ID (stock owner)
warehouse_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledWarehouse ID
created_atDatetimeInputTypeeq, from, to, betweenCreation timestamp
goods_out_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledRelated goods out ID
location_from_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledSource location ID
location_to_idIdInputTypeeq, in, gt, gteq, lt, lteq, filledDestination location ID
The all field also accepts an optional include_archived: Boolean argument to include archived transactions. 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: TransactionFilterType) { transactions { all(filter: $filter) { edges { node { id subtype category quantity created_at product { id code } account { id code } location_from { id code } location_to { id code } completing_user { id } } } } } }"

variables
object

Query variables including the filter object

Example:
{ "filter": { "subtype": { "eq": "PICK" } } }

Response

Successful GraphQL response

data
object

Query result data

errors
object[]

GraphQL errors, if any