hosting

POST /v1/sites/{siteId}/quota/resources/{resource}/upgrade

Buy more disk or file allowance for one site.

すべての hosting エンドポイント

認証

ベアラー トークンとして API キーを送信します。キーには sites.view 権限が付与されている必要があります。権限のないキーは 404 ではなく 403 で拒否されます。

このエンドポイントは組織IDを受け付けません。お使いのキーによって所属する組織がすでに特定されており、レスポンスはその組織にスコープされます。

試してみる

アングルブラケット内のすべてをご自身の値に置き換え、キーのプレースホルダーをご利用中のダッシュボードのキーに置き換えてください。

curl -X POST https://api.zinndigital.com/v1/sites/{siteId}/quota/resources/{resource}/upgrade \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "steps": <integer> }'

ログインしていますか?ダッシュボード内のAPIコンソールでは、実際の組織IDやお客様ご自身のキーが自動入力され、ライブAPIに対してリクエストが実行されるため、実際のレスポンスを確認することができます。 API コンソールでこのエンドポイントを開く

詳細

Raises this site's ceiling by `steps` purchasable steps (1 GB of disk, 50,000 inodes) and applies it to the box. Recorded as an open-ended grant rather than by editing the base, so *what the site started with* and *what the customer bought* stay separately revocable. ⛔⛔ **The charge is created BEFORE the ceiling is raised, and an upgrade that cannot be charged for is refused with `422` — no grant, nothing on the box.** Both refusals answer `422` and the body distinguishes them: no published price in the caller's currency, or no way to take the payment. Free capacity on a real box is the failure no customer reports, because they received what they asked for. Charge-then-apply is deliberate: a charged-but-unapplied upgrade is repaired by the ten-minute reconciler, and free capacity is repaired by nobody. An upgrade also **lifts a quota freeze immediately**, because paying is the remedy and waiting for a sweep would be the worst minute of the product to leave to a schedule. Requires `sites.view` **and** `hosting.quota.manage` — an upgrade commits the organisation to a recurring charge, which is a money authority rather than a hosting one.

パラメータ

名前タイプ必須これがその内容です
siteId (path)UuidはいSite ID (UUIDv7).
resource (path)string<disk, inodes>はいWhich metered per-site resource. Only resources the platform actually enforces are addressable — `bandwidth` is modelled and priceable in admin but nothing measures or enforces…

リクエスト本文

名前タイプ必須これがその内容です
stepsintegerはいHow many purchasable steps to add.

返信

名前タイプ必須これがその内容です
resourcestring<disk, inodes, bandwidth>はい
unitSiteQuotaUnitはいThe unit a quota's figures are expressed in, as a **code the client localises** — never a word to render raw. `GB` for disk and bandwidth, `files` for inodes. ⛔ This was an unco…
stepintegerはいOne purchasable step, in `unit`. A customer buys N of these, never an arbitrary size.
basenumberはいThe site's own allowance, copied from the product line's admin-set default when the site was provisioned. `null` means this site has no limit row yet — it has not been through p…
grantednumberはいExtra from grants live right now — staff gestures and purchased upgrades, added together.
totalnumberはいThe effective ceiling — `base + granted`. `null` when `base` is null.
usednumberはいMeasured usage. `null` means **unknown** — the box was unreachable, or nothing has sampled it yet — and never `0`. A client must render those differently.
percentintegerはいUsage as a whole percentage of `total`, or `null` when either is unknown.
measured_atstringはいWhen the box was last asked. **Render the age.** A bar drawn from a two-day-old reading looks identical to one drawn a minute ago, and the customer cannot tell.
reverts_atstringはいWhen the ceiling next **drops**, because a temporary grant expires. `null` when no live grant has an expiry. A customer whose limit is about to fall needs to know before it does.
warn_at_percentinteger[]はいThe thresholds at which the platform notifies the customer, ascending.
price_minorintegerはいCost of ONE step, in integer minor units of `price_currency`, NET of tax. `null` means no price is published in the caller's currency — the client must then show no upgrade cont…
price_currencystringはい
price_intervalstring<monthly, yearly>はい

このエンドポイントが返すエラー

401 · 403 · 404 · 422 · 429