[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-nav-en":3,"docs-en-getting-started\u002Frate-limits":180},[4,26,43,105,155,172,176],{"title":5,"path":6,"stem":7,"children":8,"page":25},"Getting Started","\u002Fgetting-started","1.getting-started",[9,13,17,21],{"title":10,"path":11,"stem":12},"Your First SilvaMux API Call","\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F1.quick-start",{"title":14,"path":15,"stem":16},"Model Selection","\u002Fgetting-started\u002Fmodel-selection","1.getting-started\u002F2.model-selection",{"title":18,"path":19,"stem":20},"Rate Limits","\u002Fgetting-started\u002Frate-limits","1.getting-started\u002F3.rate-limits",{"title":22,"path":23,"stem":24},"FAQ","\u002Fgetting-started\u002Ffaq","1.getting-started\u002F4.faq",false,{"title":27,"path":28,"stem":29,"children":30,"page":25},"Billing","\u002Fbilling","2.billing",[31,35,39],{"title":32,"path":33,"stem":34},"Billing Overview","\u002Fbilling\u002Foverview","2.billing\u002F1.overview",{"title":36,"path":37,"stem":38},"Online Top-up","\u002Fbilling\u002Frecharge","2.billing\u002F2.recharge",{"title":40,"path":41,"stem":42},"Bills, Usage & Exports","\u002Fbilling\u002Fusage-export","2.billing\u002F3.usage-export",{"title":44,"path":45,"stem":46,"children":47,"page":25},"Coding Plan","\u002Fcoding-plan","3.coding-plan",[48,52,56,60,67,102],{"title":49,"path":50,"stem":51},"Coding Plan Overview","\u002Fcoding-plan\u002Foverview","3.coding-plan\u002F1.overview",{"title":53,"path":54,"stem":55},"Quick Start","\u002Fcoding-plan\u002Fquick-start","3.coding-plan\u002F2.quick-start",{"title":57,"path":58,"stem":59},"Usage Notes","\u002Fcoding-plan\u002Fusage-notes","3.coding-plan\u002F3.usage-notes",{"title":61,"path":62,"stem":63,"children":64},"Personal","\u002Fcoding-plan\u002Fpersonal","3.coding-plan\u002F4.personal\u002Findex",[65],{"title":66,"path":62,"stem":63},"Pricing & Benefits",{"title":68,"path":69,"stem":70,"children":71,"page":-1},"Developer Guide","\u002Fcoding-plan\u002Fguide","3.coding-plan\u002F5.guide\u002Findex",[72,74,78,82,86,90,94,98],{"title":73,"path":69,"stem":70},"Endpoints & Protocols",{"title":75,"path":76,"stem":77},"Claude Code","\u002Fcoding-plan\u002Fguide\u002Fclaude-code","3.coding-plan\u002F5.guide\u002F1.claude-code",{"title":79,"path":80,"stem":81},"OpenCode","\u002Fcoding-plan\u002Fguide\u002Fopencode","3.coding-plan\u002F5.guide\u002F2.opencode",{"title":83,"path":84,"stem":85},"Cursor","\u002Fcoding-plan\u002Fguide\u002Fcursor","3.coding-plan\u002F5.guide\u002F3.cursor",{"title":87,"path":88,"stem":89},"Codex","\u002Fcoding-plan\u002Fguide\u002Fcodex","3.coding-plan\u002F5.guide\u002F4.codex",{"title":91,"path":92,"stem":93},"ZCode","\u002Fcoding-plan\u002Fguide\u002Fzcode","3.coding-plan\u002F5.guide\u002F5.zcode",{"title":95,"path":96,"stem":97},"TRAE","\u002Fcoding-plan\u002Fguide\u002Ftrae","3.coding-plan\u002F5.guide\u002F6.trae",{"title":99,"path":100,"stem":101},"CodeBuddy","\u002Fcoding-plan\u002Fguide\u002Fcodebuddy","3.coding-plan\u002F5.guide\u002F7.codebuddy",{"title":22,"path":103,"stem":104},"\u002Fcoding-plan\u002Ffaq","3.coding-plan\u002F6.faq",{"title":106,"path":107,"stem":108,"children":109,"page":25},"Model APIs","\u002Fmodels","4.models",[110,143],{"title":111,"path":112,"stem":113,"children":114,"page":25},"Text Generation Model API","\u002Fmodels\u002Fchat","4.models\u002F1.chat",[115,119,123,127,131,135,139],{"title":116,"path":117,"stem":118},"Overview","\u002Fmodels\u002Fchat\u002Foverview","4.models\u002F1.chat\u002F1.overview",{"title":120,"path":121,"stem":122},"OpenAI Compatible API","\u002Fmodels\u002Fchat\u002Fopenai","4.models\u002F1.chat\u002F2.openai",{"title":124,"path":125,"stem":126},"Anthropic Compatible","\u002Fmodels\u002Fchat\u002Fanthropic","4.models\u002F1.chat\u002F3.anthropic",{"title":128,"path":129,"stem":130},"Volcengine Compatible","\u002Fmodels\u002Fchat\u002Fvolcengine","4.models\u002F1.chat\u002F4.volcengine",{"title":132,"path":133,"stem":134},"Zhipu Compatible","\u002Fmodels\u002Fchat\u002Fzhipu","4.models\u002F1.chat\u002F5.zhipu",{"title":136,"path":137,"stem":138},"SilvaMux Unified Entry","\u002Fmodels\u002Fchat\u002Funified","4.models\u002F1.chat\u002F6.unified",{"title":140,"path":141,"stem":142},"Multimodal Input","\u002Fmodels\u002Fchat\u002Fmultimodal","4.models\u002F1.chat\u002F7.multimodal",{"title":144,"path":145,"stem":146,"children":147,"page":25},"Image Generation Model API","\u002Fmodels\u002Fimages","4.models\u002F2.images",[148,151],{"title":116,"path":149,"stem":150},"\u002Fmodels\u002Fimages\u002Foverview","4.models\u002F2.images\u002F1.overview",{"title":152,"path":153,"stem":154},"Image Generation API","\u002Fmodels\u002Fimages\u002Fgeneration","4.models\u002F2.images\u002F2.generation",{"title":156,"path":157,"stem":158,"children":159,"page":25},"Usage & Balance","\u002Fusage-and-balance","5.usage-and-balance",[160,164,168],{"title":161,"path":162,"stem":163},"Query Balance","\u002Fusage-and-balance\u002Fbalance","5.usage-and-balance\u002F1.balance",{"title":165,"path":166,"stem":167},"Query Usage","\u002Fusage-and-balance\u002Fusage","5.usage-and-balance\u002F2.usage",{"title":169,"path":170,"stem":171},"Query Request Usage","\u002Fusage-and-balance\u002Frequest-usage","5.usage-and-balance\u002F3.request-usage",{"title":173,"path":174,"stem":175},"Error Codes","\u002Ferrors","6.errors",{"title":177,"path":178,"stem":179},"Getting Started with SilvaMux","\u002F","index",{"id":181,"title":18,"body":182,"description":361,"extension":362,"meta":363,"navigation":364,"path":19,"rawbody":365,"requiredFlags":366,"seo":367,"stem":20,"__hash__":368},"docs_en\u002F1.getting-started\u002F3.rate-limits.md",{"type":183,"value":184,"toc":354},"minimark",[185,189,202,207,221,228,236,262,266,269,318,321,325,328,340],[186,187,18],"h1",{"id":188},"rate-limits",[190,191,192,193,197,198,201],"p",{},"SilvaMux applies two layers of limits to model calls: ",[194,195,196],"strong",{},"request rate"," (requests per minute) and ",[194,199,200],{},"generation concurrency"," (simultaneous image\u002Fvideo tasks). Requests over the limit return 429.",[203,204,206],"h2",{"id":205},"request-rate-rpm","Request Rate (RPM)",[208,209,210,218],"ul",{},[211,212,213,214,217],"li",{},"Rate limiting is counted ",[194,215,216],{},"per organization",": requests from all API keys under the same organization are counted together, regardless of key or user.",[211,219,220],{},"The default quota is dynamically adjusted by the platform with no guaranteed fixed value; contact the platform to raise the quota or set a fixed rate.",[222,223,225],"alert",{"type":224},"info",[190,226,227],{},"Rate limiting runs after authentication and before billing; requests rejected by the rate limiter are not charged.",[190,229,230,231,235],{},"When the limit is exceeded the API returns HTTP 429 with error code ",[232,233,234],"code",{},"RATE_LIMITED","; the error body is rendered in the API's protocol:",[208,237,238,244,250,256],{},[211,239,240,241],{},"OpenAI format: ",[232,242,243],{},"{\"error\":{\"message\":\"rate limited\",\"type\":\"gateway_error\",\"code\":\"RATE_LIMITED\"}}",[211,245,246,247],{},"Anthropic format: ",[232,248,249],{},"{\"type\":\"error\",\"error\":{\"type\":\"rate_limit_error\",\"message\":\"rate limited\"}}",[211,251,252,253],{},"Gemini format: ",[232,254,255],{},"\"status\":\"RESOURCE_EXHAUSTED\"",[211,257,258,259],{},"Volcengine format: ",[232,260,261],{},"{\"error\":{\"code\":\"RATE_LIMITED\",\"message\":\"rate limited\"}}",[203,263,265],{"id":264},"generation-concurrency","Generation Concurrency",[190,267,268],{},"Image and video generation are asynchronous tasks with a per-organization concurrency cap (default 5) adjusted by administrators:",[270,271,272,288],"table",{},[273,274,275],"thead",{},[276,277,278,282,285],"tr",{},[279,280,281],"th",{},"Capability",[279,283,284],{},"Error code",[279,286,287],{},"Description",[289,290,291,306],"tbody",{},[276,292,293,297,303],{},[294,295,296],"td",{},"Image generation",[294,298,299,302],{},[232,300,301],{},"CONCURRENCY_LIMIT_EXCEEDED"," (429)",[294,304,305],{},"Simultaneous image generation tasks exceed the cap",[276,307,308,311,315],{},[294,309,310],{},"Video generation",[294,312,313,302],{},[232,314,301],{},[294,316,317],{},"Simultaneous video generation tasks exceed the cap",[190,319,320],{},"Wait for in-flight tasks to finish before submitting new ones.",[203,322,324],{"id":323},"retry-advice","Retry Advice",[190,326,327],{},"On 429, retry with exponential backoff (1s, 2s, 4s, ...) and check:",[208,329,330,335],{},[211,331,332,334],{},[232,333,234],{},": request frequency exceeds the RPM quota — lower the request rate.",[211,336,337,339],{},[232,338,301],{},": wait for generation tasks to finish, or contact the platform to raise the cap.",[222,341,343],{"type":342},"warning",[190,344,345,346,349,350,353],{},"The platform does not return ",[232,347,348],{},"X-RateLimit-*"," or ",[232,351,352],{},"Retry-After"," headers; clients should implement backoff based on the error code.",{"title":355,"searchDepth":356,"depth":356,"links":357},"",2,[358,359,360],{"id":205,"depth":356,"text":206},{"id":264,"depth":356,"text":265},{"id":323,"depth":356,"text":324},"Request rate limits, generation concurrency caps, and handling 429 errors.","md",{},true,"---\ntitle: Rate Limits\ndescription: Request rate limits, generation concurrency caps, and handling 429 errors.\n---\n\n# Rate Limits\n\nSilvaMux applies two layers of limits to model calls: **request rate** (requests per minute) and **generation concurrency** (simultaneous image\u002Fvideo tasks). Requests over the limit return 429.\n\n## Request Rate (RPM)\n\n- Rate limiting is counted **per organization**: requests from all API keys under the same organization are counted together, regardless of key or user.\n- The default quota is dynamically adjusted by the platform with no guaranteed fixed value; contact the platform to raise the quota or set a fixed rate.\n\n::alert{type=\"info\"}\nRate limiting runs after authentication and before billing; requests rejected by the rate limiter are not charged.\n::\n\nWhen the limit is exceeded the API returns HTTP 429 with error code `RATE_LIMITED`; the error body is rendered in the API's protocol:\n\n- OpenAI format: `{\"error\":{\"message\":\"rate limited\",\"type\":\"gateway_error\",\"code\":\"RATE_LIMITED\"}}`\n- Anthropic format: `{\"type\":\"error\",\"error\":{\"type\":\"rate_limit_error\",\"message\":\"rate limited\"}}`\n- Gemini format: `\"status\":\"RESOURCE_EXHAUSTED\"`\n- Volcengine format: `{\"error\":{\"code\":\"RATE_LIMITED\",\"message\":\"rate limited\"}}`\n\n## Generation Concurrency\n\nImage and video generation are asynchronous tasks with a per-organization concurrency cap (default 5) adjusted by administrators:\n\n| Capability | Error code | Description |\n| --- | --- | --- |\n| Image generation | `CONCURRENCY_LIMIT_EXCEEDED` (429) | Simultaneous image generation tasks exceed the cap |\n| Video generation | `CONCURRENCY_LIMIT_EXCEEDED` (429) | Simultaneous video generation tasks exceed the cap |\n\nWait for in-flight tasks to finish before submitting new ones.\n\n## Retry Advice\n\nOn 429, retry with exponential backoff (1s, 2s, 4s, ...) and check:\n\n- `RATE_LIMITED`: request frequency exceeds the RPM quota — lower the request rate.\n- `CONCURRENCY_LIMIT_EXCEEDED`: wait for generation tasks to finish, or contact the platform to raise the cap.\n\n::alert{type=\"warning\"}\nThe platform does not return `X-RateLimit-*` or `Retry-After` headers; clients should implement backoff based on the error code.\n::\n",[],{"title":18,"description":361},"-EPViNgnWT05TtSSut-dcMWJZb9ro_bf27bQEoTC58g"]