API Reference
Storage

Switch the workspace storage tier

PUT
/v1/storage/tier

Storage tiers are billed monthly from the wallet on the 1st.

  • Upgrade: applies immediately. The wallet is charged the new tier's price for the rest of the current month, less the unused rest of the current tier if this month is already paid. Emits storage.tier_changed.
  • Downgrade: if this month is paid, it is scheduled for the 1st (next_tier_mb) and you keep the larger size until then. Not refunded. When it applies, recordings over the new size are deleted, oldest first.
  • Same tier: cancels a scheduled downgrade; otherwise a no-op.

Idempotency-Key dedupes the wallet debit on retries.

The 200 body also carries charge (net_minor, vat_minor, gross_minor, vat_applied, vat_rate_bps, currency; null when nothing was debited) and wallet_balance_after_minor.

Authorization

bearerAuth
AuthorizationBearer <token>

Long-lived ES256 JWT minted from the dashboard (https://app.sautikit.com/developers/api-keys). Signed by the platform keyring. Carries workspace_id and scopes claims; revoked via the platform deny-list.

In: header

Header Parameters

Idempotency-Key?string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/storage/tier" \  -H "Content-Type: application/json" \  -d '{    "tier_mb": 100  }'
{  "tier_mb": 100,  "size_mb": 0,  "log_retention": "3d",  "retention_hours": 72,  "paid_through": "2019-08-24T14:15:22Z",  "next_tier_mb": 100,  "past_due_since": "2019-08-24T14:15:22Z",  "used_bytes": 0,  "breakdown": {    "recordings_bytes": 0,    "logs_bytes": 0,    "other_bytes": 0,    "desk_mail_bytes": 0  },  "price_minor": 0,  "currency": "string",  "updated_at": "2019-08-24T14:15:22Z"}
Empty
Empty
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string",    "details": [      "string"    ],    "resolution": "string",    "reason": "invalid_characters",    "suggested_e164": "+254727524723"  }}
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string",    "details": [      "string"    ],    "resolution": "string",    "reason": "invalid_characters",    "suggested_e164": "+254727524723"  }}
{  "error": {    "code": "validation.bad_request",    "message": "string",    "request_id": "string",    "details": [      "string"    ],    "resolution": "string",    "reason": "invalid_characters",    "suggested_e164": "+254727524723"  }}