Overview
| Method | Interface | Speed | Returns when empty | Scope without resourceId |
|---|---|---|---|---|
getActiveSubscriptionsList | Edge SDK | Fastest | Empty list | Global subscriptions only |
getActiveSubscriptions | GraphQL | Fast | Empty list | Global subscriptions only |
subscriptions | GraphQL | Slower | Empty list | All subscriptions (admin) |
getActiveSubscriptionsList — Edge SDK
This method is served directly from the Stigg Edge (local sidecar cache) and is by far the fastest option. It returns slim subscription objects; for full subscription details use getSubscription instead.
It accepts a single resourceId, a list of resource IDs (up to 100), or no resource ID at all.
- Without
resourceId: returns only global (non-resource-attached) subscriptions. - With
resourceId: returns the active subscriptions for the specified resource(s).
getActiveSubscriptions — GraphQL
The full-fidelity GraphQL equivalent. Returns complete subscription objects including plan details, billing periods, add-ons, and pricing. Use this when you need the full subscription payload and are willing to accept the higher latency of a GraphQL round-trip.
- Without
resourceId: returns only global (non-resource-attached) subscriptions for the customer. It does not return subscriptions attached to resources. - With
resourceId: returns active subscriptions for that specific resource.
The GraphQL
getActiveSubscriptions query correctly returns an empty list when there are no active subscriptions. The Go SDK wrapper GetActiveSubscriptions does not — see the warning above under getActiveSubscriptionsList.subscriptions — GraphQL (admin)
A paginated, filterable query over all subscriptions regardless of status. Use this for admin dashboards, churn analysis, or any reporting that needs to go beyond just the currently active subscriptions.
It is slower than getActiveSubscriptions and is not suitable for runtime per-customer checks.
The GraphQL
subscriptions query correctly returns an empty list when no subscriptions match the filter.Choosing the right method
- For runtime entitlement checks and UI rendering: use
getActiveSubscriptionsList— it’s Edge-cached and fastest. - For fetching full subscription detail at runtime: use
getActiveSubscriptionsvia GraphQL. - For admin reporting, dashboards, or filtering by status/dates: use
subscriptionsvia GraphQL. - When using the Go SDK: always handle the empty-result error from all three methods, and always pass explicit
PagingandSortingtoGetSubscriptions.
resourceId scoping behaviour
Both getActiveSubscriptionsList and getActiveSubscriptions are resource-scoped:
- Omitting
resourceIdreturns only global subscriptions — subscriptions that were provisioned without a resource ID (i.e. for products with the “single active subscription” type). - To retrieve subscriptions for a resource-backed product (products with the “multiple active subscriptions” type), you must pass the corresponding
resourceId.
resourceId for global subscriptions, and one with a resourceId per resource — to get the complete picture.
The admin subscriptions query is not scoped this way and returns all matching subscriptions regardless of whether they have a resource attached.