# Rate and size limits

HTTP 429 refuses admission because of request rate, concurrency or credits. Inspect the body, account balance and `Retry-After` when present. Back off with jitter and reduce concurrent reads. Never automatically replay payments, confirmed ask actions or webhook registration.

| Interface | Limit |
| --- | --- |
| ask | 6/min/account; 2 concurrent/process |
| MCP | 600/min/account/process; 30/min anonymous/process |
| watch | 30/min/account; includes invalid requests |
| watch body | 256 KiB; 100 items; 1024 vertices total |
| ask body | ask-v1: 16 KiB; ask-v2: 1 MiB |
| ask results | 40; 512 000 bytes |
| ask artifact | 192 000 bytes/artifact; 480 000 bytes/turn |
| ask messages | 64 000 bytes; last 20 in planner |
| ask continuation | 3600 s |
| Ask request budget | 120 s; LANDFEED_ASK_REQUEST_SECONDS |
| SSE keepalive | 10 s; : keepalive |
| SSE backpressure | 5 s |
| MCP body | 64 KiB |
| billing body | 64 KiB |
| /.well-known/oauth-authorization-server | 600/min/process; 16 KiB |
| /register | 30/min/process; 16 KiB |
| /authorize | 120/min/process; 16 KiB |
| /oauth/consent | 120/min/process; 16 KiB |
| /token | 300/min/process; 16 KiB |
| /revoke | 300/min/process; 16 KiB |
| Stripe webhook | 600/min/process; 64 KiB |
| checkout / checkout_reconcile / team_invite | 10/min/pool/operation |


Process-local limits are not global throughput guarantees. Shared credit balances and watch-item entitlements can refuse work earlier. There is no single declared requests-per-second promise for all REST reads. The local stdio MCP bridge caps decoded bodies at 16 MiB and total HTTP time at 30 seconds; timeout leaves billing unknown.

Search has its own area/cursor/filter bounds. Read the operation schema rather than treating the batch limit as a search limit. The [schema reference](../../schemas.md) and operation availability distinguish definitions from executable runtime features. Operations marked `x-runtime-supported: false` remain unavailable even though their schemas exist.

After an interrupted response, retain the request id and reconcile billing before replay. The [errors catalogue](../../errors.md) gives code-specific recovery actions.
