Skip to content

S3 API Compatibility

SILO 20261026 contract: This page retains the inherited S3 API catalog. The target is the 20261026 release. Apply the documented limits and error behavior for ordinary LIST, Object Lock and multipart listing. Checksum message text can change; see the checksum contract.

This page documents S3 APIs supported by MinIO Object Storage. For reference documentation on any given API, see the corresponding documentation for Amazon S3.

Warning

Important

MinIO strongly recommends using an S3-Compatible SDK for performing object storage operations.

Object APIs

Write commit errors

PR #232, included in the Server 20261018 candidate, returns HTTP 503 SlowDownWrite when staged xl.meta disappears at the final commit of PUT or multipart completion. Earlier code could report 400 IncompleteBody for PUT or 404 NoSuchKey for completion. Actual incomplete client uploads retain their existing error handling. This classification allows SDK retries; it does not restore lost staging data. See the source and release boundary.

Object Locking

Unsupported API Object Endpoints

GetObjectAcl
PutObjectAcl

Multipart Uploads

Differences from S3 APIs for Multipart Uploads

  • Published Server 20260903 treats a non-empty ListMultipartUploads prefix as an exact object name. An empty prefix uses node-local volatile state without complete pagination, marker or delimiter semantics.
  • Server 20260916 adds persistent scanning as an opt-in strict mode while retaining legacy exact-key/cache behavior by default. Its historical upgrade contract still applies to those binaries.
  • Server 20261018: withdraw default persistent scanning and restore node-local cache listing for an empty prefix and exact-key lookup otherwise. Restart omissions, true-prefix and cache-pagination defects remain. Ignore the retired mode switch with a warning and tolerate its obsolete shared key; existing strict users lose optional durable listing and strict cancellation. Diagnostic scans retain resource limits without gating public operations. Preserve identity fields, safety checks, default best-effort Abort and cleanup repairs. See the decision, capacity and limits.
  • The AbortIncompleteMultipartUpload lifecycle action is not supported with PutBucketLifecycle.

Bucket APIs

Bucket Replication

Bucket Lifecycle

Bucket Notifications

Bucket Policies

Unsupported API Bucket Operations

GetBucketInventoryConfiguration
PutBucketInventoryConfiguration
DeleteBucketInventoryConfiguration
GetBucketMetricsConfiguration
PutBucketMetricsConfiguration
DeleteBucketMetricsConfiguration
PutBucketWebsite
GetBucketLogging
PutBucketLogging
PutBucketAccelerateConfiguration
DeleteBucketAccelerateConfiguration
PutBucketRequestPayment
DeleteBucketRequestPayment
PutBucketAcl
HeadBucketAcl
GetPublicAccessBlock
PutPublicAccessBlock
DeletePublicAccessBlock
GetBucketOwnershipControls
PutBucketOwnershipControls
DeleteBucketOwnershipControls
GetBucketIntelligentTieringConfiguration
PutBucketIntelligentTieringConfiguration
ListBucketIntelligentTieringConfigurations
DeleteBucketIntelligentTieringConfiguration
GetBucketAnalyticsConfiguration
PutBucketAnalyticsConfiguration
ListBucketAnalyticsConfigurations
DeleteBucketAnalyticsConfiguration
CreateSession

MinIO alternatives for unsupported Bucket resources

  • For calls to BucketACL or ObjectACL operations, use Policies.
  • BucketCORS operations are supported since RELEASE.2026-09-03T13-18-01Z. A bucket with its own CORS configuration is served only by that configuration; buckets without one use the server-wide MINIO_API_CORS_ALLOW_ORIGIN policy, which allows every origin by default.
  • For calls to BucketWebsite operations, use caddy or nginx.
  • For calls to BucketAnalytics, BucketMetrics, or BucketLogging operations, use Bucket Notifications.