GPU Billing
How GPU billing works — credits, billing cycles, minimum charges, and balance management.
Overview
GPU deployments are billed using a prepaid credit system. You add credits to your account before deploying, and usage is deducted automatically while your GPU is running.
All prices are in USD.
How It Works
1. Add Credits
Before deploying a GPU, you need at least $20.00 in GPU credits. Credits can be added through the dashboard or via the billing API.
# Check your current balance
curl -H "X-API-Key: mk_your_key" \
https://gpu.huddleapis.com/api/v1/billing/balanceResponse:
{
"code": "OK",
"data": {
"balance_cents": 5000,
"balance_usd": 50.00
}
}2. Deploy a GPU
When you deploy, the system verifies your balance meets the $20 minimum. If your balance is below $20, the deployment is rejected:
{
"code": "INSUFFICIENT_CREDITS",
"error": "insufficient GPU credits: your balance is $12.50 but this deployment requires at least $20.00. Please add credits to continue."
}3. Automatic Billing Cycle
Once your GPU is running, your credits are deducted automatically:
| What | Detail |
|---|---|
| Minimum charge | 10 minutes per deployment |
| After 10 minutes | Billed per second of usage |
| Billing check interval | Every 10 minutes |
| Calculation | elapsed_seconds x (price_per_hour / 3600) |
| Currency | USD |
Example
You deploy a 1x H100 at $1.71/hr ($0.000475/sec):
| Time | Event | Charge | Balance |
|---|---|---|---|
| 0:00 | Deploy GPU | — | $50.00 |
| 0:10 | First billing tick (600s) | $0.29 | $49.72 |
| 0:20 | Second billing tick (600s) | $0.29 | $49.43 |
| 0:25:30 | GPU deleted (330s since last tick) | $0.16 | $49.27 |
After the initial 10-minute minimum, you only pay for the exact seconds your GPU is running.
4. Minimum 10-Minute Charge
Every deployment is billed for a minimum of 10 minutes, even if you delete it sooner. This prevents abuse from rapid deploy/delete cycles.
Example
You deploy a 1x H100 ($1.71/hr) and delete it after 2 minutes:
| Event | Billed Duration | Charge |
|---|---|---|
| Deploy at 0:00 | — | — |
| Delete at 0:02 | 10 min (minimum) | $0.29 |
After the 10-minute minimum, billing is per second. If you delete at 12 minutes, you pay for exactly 720 seconds.
5. What Happens When Credits Run Out
If your balance drops to zero during a billing cycle:
- You are immediately notified via email and webhook
- Your GPU enters a 30-minute grace period to top up your credits
- If credits are not added within 30 minutes, your GPUs are suspended
Grace Period
When your balance hits zero, you have 30 minutes to add credits before your deployments are suspended. Top up promptly to avoid interruption to your workloads.
Billing API Endpoints
Check Balance
GET /api/v1/billing/balanceReturns your current credit balance in both cents and USD.
Credit History
GET /api/v1/billing/historyReturns a paginated ledger of all credits and debits, including:
- credit entries — when you add funds
- debit entries — automatic per-second usage deductions (checked every 10 minutes)
- final_billing entries — the last deduction when a deployment is deleted
Each entry includes the deployment ID, amount, and running balance.
Example: Full Billing Lifecycle
# 1. Check balance
curl -H "X-API-Key: mk_key" https://gpu.huddleapis.com/api/v1/billing/balance
# → { "balance_usd": 50.00 }
# 2. Deploy a GPU cluster
curl -X POST -H "X-API-Key: mk_key" \
-H "Content-Type: application/json" \
-d '{"cluster_type":"1H100.80S.30V","hostname":"train-01","image":"ubuntu-22.04-cuda-13.0-cluster","ssh_key_ids":["key-id"],"location":"FIN-01"}' \
https://gpu.huddleapis.com/api/v1/deployments/clusters
# → { "status": "ordered" }
# 3. After 30 minutes, check balance again
curl -H "X-API-Key: mk_key" https://gpu.huddleapis.com/api/v1/billing/balance
# → { "balance_usd": 49.14 } (3 ticks x $0.29 = $0.86 deducted)
# 4. Delete the deployment
curl -X DELETE -H "X-API-Key: mk_key" \
https://gpu.huddleapis.com/api/v1/deployments/dep_abc123
# → Final billing deduction applied for remaining unbilled time
# 5. Check final balance
curl -H "X-API-Key: mk_key" https://gpu.huddleapis.com/api/v1/billing/balance
# → { "balance_usd": 49.14 } (no additional charge — last tick covered it)Pricing Reference
GPU prices vary by model and configuration. Check real-time pricing:
GET /api/v1/gpus/availablePrices are shown as price_per_hr (hourly rate) in USD. The per-second rate is:
per_second_cost = price_per_hr / 3600| GPU | Config | Price/hr | Per second | Per 10 min |
|---|---|---|---|---|
| H100 | 1x 80GB | $1.71 | $0.000475 | $0.29 |
| H100 | 8x 80GB | $13.71 | $0.003808 | $2.29 |
| H200 | 8x 141GB | $32.00 | $0.008889 | $5.33 |
Prices may vary
Prices are fetched from our GPU marketplace in real-time and may change.
Always check the /gpus/available endpoint for current pricing before deploying.