Skip to main content
Stigg enforces rate limits to protect platform stability and prevent unintended overload from misconfigured clients or retry loops. Two limits apply, and a request must pass both: operation-level (below) and entity-level (per customer, subscription, or customer resource).

Operation-level rate limits

How many times a specific GraphQL operation can be called per minute, regardless of which customer or subscription is targeted.
SDK methodGraphQL operationRate limit (calls per minute)
getPaywall (public)paywall6,000
getPaywall (in-app)paywall3000
provisionSubscriptionprovisionSubscription250
applySubscriptionapplySubscription250
getEntitlements / getEntitlement / getBooleanEntitlement / getNumericEntitlement / getMeteredEntitlemententitlement6,000
getActiveSubscriptionsListgetActiveSubscriptionsList6,000
getSubscriptionssubscriptions1500
getSubscriptiongetSubscription3000
provisionCustomerprovisionCustomer250
reportEventreportEvent1000/bulk size per second
reportUsagereportUsage3000
reportUsageBulkreportUsageBulk600 in bulks of 100
getUsageHistoryV2getUsageHistoryV2250
previewSubscriptionpreviewSubscription3000
estimateSubscriptionestimateSubscription3000
estimateSubscriptionUpdateestimateSubscriptionUpdate3000
getCustomergetCustomerByRefId3000
getCustomerPortalgetCustomerPortal1500
cancelSubscriptioncancelSubscription250
updateCustomerupdateOneCustomer250
updateSubscriptionupdateOneSubscription250
archiveCustomerarchiveCustomer250
migrateSubscriptionToLatestmigrateSubscriptionToLatest250
getCouponscoupon500
revokePromotionalEntitlementsrevokePromotionalEntitlements500
getCreditBalance (deprecated — use getCreditEntitlement instead)creditBalanceSummary (deprecated)500
getCreditGrantscreditGrants1500
getCreditLedgercreditsLedger500
getCreditUsagecreditUsage500
grantCreditscreateCreditGrant250
voidCreditGrantvoidCreditGrant500
Routed through the Edge API (a separate, REST-style layer) and shared with all Edge API endpoints — see Edge API rate limits.
If higher rate limits are required, please contact Stigg Support

Entity-level rate limits (resource protection)

These limits exist to prevent repeated concurrent mutations on the same entity, which can cause:
  • Parallel processing contention
  • Unnecessary retries
  • Backend instability
  • Incident-level load amplification

Entity types

Entity-level rate limits are enforced for the following entities:
  • Customer
  • Subscription
  • Customer resource (customer and resource combination)
Each entity has its own rate limit bucket, independent of other entities. When a request mutates state, it is routed to a bucket based on the entity it targets:
  • Customer-based operations → customerId
  • Subscription-based operations → subscriptionId
  • Customer and resource operations → customerId:resourceId

Example

If the entity-level limit is 30 calls per minute:
  • Calling cancelSubscription 30 times per minute for the same subscription ID is allowed
  • The 31st call for that subscription will fail
  • Calls for other subscriptions are unaffected
  • Calls for other customers are unaffected
This applies even if:
  • The calls use different GraphQL mutations
  • The operation-level rate limit has not been reached

GraphQL operations with entity-level rate limits

The following GraphQL mutations are subject to entity-level rate limiting. Each mutation is limited based on the specific entity key it mutates.
GraphQL mutationRate-limited entity (key)Rate limit (calls per minute per entity)
applySubscriptioncustomerId:resourceId or customerId30
createCustomercustomerId30
provisionCustomercustomerId30
archiveCustomercustomerId30
unarchiveCustomercustomerId30
importCustomercustomerId30
updateCustomercustomerId30
initAddStripeCustomerPaymentMethodcustomerId30
preparePaymentMethodFormcustomerId30
attachCustomerPaymentMethodcustomerId30
detachCustomerPaymentMethodcustomerId30
createSubscriptioncustomerId:resourceId or customerId30
provisionSubscriptioncustomerId:resourceId or customerId30
provisionSubscriptionV2customerId:resourceId or customerId30
transferSubscriptioncustomerId:resourceId or customerId30
triggerSubscriptionUsageSynccustomerId:resourceId or customerId30
cancelSubscriptionsubscriptionId30
migrateSubscriptionToLatestsubscriptionId30
chargeSubscriptionUsagesubscriptionId30
markInvoiceAsPaidsubscriptionId30
updateSubscriptionsubscriptionId30
estimateSubscriptionUpdatesubscriptionId30
updateSubscriptionMaximumSpendsubscriptionId30
cancelSchedulesubscriptionId30
If higher rate limits are required, please contact Stigg Support