public
products

Get a product

Returns a retired product too, with retired=true, so a server ordered on it still shows its plan and price. The list omits retired products, and a retired product cannot be ordered.

get/v1/products/{id}

Request

  • Base URL: https://api.vozora.io
  • URL: https://api.vozora.io/v1/products/{id}
  • Auth: API key in header Authorization

Path parameters

idstring required

product id (uuid)

Response

OK

billing_intervalstring
billing_modestring

BillingMode is "fixed" or "metered"; a metered product bills per running minute (MeteredPricing) instead of a fixed recurring PriceMinor.

currencystring
idstring
kindstring

Kind is what the product delivers. Today always "vps". More kinds will be added, so this is deliberately not a closed enum: treat an unknown value as a product this client does not know how to present.

namestring
price_minorinteger
pricing_shapestring

PricingShape is how money moves. Current values: "metered" (no checkout, billed monthly in arrears per usage — billing_mode "metered"), "recurring" (a subscription billed each billing_interval — billing_mode "fixed") and "one_time" (one standalone invoice per order — not yet sold). Deliberately not a closed enum: clients must tolerate values added later. billing_mode is unchanged.

retiredboolean

Retired is true for a plan no longer sold. Only the get-by-id read returns one (the list never does): a server ordered on it keeps running, and is still billed, at that plan's price. It cannot be ordered.

slugstring
stripe_price_idstring
tier_keystring

TierKey groups a tier's billing options: the hourly (metered), monthly and yearly products of one tier carry the same key, which is the metered product's slug. Omitted for a product that stands on its own; treat an absent key as a tier with no siblings.

Example response

{
  "kind": "vps",
  "pricing_shape": "metered",
  "tier_key": "nano-g2"
}

Changes

No recorded changes to this operation across all 1 revision of this API.