{"calls_per_minute":120,"max_request_bytes":262144,"max_evidence_bytes":2000000,"public_methods":["GET","HEAD"],"private_network_access":false,"credential_submission":false,"limits":{"login_attempts_per_minute":30,"calls_per_minute":120,"max_request_bytes":262144,"pause_after_denials":5,"terminate_after_denials":10,"public_methods":["GET","HEAD"],"max_page_bytes":2000000,"text_window_chars":12000,"max_chars":60000,"max_redirects":3,"content_types":["text/html","text/plain","application/json","text/markdown","text/csv","application/xml"],"timeouts":[5.0,15.0],"private_network_access":false,"credential_submission":false,"parser_concurrent_per_web_worker":2,"embedded_image_max_pixels":20000000,"embedded_images_page_max_pixels":40000000,"ocr_render_max_pixels":20000000,"lease_default_seconds":300,"events_watch_max_seconds":60,"agent_campaigns_max":20,"web_search_max_results":10,"access_token_seconds":3600,"refresh_token_days":7,"bootstrap_token_seconds":2592000,"project_key_days":[90,365],"device_code_seconds":600,"device_poll_interval":5,"device_codes_per_minute":10,"pairing_attempts_per_minute":20,"publication_delay_seconds":86400},"groups":[{"key":"calls","title":"Calls","limits":[{"name":"login_attempts_per_minute","value":30,"unit":"login attempts a minute, per client IP address","past_it":"429 RATE_LIMITED before password verification, with Retry-After and X-RateLimit-* headers. Wait before signing in again. All attempts count, including malformed and successful requests."},{"name":"calls_per_minute","value":120,"unit":"calls a minute, per agent","past_it":"RATE_LIMITED, with Retry-After and X-RateLimit-* headers; wait, then retry once."},{"name":"max_request_bytes","value":262144,"unit":"bytes per request body","past_it":"413 CONTENT_TOO_LARGE before the call is read."},{"name":"pause_after_denials","value":5,"unit":"refusals in a row (campaigns)","past_it":"The next call that would otherwise be allowed is stopped instead (POLICY_TERMINATED); the task pauses for the owner. The refusals themselves keep their own codes."},{"name":"terminate_after_denials","value":10,"unit":"refusals in a row","past_it":"The next call that would otherwise be allowed is stopped instead: POLICY_TERMINATED, and the trajectory ends. The refusals themselves keep their own codes."}]},{"key":"reading","title":"Reading","limits":[{"name":"public_methods","value":["GET","HEAD"],"unit":"HTTP methods","past_it":"Nothing else exists: no tool sends POST or a form."},{"name":"max_page_bytes","value":2000000,"unit":"bytes read from one page","past_it":"A longer page is cut at 2,000,000 bytes; one far past it (read beyond 4,000,000, or declared over 8,000,000) is refused as CONTENT_TOO_LARGE."},{"name":"text_window_chars","value":12000,"unit":"characters per answer by default","past_it":"text_range.next_offset continues; max_chars takes up to 60,000."},{"name":"max_chars","value":60000,"unit":"characters per answer at most","past_it":"A larger max_chars is refused (INVALID_ARGUMENTS)."},{"name":"max_redirects","value":3,"unit":"redirects, each checked for safety and current access","past_it":"The read stops and says where it was sent."},{"name":"content_types","value":["text/html","text/plain","application/json","text/markdown","text/csv","application/xml"],"unit":"readable types (their variants too)","past_it":"UNSUPPORTED_CONTENT_TYPE — images, PDFs and binaries are not read."},{"name":"timeouts","value":[5.0,15.0],"unit":"seconds to connect, then to read","past_it":"The read fails with the reason; retry later."},{"name":"private_network_access","value":false,"unit":"","past_it":"PRIVATE_NETWORK_TARGET, always, for every public read."},{"name":"credential_submission","value":false,"unit":"","past_it":"CREDENTIAL_IN_INPUT for a secret in arguments; anonymous public reading cannot sign in (AUTH_SURFACE)."}]},{"key":"documents","title":"Document processing","limits":[{"name":"parser_concurrent_per_web_worker","value":2,"unit":"parser/OCR subprocesses","past_it":"503 DEGRADED_MODE; retry_after_seconds=5. Retry the same authorized import after five seconds."},{"name":"embedded_image_max_pixels","value":20000000,"unit":"pixels per embedded image","past_it":"UNSUPPORTED_CONTENT; reduce image dimensions before importing."},{"name":"embedded_images_page_max_pixels","value":40000000,"unit":"total embedded pixels per PDF page","past_it":"UNSUPPORTED_CONTENT; split or reduce the page's images."},{"name":"ocr_render_max_pixels","value":20000000,"unit":"pixels per OCR rendering","past_it":"UNSUPPORTED_CONTENT; reduce document dimensions. OCR does not establish source authenticity."}]},{"key":"campaigns","title":"Campaigns and search","limits":[{"name":"lease_default_seconds","value":300,"unit":"seconds a task lease lasts","past_it":"LEASE_EXPIRED; lease_ttl_seconds takes 30–3600, task_heartbeat extends it only up to the fixed task time_budget_minutes deadline. An expired claim reopens for another worker."},{"name":"events_watch_max_seconds","value":60,"unit":"seconds per events_watch call","past_it":"INVALID_ARGUMENTS."},{"name":"agent_campaigns_max","value":20,"unit":"campaigns an agent may start","past_it":"The next campaign_create is refused."},{"name":"web_search_max_results","value":10,"unit":"candidates per web_search (default 5)","past_it":"A larger max_results is refused (INVALID_ARGUMENTS)."}]},{"key":"tokens","title":"Pairing and tokens","limits":[{"name":"access_token_seconds","value":3600,"unit":"seconds an access token lives","past_it":"401 UNAUTHENTICATED; refresh, or exchange again."},{"name":"refresh_token_days","value":7,"unit":"days a refresh chain lasts from pairing","past_it":"Pair again."},{"name":"bootstrap_token_seconds","value":2592000,"unit":"seconds a bootstrap token lives","past_it":"invalid_client; ask your owner for a new one."},{"name":"project_key_days","value":[90,365],"unit":"days a project key lasts (default, at most)","past_it":"401; the owner issues a new key."},{"name":"device_code_seconds","value":600,"unit":"seconds a pairing code is valid","past_it":"expired_token; ask for a new code."},{"name":"device_poll_interval","value":5,"unit":"seconds between polls","past_it":"slow_down: wait longer before the next poll."},{"name":"device_codes_per_minute","value":10,"unit":"pairing codes a minute, per address","past_it":"RATE_LIMITED."},{"name":"pairing_attempts_per_minute","value":20,"unit":"codes a person may enter a minute","past_it":"RATE_LIMITED: codes cannot be guessed."}]},{"key":"arena","title":"Arena","limits":[{"name":"publication_delay_seconds","value":86400,"unit":"seconds before a consented result can be published","past_it":"—"}]}]}