Amazon Simple Storage Service logo

Amazon Simple Storage Service

Amazon Simple Storage Service

UpFreeOpen Sourcecloudby Amazon Web Services62· JavaScript· MIT

Amazon S3 is AWS object storage — massive, durable file storage with global access, the de facto standard for internet applications.

Visit site ↗Source ↗Health checked 9h ago
Use it when

11 nines of durability — data essentially never lost

Watch for

Egress traffic fees are a frequent hidden cost

First check

Create an IAM user/role in the AWS Console or CLI to get an access key and secret. In almost all cases the AWS SDK handles SigV4 signing for you. Typical calls: S3.putObject, getObject, createPresignedUrl.

Auth
api_key
CORS
No
HTTPS
Yes
Signup
Required
Latency
10 ms
Protocol
REST
Pricing
paid
Stars
62

Uptime · 30-day window

Probes: 1Uptime: 100%Avg latency: 10ms

GitHub activity

62JavaScriptMIT17 open issuesLast commit 110d ago
01

About this API

Amazon S3, launched in 2006, is one of the oldest and most stable AWS services. "Object storage" means data is read and written as whole objects — there is no partial-write API like a filesystem. Upload a 100 MB video and it is one object; to update you reupload the whole thing. This design is what lets S3 scale comfortably to exabytes.

The core concepts are buckets and objects. A bucket is a globally unique container in a specific region, and an object is a file inside it addressed by a key (like photos/2024/avatar.png). There are no real folders — the slash separator is a naming convention. A common pattern is pre-signed URLs, which let browsers or clients upload and download directly, bypassing your server to save bandwidth and cost.

Pricing is easy to underestimate. Storage itself is cheap per GB/month, but request counts (GET/PUT/LIST at roughly a few cents per thousand) and egress (~$0.09/GB) drive the bill. Common optimizations include fronting S3 with CloudFront or enabling Intelligent-Tiering to auto-shift cold data. Permissions deserve care: bucket policy, ACLs, and IAM stack. Default "block all public access" was only added in 2018 — older buckets can still be misconfigured into public exposure.

02

What you can build

  • 1Host static website assets (HTML, JS, images)
  • 2Store user uploads (photos, videos, attachments)
  • 3Hold raw data for analytics data lakes
  • 4Archive cold data into Glacier for long-term storage
  • 5Act as an origin for CloudFront CDN distribution
03

Strengths & limitations

Strengths

  • 11 nines of durability — data essentially never lost
  • Deep AWS integration (Lambda, Athena, CloudFront)
  • Pre-signed URLs make secure client-direct uploads easy
  • Storage class tiers (Standard / IA / Glacier) enable cost optimization

Limitations

  • Egress traffic fees are a frequent hidden cost
  • Consistency is now strong (was eventual) — older docs can mislead
  • Bucket policy + ACL + IAM is a three-layer permission model and is easy to misconfigure into public exposure
04

Example request

Generic template — replace <endpoint> with the real path from the docs.
curl https://github.com/mermade/aws2openapi/<endpoint> \
  -H "Authorization: Bearer $API_KEY"
# Some providers use X-Api-Key instead — verify in the docs.
05

Getting started

Create an IAM user/role in the AWS Console or CLI to get an access key and secret. In almost all cases the AWS SDK handles SigV4 signing for you. Typical calls: S3.putObject, getObject, createPresignedUrl.

06

FAQ

How much is the S3 free tier?+

First 12 months: 5 GB Standard storage, 20,000 GETs, 2,000 PUTs per month. Beyond that, pay as you go.

How do I make an uploaded file publicly accessible?+

Combine a bucket policy or object ACL granting public read and disable block-public-access. For production, prefer CloudFront in front of a private bucket.

Strong consistency or eventual?+

Since 2020 all operations are strong read-after-write consistent. Older docs claiming eventual consistency are out of date.

How do I cut costs?+

Use lifecycle policies to move cold data to Standard-IA or Glacier, front S3 with CloudFront to cut egress, and clean up incomplete multipart uploads.

07

Technical details

CORS: NoHTTPS: YesSignup: YesOpen source: Yes
Auth type
api_key
Pricing
paid
Protocols
REST
SDKs
python, javascript, typescript, java, go, ruby, php, csharp
Response time
10 ms
Last health check
5/12/2026, 7:36:34 AM
08

Endpoints

Parsed from the OpenAPI spec. Showing 12 of 93 non-deprecated endpoints.

GET
/
DELETE
/{Bucket}
Bucket:path*x-amz-expected-bucket-owner:header
GET
/{Bucket}
Bucket:path*delimiter:queryencoding-type:querymarker:querymax-keys:query+5 more
HEAD
/{Bucket}
Bucket:path*x-amz-expected-bucket-owner:header
PUT
/{Bucket}
x-amz-acl:headerBucket:path*x-amz-grant-full-control:headerx-amz-grant-read:headerx-amz-grant-read-acp:header+4 more
DELETE
/{Bucket}/{Key}
Bucket:path*Key:path*x-amz-mfa:headerversionId:queryx-amz-request-payer:header+2 more
GET
/{Bucket}/{Key}
Bucket:path*If-Match:headerIf-Modified-Since:headerIf-None-Match:headerIf-Unmodified-Since:header+16 more
HEAD
/{Bucket}/{Key}
Bucket:path*If-Match:headerIf-Modified-Since:headerIf-None-Match:headerIf-Unmodified-Since:header+10 more
PUT
/{Bucket}/{Key}
x-amz-acl:headerBucket:path*Cache-Control:headerContent-Disposition:headerContent-Encoding:header+30 more
GET
/{Bucket}/{Key}#acl
Bucket:path*Key:path*versionId:queryx-amz-request-payer:headerx-amz-expected-bucket-owner:header+1 more
PUT
/{Bucket}/{Key}#acl
x-amz-acl:headerBucket:path*Content-MD5:headerx-amz-sdk-checksum-algorithm:headerx-amz-grant-full-control:header+9 more
GET
/{Bucket}/{Key}#attributes&x-amz-object-attributes
Bucket:path*Key:path*versionId:queryx-amz-max-parts:headerx-amz-part-number-marker:header+7 more

81 more endpoints not shown. See the OpenAPI spec for the full list.

09

Tags

10

More from Amazon Web Services