{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Rate Limits","description":"API documentation for the Bright Customer API, providing comprehensive guides and reference materials for developers integrating with Bright products.","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"rate-limits","__idx":0},"children":["Rate Limits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Rate limits apply to all API requests."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-works","__idx":1},"children":["How It Works"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The API uses a token bucket algorithm to rate limit requests. When you start making requests, you are granted a bucket of tokens. Each request consumes one token. If you have no tokens remaining, you will receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429 Too Many Requests"]}," response with the problem type ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/problems#rate-limited"},"children":["Rate Limited"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Tokens are continuously replenished over time. If your bucket is empty, you will need to wait for tokens to be replenished before making further requests."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Rate limits are subject to change without notice."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"response-headers","__idx":2},"children":["Response Headers"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every API response includes rate limit headers so you can monitor your current usage:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Header"},"children":["Header"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Rate-Limit-Remaining"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of tokens remaining in your bucket."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Rate-Limit-Policy"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The bucket capacity and refill window (e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["10 / 10s"]},")."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"handling-rate-limits","__idx":3},"children":["Handling Rate Limits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When you receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429"]}," response:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Stop making requests immediately."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Retry with exponential backoff."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To avoid hitting rate limits:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Monitor the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["X-Rate-Limit-Remaining"]}," header and slow down as it approaches zero."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Spread requests out over time rather than making them in bursts."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Cache responses where possible to reduce the number of requests."]}]}]},"headings":[{"value":"Rate Limits","id":"rate-limits","depth":1},{"value":"How It Works","id":"how-it-works","depth":2},{"value":"Response Headers","id":"response-headers","depth":2},{"value":"Handling Rate Limits","id":"handling-rate-limits","depth":2}],"frontmatter":{"slug":["/rate-limit"],"seo":{"title":"Rate Limits"}},"lastModified":"2026-05-13T15:37:17.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/rate-limit","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}