Bundle and what you pay
How a container bundle changes the price of a service, and how to read it from the API.
A bundle is a monthly package of CPU, memory and storage for container services. While the services of an account stay within the bundle's quota, they cost the wallet nothing: no charge when a build starts and no nightly renewal charge. Above the quota, the bundle still pays up to it and the wallet pays only the part over it.
The bundle covers container services only. VPS, domains, the AI gateway and paid database or email plans are paid from the wallet. The managed Postgres database and email both have a FREE plan.
Read the bundle
/containers/bundle{
"success": true,
"data": {
"active": true,
"code": "STARTER",
"startedAt": "2026-11-01T02:10:00.000Z",
"endsAt": "2026-12-01T02:10:00.000Z",
"autoRenew": false,
"withinQuota": true,
"quota": {
"cpu": { "usedUnits": 2, "maxUnits": 44, "usedVcpu": 0.25, "maxVcpu": 5.5 },
"ram": { "usedUnits": 4, "maxUnits": 44, "usedGb": 0.5, "maxGb": 5.5 },
"storageGb": { "used": 0, "max": 80 }
},
"covers": ["container services (create, deploy, scale, volumes) within the quota"],
"notCovered": ["VPS", "managed databases (the FREE plan costs nothing)", "email (FREE plan available)", "domains", "AI gateway"],
"note": "Services within this quota cost the wallet nothing until 2026-12-01T02:10:00.000Z: no top-up is needed for them, even with a zero balance. ..."
}
}Without a bundle: { "active": false, "covers": [], "notCovered": [...], "note": "..." }.
A CPU unit is 125 millicores (0.125 vCPU) and a RAM unit is 128 MB. Usage counts each running or sleeping service once, at its size per replica, the same way billing counts it.
Dry runs with a bundle
Every Container API call that costs money takes ?dryRun=true (create a service, create a stack, deploy a template, deploy, scale, resize a volume). Besides the list price dailyCost (or currentDailyCost / newDailyCost), the answer says what the wallet really pays:
Prop
Type
{
"success": true,
"data": {
"dryRun": true, "currency": "IDR", "dailyCost": 1700,
"services": [ { "name": "api", "cpu": 250, "ram": 512, "storageMb": 1024, "dailyCost": 1700 } ],
"bundle": { "code": "STARTER", "endsAt": "2026-12-01T02:10:00.000Z", "coversIt": true, "overageDailyCost": 0, "quotaAfter": { "cpuUnits": { "used": 4, "max": 44 }, "ramUnits": { "used": 8, "max": 44 }, "storageGb": { "used": 1, "max": 80 } } },
"walletDailyCost": 0,
"bundleNote": "Covered by the active STARTER bundle (until 2026-12-01T02:10:00.000Z): the wallet is not charged for this, no top-up is needed even with a zero balance."
}
}Show walletDailyCost as the price. When bundle.coversIt is true, the deploy goes ahead with any wallet balance, Rp 0 included. After the bundle's end date, services keep running and are billed per service from the wallet unless the bundle is renewed.
Connected apps with a monthly spend limit are counted on walletDailyCost too: a deploy the bundle covers uses none of the limit.