# Koskamo rate limits and errors
Public retrieve: 30 requests per minute per IP. MCP: 40 messages per minute per IP. HTTP 429 includes Retry-After; wait that many seconds, then retry with a bound. A 429 is not an empty successful search.
Write limits (Cloudflare ingress required in production): API keys 3 per hour per IP; dataset writes 10 per minute; document writes 10 per minute; revision proposals 20 per minute.
query on retrieve must be 1–2000 characters. top_k is an integer from 1 to 12. GET /api/mcp returns 405; use POST. Accepted MCP notifications return 202 with an empty body.
Production write routes refuse requests that do not arrive through Cloudflare (missing cf-connecting-ip and cf-ray). Public reads still work. Key minting in production therefore cannot be done by hitting the origin directly.