Rate limits and size caps

Limits are fixed per organisation or per IP address. Hitting one returns HTTP 429 (or, inside an MCP tool result, an error the agent should show you). Waiting for the window to pass is the fix; there is no override.

Requests

WhatLimitScope
New approval requests (request_grant, http_request needing an approval, POST /api/grants/request) plus new collect requests (need_item)30 per hour, combinedOrganisation
Email code sends (POST /api/auth/otp/send)5 per email per 15 minutesEmail address
Wrong email codes5, then the code is void and a new one must be sentChallenge
Wrong approval codes (POST /api/grants/approve-by-code)5 per approval request, kept when the agent asks again and the code changes; approve from the Inbox instead. 20 attempts per 15 minutes across the organisationApproval, then organisation
OAuth dynamic client registration (POST /oauth/register)20 per hourIP address
Device sign-in code attempts (POST /device)10 per 15 minutesIP address, and the browser session
OAuth client metadata document fetches (an https client_id)30 per hour per document host, 10 per hour per requesting IP, 4 in flight at onceHost, IP address, server
Approval code reuseA code works once. Reuse is 409, expired is 410Code

Lifetimes

WhatLifetime
Email code10 minutes
prompt approvalUntil one successful API call
session approval8 hours
item_standing, folder_standingUntil revoked
OAuth access token600 seconds (30 seconds of clock skew allowed). Refresh tokens rotate on use; revoking one, or replaying a rotated one, ends every access token issued with it
Operator sessionUntil sign-out or revoke from the Access panel

Sizes and timeouts

WhatCap
JSON request body on any route128 KiB (413 above)
Credential name128 characters, [A-Z][A-Z0-9_]{0,127}
task_description shown in the Inbox500 characters (longer text is truncated)
Origin response returned to the agent256 KiB
Origin call timeout10 seconds
OAuth client metadata document fetch1 MiB, 3 seconds
Access ledger read (GET /api/access/events)200 newest rows

What an agent should do on 429

Tell the operator and stop retrying for the hour. Repeated request_grant calls for the same credential do not help; one pending approval is enough and the operator can approve it from the Inbox at any time.