S3 API
The HTTP-based API for object storage operations — PUT, GET, DELETE, LIST, multipart upload. The de-facto standard for object storage interoperability.
Summary
The HTTP-based API for object storage operations — PUT, GET, DELETE, LIST, multipart upload. The de-facto standard for object storage interoperability.
The S3 API is the protocol layer that makes the entire ecosystem possible. Every object storage server (MinIO, Ceph, Ozone), every compute engine (Spark, DuckDB, Trino), and every table format operates against this API.
- The S3 API is not formally standardized by any standards body. It is a de-facto standard defined by AWS's implementation. Compatibility varies across providers.
- LIST is paginated at 1,000 objects per request with no server-side filtering beyond prefix. This is a fundamental performance constraint, not a configuration issue.
enablesLakehouse Architecture, Separation of Storage and Compute — the interface that makes decoupled architectures possiblesolvesVendor Lock-In — as a de-facto interoperability standard across providers- AWS S3, MinIO, Ceph, Apache Ozone
implementsS3 API — concrete implementations scoped_toS3
Note: Pain points Object Listing Performance, Lack of Atomic Rename, and S3 Consistency Model Variance reference S3 API as their origin in their definitions, but no formal edges connect S3 API to those pain points.
Definition
The HTTP-based API for object storage operations — PUT, GET, DELETE, LIST, multipart upload, and related operations on buckets and objects. The de-facto standard for object storage interoperability.
Amazon defined this API for AWS S3. Because of S3's dominance, the API became the common interface that all other object storage systems implement, enabling a portable ecosystem of tools and libraries.
Object CRUD operations, multipart uploads for large files, bucket-level access control, presigned URLs for temporary access.
Recent developments
- Amazon S3 Vectors — GA since December 2025. AWS folded native vector storage and similarity search into the S3 API itself rather than spinning up a separate service — a single bucket can now hold both raw objects and vector indexes that you query through familiar S3-style verbs. Marketed framing: up to 90% cost reduction vs running a dedicated vector database, with capacity targets of 2 billion vectors per index, and first-party integration into Amazon Bedrock Knowledge Bases for RAG pipelines. Strategic implication: AWS is signaling that the S3 API plane is going to absorb AI-shaped primitives directly rather than ceding that surface to specialized vector DBs — competitors (R2, B2, MinIO) will need to decide whether to mirror this or differentiate.
- NetApp StorageGRID — significant S3 REST surface extensions. Enterprise on-prem object storage vendor NetApp is keeping pace with AWS API drift more aggressively than most: recent releases added CORS support for the management interface (enables web admin panels without a server-side proxy), STS AssumeRole + session policy (federated auth flows that match AWS IAM patterns), SHA-256 checksum pre-calculation (matches the AWS default-integrity migration described below), and tenant-level retention controls (per-tenant compliance hold without bucket multiplication). For organizations evaluating "can we run an on-prem stack that doesn't drift away from AWS feature parity over time," StorageGRID is a useful reference point.
- Cloudflare R2 compatibility matrix — still gaps in object tagging. Cloudflare publishes a transparent S3 compatibility status page that's worth watching to see where the popular zero-egress S3-compat alternatives are catching up. As of 2026 the visible miss is the object tagging API trio:
GetObjectTagging,PutObjectTagging,DeleteObjectTagging— all still unimplemented. For workloads that rely on tags for lifecycle policies, IAM conditions, or cost allocation, this is a real gap; for workloads that don't use tags at all, R2 is essentially feature-complete on the read/write/list surface. - AWS quietly relaxed Content-MD5 on
delete-objects. Part of the default-integrity migration AWS has been rolling out across S3 endpoints — clients no longer need to send aContent-MD5header on the bulk-delete API. SDKs are catching up to the relaxed requirement; older SDK versions still send the header (harmlessly) and newer versions skip it. Operationally: this is a tiny detail but it affects any custom signed-request code that hand-builds thedelete-objectspayload — those code paths can drop the MD5 calculation step now. - zerofs 1.0.2 — OSS S3-compatibility edge. zerofs (an open-source S3-compatible front-end for object stores) added conditional put operations via Redis, broadening compatibility for use cases where consistency guarantees matter (e.g., fronting an eventually-consistent object store with stronger-than-default ordering semantics for specific workloads). Why this matters: it's a signal that the OSS ecosystem is filling in the consistency-pattern gaps that early S3-compat layers ignored, making more workloads viable on non-AWS substrates.
Connections 78
Outbound 4
Inbound 74
implements43depends_on28bypasses1enables1alternative_to1Resources 3
The authoritative AWS reference for every S3 REST API operation, request/response format, error code, and authentication mechanism.
The AWS S3 User Guide provides conceptual explanations, best practices, and usage patterns that complement the raw API reference.
Documents the Signature Version 4 authentication scheme that all S3-compatible implementations must support, making it a de facto protocol spec.