Home API & Billing Reference Full S3 operation reference

Full S3 operation reference

Last updated on Aug 18, 2026

buckets.ninja is a full S3-compatible object store. If your tool speaks the S3 API — rclone, aws-cli, Cyberduck, Veeam, Restic, or your own SDK — it works here. This page is the reference for the endpoint, which operations are supported, how requests are billed, and the few operations we deliberately do not expose.

Endpoint

Endpoint https://s3.buckets.ninja
Region any value is accepted
Addressing Virtual-host style (bucket.s3.buckets.ninja) and path style both work
TLS Required — HTTPS only
Credentials Access key + secret from Buckets → Access keys in the panel

Buckets are created and deleted in the panel, not over the API — see "What is not exposed" below. Once a bucket exists, everything inside it is done over S3.

Billing classes

Requests fall into three classes. Writes are always free; reads and metadata have generous monthly free tiers that reset on the 1st of each month. You are only billed for overage beyond the free tier.

Class Operations Free tier Overage
A — Writes PUT, POST, multipart uploads, bucket config Unlimited Always free
B — Reads GET, HEAD, downloads 100,000 / month €0.40 per million
C — Metadata LIST, COPY, bucket listings 100,000 / month €2.00 per million

Storage is €7.99 per TB per month (1 TB minimum). Each TB you commit includes 1 TB of egress; egress beyond that is €3.00 per TB. Ingress (uploads) is always free.

Supported operations

Objects

Operation S3 action Class
Upload object PutObject A
Multipart upload CreateMultipartUpload, UploadPart, CompleteMultipartUpload, AbortMultipartUpload, ListParts A
Download object GetObject, GetObjectVersion B
Object metadata HeadObject B
List objects ListObjectsV2, ListObjectVersions C
Copy object CopyObject C
Delete object DeleteObject, DeleteObjectVersion A
Object tags GetObjectTagging, PutObjectTagging B / A
Pre-signed URLs signed GET / PUT B / A

Buckets (configuration only)

Operation S3 action Class
Bucket location GetBucketLocation C
Versioning GetBucketVersioning, PutBucketVersioning C / A
Object lock config GetObjectLockConfiguration C
Lifecycle rules GetLifecycleConfiguration, PutLifecycleConfiguration C / A

Versioning is toggled per bucket from the panel as well as over the API.

Immutability (object lock)

Object lock is supported in Governance mode: you can make an object immutable against accidental deletion, ransomware, and your own tooling.

  • PutObjectRetention in GOVERNANCE mode, and reading retention / legal-hold state.

  • COMPLIANCE mode retention and PutObjectLegalHold are not available. Governance retention is available and gives you strong protection while keeping that guarantee intact.

What is not exposed, and why

  • CreateBucket / DeleteBucket — buckets are managed in the panel, so provisioning and billing stay in one place. Your keys cannot create or delete buckets over S3; everything else inside them works normally.

If your client tries to list all buckets at startup (some do), point it directly at a known bucket name rather than relying on discovery, and it will work.

Tested clients

rclone, aws-cli, Cyberduck, Veeam, Restic, and anything built on the AWS SDKs. rclone needs three specific settings to handle our at-rest encryption correctly — the panel's downloadable rclone.conf includes them, and there is a separate guide explaining why.