S3 API Compatibility
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
- CopyObject
- DeleteObject
- DeleteObjects
- Conditional delete is not supported:
DeleteObjectignores the HTTPIf-Matchheader andDeleteObjectsignores each<Object><ETag>element; both delete unconditionally (#10).
- Conditional delete is not supported:
- DeleteObjectTagging
- GetObject
- GetObjectAttributes
- GetObjectTagging
- HeadObject
- ListObjects
- ListObjectsV2
- ListObjectVersions
- PutObject
- PutObjectTagging
- RestoreObject
- SelectObjectContent
Object Locking
- GetObjectRetention
- PutObjectRetention
- GetObjectLegalHold
- PutObjectLegalHold
- GetObjectLockConfiguration
- PutObjectLockConfiguration
Unsupported API Object Endpoints
Multipart Uploads
- AbortMultipartUpload
- CompleteMultipartUpload
- CreateMultipartUpload
- ListMultipartUploads
- ListParts
- UploadPart
- UploadPartCopy
Differences from S3 APIs for Multipart Uploads
ListMultipartUploadscurrently treats a non-emptyprefixas an exact object name instead of a lexical key prefix.- With an empty prefix, its result comes from node-local volatile state and does not provide AWS-compatible pagination, marker, or delimiter behavior. See the issue #79 design and decision record for the verified impact and proposed repair.
- The
AbortIncompleteMultipartUploadlifecycle action is not supported withPutBucketLifecycle.
Bucket APIs
- CreateBucket
- DeleteBucket
- DeleteBucketEncryption
- DeleteBucketTagging
- GetBucketEncryption
- GetBucketLocation
- GetBucketTagging
- GetBucketVersioning
- HeadBucket
- ListBuckets
- ListDirectoryBuckets
- PutBucketEncryption
- PutBucketTagging
- PutBucketVersioning
Bucket Replication
Bucket Lifecycle
- GetBucketLifecycle
- GetBucketLifecycleConfiguration
- PutBucketLifecycle
- PutBucketLifecycleConfiguration
- DeleteBucketLifecycle
Bucket Notifications
- GetBucketNotification
- GetBucketNotificationConfiguration
- PutBucketNotification
- PutBucketNotificationConfiguration
Bucket Policies
- GetBucketPolicy
- GetBucketPolicyStatus
- PutBucketPolicy
- DeleteBucketPolicy
- GetBucketCors
- PutBucketCors
- DeleteBucketCors
Unsupported API Bucket Operations
MinIO alternatives for unsupported Bucket resources
- For calls to
BucketACLorObjectACLoperations, use Policies. BucketCORSoperations are supported sinceRELEASE.2026-09-03T13-18-01Z. A bucket with its own CORS configuration is served only by that configuration; buckets without one use the server-wideMINIO_API_CORS_ALLOW_ORIGINpolicy, which allows every origin by default.- For calls to
BucketWebsiteoperations, usecaddyornginx. - For calls to
BucketAnalytics,BucketMetrics, orBucketLoggingoperations, use Bucket Notifications.