---
sidebar_position: 9
title: Billing
description: Pods are billed per second at the listed hourly price, with no minimum. How the charge is computed, when it hits your balance, and what happens when the balance runs out.
---

> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lium.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Billing

Every price on Lium is an hourly USD rate — per GPU on the marketplace, per pod on the deploy summary — but you are **billed per second**: a pod is charged `hourly price × seconds / 3600` for the exact seconds it existed, with no minimum and no rounding up to a minute or an hour. A pod at $2.40/hour that you delete after 20 seconds costs $0.0133.

## What is charged

| Item | Rate | Granularity |
|------|------|-------------|
| Pod | Pod price per hour = provider's per-GPU price × GPUs (frozen at deploy; a later price change by the provider does not affect a running pod) | Per second, from the moment you click **Deploy** until the pod is removed |
| Cluster | Sum of every node's pod price | Per second, each node billed as its own pod |
| Volume | `$/GB/hour` on the data actually stored | Daily, see [Volumes](./volumes) |
| Backups | `$/GB/hour` on the backup data stored in S3 | Daily, see [Backups](./backups) |

The clock starts when the pod is created (the deploy request), so the short provisioning window before the pod turns **RUNNING** is included. A reboot keeps the same pod and the same price; the pod stays billed while it reboots. A pod on a node that stops reporting is not charged for the time the node is inactive.

## When it hits your balance

- **Every 5 minutes** the platform charges each running pod for the seconds since its previous charge and subtracts the total from your balance. The first charge covers the seconds since deploy, so it is usually less than 5 minutes' worth.
- **When a pod is removed** — by you, by a [scheduled termination](./scheduled-termination), by the provider reclaiming the node, or because your balance ran out — the seconds since the last 5-minute charge are settled immediately. Nothing is charged after the removal request.

The **Billing** page shows the balance to the cent and daily totals; the ledger underneath keeps the full precision, so small charges are not lost to rounding.

## When the balance runs out

- Deploying requires a balance covering at least **15 minutes** of the pod's hourly price; the error tells you the exact amount.
- If a 5-minute charge takes your balance to zero or below, your pods are removed at that check. The balance can go slightly negative, by about the previous 5 minutes of running pods, because the pods ran before the check noticed. Volumes and backups keep their daily charges until you delete them, so the balance keeps falling while they exist. Top up to clear it.
- **You are warned first.** Runway is `balance ÷ hourly cost of everything running` (pods plus volumes). You get one email when runway drops below your own threshold (default 24 hours, under **Profile → Notifications**, where you can also turn it off). *Not in production yet — lium-platform#125 and #127:* then one at about 1 hour and one at 15 minutes; each warning is sent once and re-arms after a top-up. The web app shows the same warning as a banner on every page (#127), and `GET /users/me` carries it as `balance_warning` (`runway_minutes`, `burn_per_hour`) for scripts (#125). When the pods are removed you get an email naming them, the charge that emptied the balance and a top-up link (#125); the banner stays until the balance is positive again.
- **Auto Top Up** on the **Billing** page refills the balance from a card on file when it falls below a threshold. If the card is declined, the charge is retried after 1 hour and 6 hours and paused after three declines; you are emailed once per decline streak. *Not in production yet — lium-platform#125 and #127:* the banner then shows the bank's reason until you update the card or a payment succeeds.

<details>
<summary>For agents and automation: API + CLI</summary>

`GET /users/me` returns `"billing_granularity": "second"` next to `balance`, so a client can print the unit it reads rather than hard-code it. `lium balance` shows the balance; `lium ps` shows each pod's `$/h` and spend so far (uptime × price, displayed to the cent).

```bash
curl -s https://lium.io/api/users/me -H "X-API-Key: $LIUM_API_KEY" | jq '{balance, billing_granularity}'
```

Each pod's hourly price is `price` on `GET /pods`; the marketplace per-GPU price is `price_per_gpu` on `GET /executors`.
</details>
