Vault

API reference

Every REST endpoint, grouped by resource.

Base URL: https://storage-saas.manojkumarsahu97.workers.dev Auth: Authorization: Bearer sk_live_… (except public signed-URL access).

Responses are JSON with a uniform error shape (code, message, requestId, docsUrl), cursor pagination, and an x-request-id header. Writes accept an Idempotency-Key header. A machine-readable OpenAPI 3.1 spec is also available.

Buckets

MethodPathDescription
POST/v1/bucketsCreate a bucket
GET/v1/bucketsList buckets
GET/v1/buckets/{bucket}Get a bucket
PATCH/v1/buckets/{bucket}Update a bucket
DELETE/v1/buckets/{bucket}Delete a bucket (must be empty)

Objects

MethodPathDescription
PUT/v1/buckets/{bucket}/objects/{key}Upload an object
GET/v1/buckets/{bucket}/objects/{key}Download an object
HEAD/v1/buckets/{bucket}/objects/{key}Object metadata
DELETE/v1/buckets/{bucket}/objects/{key}Delete an object
POST/v1/buckets/{bucket}/objects/{key}/copyCopy an object
GET/v1/buckets/{bucket}/objectsList objects (?prefix=&cursor=&limit=)
POST/v1/buckets/{bucket}/objects/batch-deleteDelete many

Multipart

MethodPathDescription
POST/v1/buckets/{bucket}/uploadsStart a multipart upload
PUT/v1/buckets/{bucket}/uploads/{uploadId}/parts/{n}?key=Upload a part
POST/v1/buckets/{bucket}/uploads/{uploadId}/completeComplete
DELETE/v1/buckets/{bucket}/uploads/{uploadId}?key=Abort

Signed URLs

MethodPathDescription
POST/v1/buckets/{bucket}/signIssue a signed URL
GET/PUT/signed/{bucket}/{key}?…Consume a signed URL (no API key)

Webhooks

MethodPathDescription
POST/v1/webhooksCreate a webhook (returns signingSecret once)
GET/v1/webhooksList webhooks
GET/v1/webhooks/{id}Get a webhook
PATCH/v1/webhooks/{id}Update a webhook
DELETE/v1/webhooks/{id}Delete a webhook

API keys

MethodPathDescription
POST/v1/keysIssue a key (plaintext shown once)
GET/v1/keysList keys
DELETE/v1/keys/{id}Revoke a key

Account

MethodPathDescription
GET/v1/accountAccount info + current-period usage

Errors

CodeHTTPMeaning
unauthorized401Missing or invalid API key
forbidden403Cross-tenant or disallowed access
bucket_not_found / object_not_found404Not found
bucket_already_exists409Duplicate bucket name
invalid_request / invalid_key400Bad input
payload_too_large413Body exceeds limit
quota_exceeded403Plan storage cap reached
rate_limited429Too many requests

On this page