> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stigg.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Rate Limits

Stigg enforces rate limits to protect platform stability and prevent unintended overload from misconfigured clients or retry loops. Two kinds of limits can apply to a given operation, and a request must pass both when both are listed:

* **Operation-level limits** — how many times a specific GraphQL operation can be called per minute, regardless of which customer or subscription is targeted. Some read operations at 6,000 / min are served through the [Edge API](/api-and-sdks/integration/additional-deployment-methods/network-requirements#api-endpoints), a separate low-latency layer, and share a single bucket per API key across all of those operations instead of having their own individual limit.
* **Entity-level limits** — mutations are additionally limited per entity (customer, subscription, or customer+resource), so repeated calls against one entity can't starve out calls to others. Each entity has its own independent bucket: a customer-based operation is keyed on `customerId`, a subscription-based operation on `subscriptionId`, and a customer+resource operation on `customerId:resourceId`. This applies even if the calls use different mutations or the operation-level limit hasn't been reached.

| Endpoint                                                                                                                 | Rate limit                                                    |
| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------- |
| `paywall` (getPaywall, public)                                                                                           | 6,000 / min                                                   |
| `paywall` (getPaywall, in-app)                                                                                           | 3,000 / min                                                   |
| `entitlement` (getEntitlements / getEntitlement / getBooleanEntitlement / getNumericEntitlement / getMeteredEntitlement) | 6,000 / min                                                   |
| `entitlementsState` (getEntitlementsState)                                                                               | 6,000 / min                                                   |
| `getActiveSubscriptionsList`                                                                                             | 6,000 / min                                                   |
| `subscriptions` (getSubscriptions)                                                                                       | 1,500 / min                                                   |
| `getSubscription`                                                                                                        | 3,000 / min                                                   |
| `provisionCustomer`                                                                                                      | 250 / min<br />30 / min per customer                          |
| `reportEvent`                                                                                                            | 100,000 events/sec across batches                             |
| `reportUsage`                                                                                                            | 3,000 / min                                                   |
| `reportUsageBulk`                                                                                                        | 600 / min in bulks of 100                                     |
| `getUsageHistoryV2`                                                                                                      | 250 / min                                                     |
| `previewSubscription`                                                                                                    | 3,000 / min                                                   |
| `estimateSubscription`                                                                                                   | 3,000 / min                                                   |
| `estimateSubscriptionUpdate`                                                                                             | 3,000 / min<br />30 / min per subscription                    |
| `getCustomerByRefId` (getCustomer)                                                                                       | 3,000 / min                                                   |
| `getCustomerPortal`                                                                                                      | 1,500 / min                                                   |
| `cancelSubscription`                                                                                                     | 250 / min<br />30 / min per subscription                      |
| `updateOneCustomer` (updateCustomer)                                                                                     | 250 / min<br />30 / min per customer                          |
| `updateOneSubscription` (updateSubscription)                                                                             | 250 / min<br />30 / min per subscription                      |
| `archiveCustomer`                                                                                                        | 250 / min<br />30 / min per customer                          |
| `migrateSubscriptionToLatest`                                                                                            | 250 / min<br />30 / min per subscription                      |
| `coupon` (getCoupons)                                                                                                    | 500 / min                                                     |
| `grantPromotionalEntitlements`                                                                                           | 500 / min                                                     |
| `revokePromotionalEntitlements`                                                                                          | 500 / min                                                     |
| ~~`creditBalanceSummary`~~ (getCreditBalance, deprecated — use `getCreditEntitlement`)                                   | 500 / min                                                     |
| `creditGrants` (getCreditGrants)                                                                                         | 1,500 / min                                                   |
| `creditsLedger` (getCreditLedger)                                                                                        | 500 / min                                                     |
| `creditUsage` (getCreditUsage)                                                                                           | 500 / min                                                     |
| `createCreditGrant` (grantCredits)                                                                                       | 250 / min                                                     |
| `voidCreditGrant`                                                                                                        | 500 / min                                                     |
| `applySubscription`                                                                                                      | 250 / min<br />30 / min per customer (or customer + resource) |
| `createCustomer`                                                                                                         | 30 / min per customer                                         |
| `unarchiveCustomer`                                                                                                      | 30 / min per customer                                         |
| `importCustomer`                                                                                                         | 30 / min per customer                                         |
| `initAddStripeCustomerPaymentMethod`                                                                                     | 30 / min per customer                                         |
| `preparePaymentMethodForm`                                                                                               | 30 / min per customer                                         |
| `attachCustomerPaymentMethod`                                                                                            | 30 / min per customer                                         |
| `detachCustomerPaymentMethod`                                                                                            | 30 / min per customer                                         |
| `createSubscription`                                                                                                     | 30 / min per customer (or customer + resource)                |
| `provisionSubscription`                                                                                                  | 250 / min<br />30 / min per customer (or customer + resource) |
| `provisionSubscriptionV2`                                                                                                | 30 / min per customer (or customer + resource)                |
| `transferSubscription`                                                                                                   | 30 / min per customer (or customer + resource)                |
| `triggerSubscriptionUsageSync`                                                                                           | 30 / min per customer (or customer + resource)                |
| `chargeSubscriptionUsage`                                                                                                | 30 / min per subscription                                     |
| `markInvoiceAsPaid`                                                                                                      | 30 / min per subscription                                     |
| `updateSubscriptionMaximumSpend`                                                                                         | 30 / min per subscription                                     |
| `cancelSchedule`                                                                                                         | 30 / min per subscription                                     |
| `/v1/a/:accountId/e/:environmentId/paywall.json`                                                                         | 6,000 / min                                                   |
| `/v1/a/:accountId/e/:environmentId/p/:productId/paywall.json`                                                            | 6,000 / min                                                   |
| `/v1/a/:accountId/e/:environmentId/c/:customerId/entitlements.json`                                                      | 6,000 / min                                                   |
| `/v1/a/:accountId/e/:environmentId/c/:customerId/entitlements-state.json`                                                | 6,000 / min                                                   |
| `/v1/a/:accountId/e/:environmentId/c/:customerId/subscriptions.json`                                                     | 6,000 / min                                                   |
| `/v1/a/:accountId/e/:environmentId/config/client-sdk-configuration.json`                                                 | 6,000 / min                                                   |
| `/v1/a/:accountId/e/:environmentId/config/server-sdk-configuration.json`                                                 | 6,000 / min                                                   |
| `/v1/a/:accountId/e/:environmentId/config/persistent-cache-service-configuration.json`                                   | 6,000 / min                                                   |
| `/v1/a/:accountId/e/:environmentId/credentials/event-queue.json`                                                         | 6,000 / min                                                   |

<Note>
  `reportEvent` supports up to **100,000 events per second** on Stigg Cloud. For higher limits, see BYOC below or contact [Stigg Support](mailto:support@stigg.io).
</Note>

<Card title="Need 1M+ events/second? Join the BYOC Early Access" icon="rocket" href="mailto:support@stigg.io?subject=BYOC Early Access">
  **Bring Your Own Cloud (BYOC)** deploys Stigg's ingestion layer in your own infrastructure, removing rate-limit ceilings and keeping event data in your cloud. [Contact us](mailto:support@stigg.io) to join the Early Access program.
</Card>

## Behavior

* When the limit is exceeded, Stigg returns a `429` response: `{"error":"rate_limit_exceeded","message":"Too many requests"}`
* No `Retry-After` header is included in the response
* The `/health` endpoint is exempt from rate limiting

<Note>
  If higher rate limits are required, please contact [Stigg Support](mailto:support@stigg.io)
</Note>


## Related topics

- [Rate Limits](/api-and-sdks/integration/rest/rate-limits.md)
- [I want to run Stigg Sidecar and API in production](/guides/i-want-to/run-stigg-sidecar-api-in-production.md)
- [Integrate data ingestion into Stigg](/guides/i-want-to/integrate-data-ingestion.md)
- [Responses](/api-and-sdks/api-reference/rest/responses.md)
- [Entitlement checks](/api-and-sdks/integration/backend/entitlements.md)
