Skip to main content
POST
/
graphql#ListReports
List reports
curl --request POST \
  --url 'https://clarus-api.com/graphql#ListReports' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Clarus-Subdomain: <api-key>' \
  --data '
{
  "query": "query($filter: ReportFilterType) { reports { all(filter: $filter) { edges { node { id name description report_type source_path generic uuid report_query { id name } } } } } }"
}
'
{
  "data": {
    "reports": {
      "all": {
        "edges": [
          {
            "node": {
              "id": "1",
              "name": "Stock Summary",
              "description": "Summary of current stock levels",
              "report_type": "table",
              "source_path": "data.stock_balances.all",
              "generic": true,
              "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
              "report_query": {
                "id": "1",
                "name": "Stock Balance Report"
              }
            }
          }
        ]
      }
    }
  }
}

Query Structure

query($filter: ReportFilterType) {
  reports {
    all(filter: $filter) {
      edges {
        node {
          id
          name
          description
          report_type
          source_path
          generic
          uuid
          report_query {
            id
            name
          }
        }
      }
    }
  }
}

Filter Argument

All filters are passed inside the filter argument. Each filter field accepts an input object with operators:
{
  "filter": {
    "report_type": {
      "eq": "table"
    }
  }
}

Available Filters

FilterInput TypeOperatorsDescription
nameStringInputTypeeq, ilike, like, in, betweenReport name
report_typeStringInputTypeeq, ilike, like, in, betweenReport type (e.g. table, chart)
report_query_idIdInputTypeeq, gt, gteq, lt, lteq, in, filledFilter by report query ID
genericBooleanInputTypeeqFilter generic/custom reports

Filter Operators

Input TypeOperators
StringInputTypeeq (exact), ilike (case-insensitive partial), like (case-sensitive partial), in (array match), between (range)
IntegerInputTypeeq, gt, gteq, lt, lteq, between
DatetimeInputTypeeq, from, to, between
BooleanInputTypeeq (required)
IdInputTypeeq, gt, gteq, lt, lteq, in, filled
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: ReportFilterType) { reports { all(filter: $filter) { edges { node { id name description report_type source_path generic uuid report_query { id name } } } } } }"

variables
object

Query variables including the filter object

Example:
{
"filter": { "report_type": { "eq": "table" } }
}

Response

Successful GraphQL response

data
object

Query result data

errors
object[]

GraphQL errors, if any