ObjectBasin

Quickstart

From zero to a signed URL in about five minutes. You need an account key from the console.

1. Export your key

export OBJECTBASIN_KEY="ob_live_xxxxxxxxxxxxxxxxxxxx"

2. Create a bucket

curl -X PUT https://api.objectbasin.com/v1/buckets/media \
  -H "Authorization: Bearer $OBJECTBASIN_KEY"

Response:

{"bucket":"media","region":"eu-central","node":"fra1","created":"2026-09-22T21:04:11Z"}

3. Upload an object

curl -X PUT https://api.objectbasin.com/v1/buckets/media/objects/2026/hero.jpg \
  -H "Authorization: Bearer $OBJECTBASIN_KEY" \
  -H "Content-Type: image/jpeg" \
  --data-binary @hero.jpg

Files above 100 MB should use the multipart API; the client libraries do this automatically.

4. Create a signed URL

curl "https://api.objectbasin.com/v1/buckets/media/objects/2026/hero.jpg/sign?expires=3600" \
  -H "Authorization: Bearer $OBJECTBASIN_KEY"

{"url":"https://media.objectbasin.com/2026/hero.jpg?token=eyJhbGciOi...","expires_in":3600}

What to check if something fails

SymptomLikely cause
401 invalid_keyKey revoked or copied with a trailing space.
403 signature_mismatchSigV4 client signing the wrong host — use api.objectbasin.com.
413 object_too_largeSingle PUT above 5 GiB — switch to multipart.
Reads slower than expectedCold range; check x-objectbasin-region and repeat the read.