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: Amazon S3 providerId: amazon-s3 created: '2026-05-04' # Provenance stamped 2026-08-11: this artifact was written by the API Evangelist # bulk sweep dated 2026-05-04, not harvested from the provider. See roadmap#35. method: generated modified: '2026-05-05' reconciled: true tags: - Rate Limiting - AWS - Object Storage - S3 description: Amazon S3 enforces request limits at the partitioned-prefix level inside a bucket - 3,500 PUT/COPY/POST/DELETE per second and 5,500 GET/HEAD per second per prefix - and scales nearly linearly by sharding across prefixes. Bucket-level operations (CreateBucket, DeleteBucket, etc.) follow the AWS API throttling envelope. Use exponential backoff with jitter on SlowDown (503) responses. sources: - https://docs.aws.amazon.com/AmazonS3/latest/userguide/optimizing-performance.html - https://docs.aws.amazon.com/AmazonS3/latest/userguide/troubleshooting.html - https://docs.aws.amazon.com/general/latest/gr/api-retries.html headers: requestId: x-amz-request-id retryAfter: Retry-After responseCodes: throttled: 503 quotaExceeded: 429 serviceUnavailable: 503 limits: - name: PUT/COPY/POST/DELETE per prefix scope: bucket-prefix metric: requests_per_second limit: 3500 timeFrame: second notes: Per partitioned prefix; shard across prefixes to scale linearly. - name: GET/HEAD per prefix scope: bucket-prefix metric: requests_per_second limit: 5500 timeFrame: second notes: Per partitioned prefix. - name: Bucket count per account scope: account metric: count limit: 10000 notes: Soft limit; raisable via Service Quotas (default ranges 100 to 10,000). - name: S3 Express One Zone directory bucket scope: bucket metric: requests_per_second limit: see S3 Express One Zone docs notes: Higher per-bucket limits (millions of requests/second) on Express One Zone. policies: - name: Backoff on SlowDown description: SlowDown (HTTP 503) responses indicate prefix-level throttling. Retry with exponential backoff and jitter; AWS SDKs default to standard retry mode. - name: Prefix sharding description: For very high throughput, distribute keys across prefixes (e.g. random hash prefixes) to multiply throughput. - name: Multipart upload description: For files larger than 100 MB, use multipart upload (parallel parts) to reduce wall-clock time and benefit from prefix-level concurrency. - name: Quota increases description: Bucket-count, multipart upload, and bucket policy limits are soft and raisable via Service Quotas. maintainers: - name: Kin Lane email: kin@apievangelist.com url: https://apievangelist.com - name: Amazon Web Services email: support@aws.amazon.com url: https://aws.amazon.com