{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Rate Limits","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":["To ensure fair usage and platform stability, all API key-based requests are subject to rate limiting."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"limits","__idx":1},"children":["Limits"]},{"$$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":"Scope"},"children":["Scope"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Limit"},"children":["Limit"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Per API Key"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["25 requests / minute"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Rate limits apply only to requests authenticated with the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-auth-api-key"]}," header. Requests authenticated exclusively with a Bearer token are ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not"]}," subject to rate limiting."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"exceeded-limit-response","__idx":2},"children":["Exceeded Limit Response"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When the rate limit is exceeded, the API returns:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"http","header":{"controls":{"copy":{}}},"source":"HTTP/1.1 429 Too Many Requests\n","lang":"http"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"exception\": \"ThrottlerException\",\n  \"code\": 429,\n  \"metadata\": {}\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"handling-rate-limits","__idx":3},"children":["Handling Rate Limits"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Monitor the headers"]}," — check ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-ratelimit-remaining-api_key_limit"]}," before each request to know how close you are to the limit."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Back off on 429"]}," — if you receive a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429"]}," response, wait until the window resets before retrying. Use the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["x-ratelimit-reset-api_key_limit"]}," header to determine how long to wait."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Spread your requests"]}," — avoid sending bursts of requests. Distributing them evenly over time reduces the chance of hitting the limit."]}]}]},"headings":[{"value":"Rate Limits","id":"rate-limits","depth":1},{"value":"Limits","id":"limits","depth":2},{"value":"Exceeded Limit Response","id":"exceeded-limit-response","depth":2},{"value":"Handling Rate Limits","id":"handling-rate-limits","depth":2}],"frontmatter":{"seo":{"title":"Rate Limits"}},"lastModified":"2026-04-27T20:09:02.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/rate-limits","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}