Billing cadence
Charges accrue per minute while any replica is up. When you callstop (or a min_replicas: 0 deployment parks itself), Veri settles each replica up to the moment its GPU was freed. Each replica’s cost is computed exactly over its lifetime (the final partial minute is prorated) and rounded once at settlement, not rounded minute by minute.
Billing states
A replica swap (
drain?replace=true) runs one extra box for its overlap: the replacement bills from its launch while the old replica keeps serving, and the old replica bills until its drain ends. A replacement that fails is billed only for the time it ran.
Balance enforcement follows the same rule: when a parked deployment wakes, its spend counts from the new boot. Time spent parked is never charged and never counted against your balance.
Cost and uptime you see
The dashboard and the metrics API use the same per-replica windows billing charges:total_cost_usdon the deployment is what has been settled to your balance so far.GET /v1/deployments/{id}/metricsreturnstotal_cost_usdaccrued over the deployment’s whole life (every replica of every boot, up to now, before rounding to the cent) anduptime_seconds, the time at least one box was up. Both count every boot and leave out time spent parked.GET /v1/deployments/{id}/metrics/timeseriesreportscost_usdper bucket: the billed time of each replica that fell in that bucket. An hour in which nothing ran costs $0, and the buckets add up to the window’scost_efficiency.cost_usd.
Avoiding idle bills
A deployment withmin_replicas of 1 or more (the default) keeps its warm floor running until you stop it — that’s what you asked for, so there’s no idle auto-stop on those.
Options, from most to least automatic:
- Create with
min_replicas: 0— the deployment parks itself (scaled_to_zero, $0) after its idle window (scale_to_zero_window_seconds, default 1 hour, counted from when it starts serving or from its last request) and wakes on the next request. Expect a multi-minute cold start on the first request after parking. - Add
idle_delete_after_days— a parked deployment with no traffic for that many days is auto-stopped for good. - Wrap deployments in try/finally — guarantees
stopeven if your code errors: - Monitor active deployments — regularly list deployments and stop anything no longer in use.
- Set a spend alert or auto-reload: a spend alert emails you at 75% and 100% of a monthly threshold, and auto-reload tops up the balance from your saved card when it drops below a threshold. There is no low-balance webhook.
Comparison vs training jobs
Training jobs run for a fixed duration and stop themselves. Deployments run until you stop them. If you only need to spot-check a trained model, run a short batch of requests against the deployment and stop it immediately after.Where to go next
Hosting & GPU sizing
Pick the right GPU before deploying.
OpenAI compatibility
What works, what doesn’t.
Deployments API
create / stop endpoints.Deployment observability
Request, token, latency, and replica metrics.

