specification: API Commons Rate Limits specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/RateLimits provider: AutoGPT providerId: autogpt created: '2026-05-04' modified: '2026-08-29' generated: '2026-08-29' method: probed source: >- Live responses from https://backend.agpt.co observed 2026-08-29, plus the 429 and 503 response descriptions declared in openapi/autogpt-agent-server-openapi.json. Docs searched: https://agpt.co/docs/llms.txt (250 pages) has no rate-limit page. tags: - AI Agents - AI Automation - Rate Limiting - Quotas - Throttling description: >- AutoGPT publishes NO rate limits. This file replaces a 2026-05-04 scaffold whose free/professional/enterprise tiers and 10/100/1000 rpm numbers were invented by a bulk sweep and never existed. What AutoGPT actually meters is automation CREDITS, not requests: exhausting them returns 402 Payment Required, not 429. Three chat operations do declare a 429, and the spec's own prose names the three limiters behind it, but no number, window or reset is published anywhere and no rate-limit header is returned on any response. limit_count: 0 limits: [] headers: limit: null remaining: null reset: null retryAfter: Retry-After policy: null headers_note: >- No X-RateLimit-* or RateLimit-* header was returned on any live response observed 2026-08-29 (200, 401 and 422 all checked), and none is declared in either published OpenAPI. Retry-After is listed above because the spec's 503 descriptions instruct clients to honour it — but it is not declared as a response header component, so a client must probe for it. responseCodes: throttled: 429 quotaExceeded: 402 serviceUnavailable: 503 primary_meter: unit: automation credits model: >- Credits are charged when blocks run. Fixed for some blocks, usage-based for others (tokens, provider cost, elapsed time, data size, item count). For usage-based blocks the platform may estimate a charge before execution and reconcile afterwards, which can drive the balance below zero. exhaustion_behaviour: >- Paid blocks cannot start. Scheduled tasks may fail for insufficient balance. HTTP 402 with "Payment required: NO_TIER paywall, or insufficient credit balance". docs: https://agpt.co/docs/platform/using-the-platform/credits-and-billing.md declared_429_operations: - operation: POST /api/chat/sessions/{session_id}/stream spec_text: >- "Cost rate-limit, call-frequency cap, or per-user concurrent-turn limit exceeded" limiters: - cost rate-limit - call-frequency cap - per-user concurrent-turn limit values_published: false - operation: POST /api/chat/sessions/{session_id}/messages/pending spec_text: '"Call-frequency cap exceeded"' limiters: - call-frequency cap values_published: false - operation: POST /api/chat/usage/reset spec_text: '"Too Many Requests (max daily resets exceeded or reset in progress)"' limiters: - max daily resets values_published: false degraded_dependency_signal: status: 503 spec_text: >- "Chat service degraded (Redis unavailable for rate limit or stream registry); client should honour the Retry-After header before retrying." note: >- The rate limiter is backed by Redis. When Redis is unavailable the API fails open to 503 rather than throttling, and Retry-After is the recovery signal. non_rate_limits_expressed_as_409: note: >- Several caps are enforced as 409 Conflict rather than 429 — per-user skill limit, active-expert limit, pod limit. A client watching only for 429 will misread these as name collisions. operations: - POST /api/skills — "Per-user skill limit reached" - POST /api/experts — "Active expert limit reached" - POST /api/experts/pods — "Duplicate pod name, or the pod limit is reached" probes: - url: https://backend.agpt.co/api/store/agents?page=1&page_size=1 status: 200 rate_limit_headers: none - url: https://backend.agpt.co/api/api-keys status: 401 rate_limit_headers: none - url: https://backend.agpt.co/api/store/agents?page=abc status: 422 rate_limit_headers: none - url: https://agpt.co/docs/llms.txt status: 200 note: Full 250-entry docs index; contains no rate-limit or quota page. policies: - name: Retry-After on degraded dependency description: >- The chat surface instructs clients to honour Retry-After before retrying a 503. This is the only retry guidance AutoGPT publishes. recommendation: >- Publish the numeric call-frequency cap and concurrent-turn limit, and emit RateLimit-Limit / RateLimit-Remaining / RateLimit-Reset. An agent runner that cannot see its remaining budget must discover the ceiling by hitting it. maintainers: - FN: Kin Lane email: kin@apievangelist.com