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
| Symptom | Likely cause |
|---|---|
401 invalid_key | Key revoked or copied with a trailing space. |
403 signature_mismatch | SigV4 client signing the wrong host — use api.objectbasin.com. |
413 object_too_large | Single PUT above 5 GiB — switch to multipart. |
| Reads slower than expected | Cold range; check x-objectbasin-region and repeat the read. |