Reference
API reference
Base URL https://cdn.kvp123.flowerssail55.com. All endpoints require a bearer token and return JSON unless an object body is requested.
Authentication
Pass your API key as a bearer token on every request. Keys are created and revoked from the dashboard.
curl https://cdn.kvp123.flowerssail55.com/api/v2/storage/buckets \ -H "Authorization: Bearer $KEELSTORE_TOKEN"
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/v2/storage/buckets | List buckets. |
| POST | /api/v2/storage/buckets | Create a bucket. |
| GET | /api/v2/storage/objects/{bucket}/{key} | Download an object. |
| PUT | /api/v2/storage/objects/{bucket}/{key} | Upload or replace an object. |
| DEL | /api/v2/storage/objects/{bucket}/{key} | Delete an object. |
| POST | /api/v2/storage/signed-url | Mint a short-lived signed URL. |
| GET | /api/v2/storage/sync | Open a change channel. See the sync guide. |
Object response
Metadata endpoints return the object descriptor:
{
"bucket": "project-assets",
"key": "img/hero.webp",
"size": 48213,
"etag": "a1f3c0de9b21",
"version": 7,
"cursor": 184298,
"created_at": "2026-09-30T11:04:22Z"
}
Errors
| Status | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid token. |
403 | forbidden | Token lacks access to the resource. |
404 | not_found | Bucket or object does not exist. |
409 | conflict | Bucket name already in use. |
429 | rate_limited | Too many requests. See rate limits. |