Skip to main content
Retrieves all entitlements for a customer, providing a complete picture of their feature access.

Query

query GetEntitlements($query: FetchEntitlementsQuery!) {
  entitlements(query: $query) {
    feature {
      refId
      displayName
      featureType
      featureUnits
      featureUnitsPlural
    }
    isGranted
    hasUnlimitedUsage
    usageLimit
    currentUsage
    resetPeriod
    usagePeriodStart
    usagePeriodEnd
    hasSoftLimit
    enumValues
    summaries {
      isEffectiveEntitlement
      plan {
        refId
        displayName
      }
      featurePackageEntitlement {
        usageLimit
      }
      addonQuantity
    }
  }
}

Parameters

query
FetchEntitlementsQuery
required
Query parameters for fetching entitlements

Return Type

Returns an array of EntitlementWithSummary objects containing:
FieldTypeDescription
featureEntitlementFeatureFeature details
isGrantedBooleanWhether access is granted
hasUnlimitedUsageBooleanUnlimited usage flag
usageLimitFloatMaximum allowed usage
currentUsageFloatCurrent consumption
resetPeriodEntitlementResetPeriodWhen usage resets
hasSoftLimitBooleanSoft vs hard limit
enumValues[String]Values for enum features
summaries[EntitlementSummary]Breakdown by source

Common Use Cases

Fetch all entitlements on app load to configure feature flags.
Show customers what features they have access to.
Build usage dashboards showing all metered features.

Example: Initialize Feature Flags

const { data } = await client.query({
  query: GET_ENTITLEMENTS,
  variables: {
    query: { customerId: user.customerId }
  }
});

const featureFlags = {};

data.entitlements.forEach(e => {
  featureFlags[e.feature.refId] = {
    enabled: e.isGranted,
    limit: e.hasUnlimitedUsage ? Infinity : e.usageLimit,
    usage: e.currentUsage || 0
  };
});

// Use in app
if (featureFlags['feature-sso'].enabled) {
  enableSSO();
}