[{"data":1,"prerenderedAt":347},["ShallowReactive",2],{"navigation":3,"page:\u002Frate-limits":45},{"title":4,"links":5},"API reference",[6,9,12,15,18,21,24,27,30,33,36,39,42],{"title":7,"href":8},"Accounts","\u002Freference\u002Faccounts",{"title":10,"href":11},"Connect","\u002Freference\u002Fconnect",{"title":13,"href":14},"Calendars","\u002Freference\u002Fcalendars",{"title":16,"href":17},"Events","\u002Freference\u002Fevents",{"title":19,"href":20},"Availability","\u002Freference\u002Favailability",{"title":22,"href":23},"Meetings","\u002Freference\u002Fmeetings",{"title":25,"href":26},"Invitations","\u002Freference\u002Finvitations",{"title":28,"href":29},"Webhooks","\u002Freference\u002Fwebhooks",{"title":31,"href":32},"Metadata","\u002Freference\u002Fmetadata",{"title":34,"href":35},"Keys","\u002Freference\u002Fkeys",{"title":37,"href":38},"Sandbox","\u002Freference\u002Fsandbox",{"title":40,"href":41},"Usage","\u002Freference\u002Fusage",{"title":43,"href":44},"Logs","\u002Freference\u002Flogs",{"kind":46,"title":47,"description":48,"sections":49,"doc":62},"guide","Rate limits","Request limits per 5-minute window for each plan, the response headers that show your current usage, and how to handle the limit.",[50,53,56,59],{"id":51,"title":52},"when-you-exceed-the-limit","When you exceed the limit",{"id":54,"title":55},"provider-limits","Provider limits",{"id":57,"title":58},"make-fewer-requests","Make fewer requests",{"id":60,"title":61},"monthly-requests","Monthly requests",{"id":63,"title":47,"body":64,"description":48,"extension":338,"hero":339,"meta":340,"navigation":341,"path":342,"rawbody":343,"sections":344,"seo":345,"stem":70,"v1":344,"__hash__":346},"docs\u002Frate-limits.md",{"type":65,"value":66,"toc":330},"minimark",[67,71,78,145,148,193,208,211,230,232,245,247,284,286,296,304,326],[68,69,47],"h1",{"id":70},"rate-limits",[72,73,74],"lead",{},[75,76,77],"p",{},"Each API key can make a set number of requests in any 5-minute window, depending on your plan. v1 and v2 requests count toward the same limit.",[79,80,81,97],"table",{},[82,83,84],"thead",{},[85,86,87,91,94],"tr",{},[88,89,90],"th",{},"Plan",[88,92,93],{},"Requests per 5 minutes",[88,95,96],{},"About per minute",[98,99,100,112,123,134],"tbody",{},[85,101,102,106,109],{},[103,104,105],"td",{},"Developer",[103,107,108],{},"100",[103,110,111],{},"20",[85,113,114,117,120],{},[103,115,116],{},"Starter",[103,118,119],{},"1,500",[103,121,122],{},"300",[85,124,125,128,131],{},[103,126,127],{},"Growth",[103,129,130],{},"3,000",[103,132,133],{},"600",[85,135,136,139,142],{},[103,137,138],{},"Scale",[103,140,141],{},"5,000",[103,143,144],{},"1,000",[75,146,147],{},"Every response to a request with a valid key includes headers that show your current usage:",[79,149,150,160],{},[82,151,152],{},[85,153,154,157],{},[88,155,156],{},"Header",[88,158,159],{},"Description",[98,161,162,173,183],{},[85,163,164,170],{},[103,165,166],{},[167,168,169],"code",{},"RateLimit-Limit",[103,171,172],{},"The number of requests allowed in the window",[85,174,175,180],{},[103,176,177],{},[167,178,179],{},"RateLimit-Remaining",[103,181,182],{},"The number of requests remaining in the window",[85,184,185,190],{},[103,186,187],{},[167,188,189],{},"RateLimit-Reset",[103,191,192],{},"Seconds until the window resets",[75,194,195,196,199,200,203,204,207],{},"For older clients, ",[167,197,198],{},"X-RateLimit-Limit"," and ",[167,201,202],{},"X-RateLimit-Remaining"," contain the same values, and ",[167,205,206],{},"X-RateLimit-Reset"," contains the time of the reset as a Unix timestamp.",[209,210,52],"h2",{"id":51},[75,212,213,214,217,218,225,226,229],{},"When you exceed the limit, the API responds with ",[167,215,216],{},"429 Too Many Requests",", the error code ",[219,220,222],"a",{"href":221},"\u002Ferrors\u002FRATE_LIMIT_EXCEEDED",[167,223,224],{},"RATE_LIMIT_EXCEEDED",", and a ",[167,227,228],{},"Retry-After"," header that contains the number of seconds until the window resets. Wait that long before you send more requests. The SDK waits and retries for you automatically.",[209,231,55],{"id":54},[75,233,234,235,241,242,244],{},"Google, Microsoft, and Zoom limit how often you can make requests for a single account, regardless of your Pyas plan. When a provider rate-limits a request, the API responds with ",[219,236,238],{"href":237},"\u002Ferrors\u002FPROVIDER_RATE_LIMITED",[167,239,240],{},"PROVIDER_RATE_LIMITED"," and a ",[167,243,228],{}," header. The limit applies only to that account, and requests for your other accounts aren't affected.",[209,246,58],{"id":57},[248,249,250,259,267,273],"ul",{},[251,252,253,254,258],"li",{},"Use ",[219,255,257],{"href":256},"\u002Fwebhooks","webhooks"," to get notified when something changes, so you don't need to poll for changes.",[251,260,261,262,266],{},"Use a ",[219,263,265],{"href":264},"\u002Fevents#keeping-a-copy-in-sync","sync token"," to get only what changed since your last read.",[251,268,253,269,272],{},[167,270,271],{},"fields=id,title,startsAt"," to get only the fields you need.",[251,274,275,276,279,280,283],{},"Read several accounts in one request with ",[167,277,278],{},"accountIds"," or ",[167,281,282],{},"subjectId",". This counts as one request, not one per account.",[209,285,61],{"id":60},[75,287,288,289,295],{},"Requests made with a live key also count toward your plan's monthly quota. When you exceed it, the API responds with ",[219,290,292],{"href":291},"\u002Ferrors\u002FRATE_MONTHLY_QUOTA_EXCEEDED",[167,293,294],{},"RATE_MONTHLY_QUOTA_EXCEEDED"," until the next month starts or your plan changes. Requests made with a test key have a separate monthly quota.",[75,297,298,299,303],{},"The ",[300,301,302],"strong",{},"Billing"," page in the dashboard shows your requests so far this month. To get your requests by day, call:",[305,306,311],"pre",{"className":307,"code":308,"language":309,"meta":310,"style":310},"language-http shiki shiki-themes css-variables","GET \u002Fv2\u002Fusage\n","http","",[167,312,313],{"__ignoreMap":310},[314,315,318,322],"span",{"class":316,"line":317},"line",1,[314,319,321],{"class":320},"sag7P","GET",[314,323,325],{"class":324},"sqSWz"," \u002Fv2\u002Fusage\n",[327,328,329],"style",{},"html pre.shiki code .sag7P, html code.shiki .sag7P{--shiki-default:var(--shiki-token-keyword)}html pre.shiki code .sqSWz, html code.shiki .sqSWz{--shiki-default:var(--shiki-foreground)}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":310,"searchDepth":331,"depth":331,"links":332},3,[333,335,336,337],{"id":51,"depth":334,"text":52},2,{"id":54,"depth":334,"text":55},{"id":57,"depth":334,"text":58},{"id":60,"depth":334,"text":61},"md",false,{},true,"\u002Frate-limits","---\ntitle: Rate limits\ndescription: Request limits per 5-minute window for each plan, the response headers that show your current usage, and how to handle the limit.\n---\n\n# Rate limits\n\n::lead\nEach API key can make a set number of requests in any 5-minute window, depending on your plan. v1 and v2 requests count toward the same limit.\n::\n\n| Plan | Requests per 5 minutes | About per minute |\n|---|---|---|\n| Developer | 100 | 20 |\n| Starter | 1,500 | 300 |\n| Growth | 3,000 | 600 |\n| Scale | 5,000 | 1,000 |\n\nEvery response to a request with a valid key includes headers that show your current usage:\n\n| Header | Description |\n|---|---|\n| `RateLimit-Limit` | The number of requests allowed in the window |\n| `RateLimit-Remaining` | The number of requests remaining in the window |\n| `RateLimit-Reset` | Seconds until the window resets |\n\nFor older clients, `X-RateLimit-Limit` and `X-RateLimit-Remaining` contain the same values, and `X-RateLimit-Reset` contains the time of the reset as a Unix timestamp.\n\n## When you exceed the limit\n\nWhen you exceed the limit, the API responds with `429 Too Many Requests`, the error code [`RATE_LIMIT_EXCEEDED`](\u002Ferrors\u002FRATE_LIMIT_EXCEEDED), and a `Retry-After` header that contains the number of seconds until the window resets. Wait that long before you send more requests. The SDK waits and retries for you automatically.\n\n## Provider limits\n\nGoogle, Microsoft, and Zoom limit how often you can make requests for a single account, regardless of your Pyas plan. When a provider rate-limits a request, the API responds with [`PROVIDER_RATE_LIMITED`](\u002Ferrors\u002FPROVIDER_RATE_LIMITED) and a `Retry-After` header. The limit applies only to that account, and requests for your other accounts aren't affected.\n\n## Make fewer requests\n\n- Use [webhooks](\u002Fwebhooks) to get notified when something changes, so you don't need to poll for changes.\n- Use a [sync token](\u002Fevents#keeping-a-copy-in-sync) to get only what changed since your last read.\n- Use `fields=id,title,startsAt` to get only the fields you need.\n- Read several accounts in one request with `accountIds` or `subjectId`. This counts as one request, not one per account.\n\n## Monthly requests\n\nRequests made with a live key also count toward your plan's monthly quota. When you exceed it, the API responds with [`RATE_MONTHLY_QUOTA_EXCEEDED`](\u002Ferrors\u002FRATE_MONTHLY_QUOTA_EXCEEDED) until the next month starts or your plan changes. Requests made with a test key have a separate monthly quota.\n\nThe **Billing** page in the dashboard shows your requests so far this month. To get your requests by day, call:\n\n```http\nGET \u002Fv2\u002Fusage\n```\n",null,{"title":47,"description":48},"OJq4HRKIxseWlMfVDYJebvjO2yKcWX3qLEnSasYwLAU",1794697271429]