Burrowbox Docs

Billing

Burrowbox uses prepaid credit, charged by the minute.

Size Running Per 30 days if always on
tiny $0.07 / h $50.40
small $0.11 / h $79.20
medium $0.16 / h $115.20
large $0.26 / h $187.20
Stopped (snapshot) $0.001 / h $0.72
VPN add-on Proxy: +$0.03 / h, $10 / GB · Unlock: +$0.06 / h, $15 / GB, $3 / 1k connections

#Card and auto-refill

To start machines you need a card on file with auto-refill: when your balance falls below a threshold you choose (default $5), the card is charged a set amount (default $20) and the credit is added right away. This way machines never stop for lack of credit.

Admin accounts don't need a card.

#Endpoints

Method Path
GET /api/billing Balance, burn rate per hour, runway, this month's usage
GET /api/billing/ledger?limit=100&offset=0&kind= Every credit and usage entry, newest first (usage is grouped per machine per hour). kind=usage or kind=credit narrows it; offset pages back
GET /api/billing/card The saved card (brand, last 4, expiry) and auto-refill settings
POST /api/billing/card Returns a Stripe Checkout url to add or replace the card
DELETE /api/billing/card Remove the card (stops auto-refill; machines can't be started)
PUT /api/billing/auto-refill {"thresholdCents": 500, "amountCents": 2000}
POST /api/billing/topup {"cents": 2500} — returns a Stripe Checkout url
GET /api/usage Usage per customer or per machine (below)

Amounts in responses are in micro-dollars (1_000_000 = $1) so per-minute usage stays exact.

#Usage per customer

Tag machines with your customer's id (externalId, see Machines) and Burrowbox reports what each customer cost you, so you can bill them.

GET /api/usage?groupBy=externalId&from=1790000000000&to=1792000000000

Parameter Default
groupBy externalId externalId or machine
from, to this month so far Unix time in milliseconds
{
  "from": 1790812800000, "to": 1791400000000, "groupBy": "externalId",
  "totalMicros": 4210000,
  "groups": [
    { "externalId": "cus_8f2a", "usageMicros": 2980000, "machines": 2 },
    { "externalId": null, "usageMicros": 1230000, "machines": 1 }
  ]
}

externalId: null is usage from untagged machines, including the idle time of warm pool machines before they're claimed. Usage is attributed to the tag a machine had when the minute was billed. The dashboard shows the same table under Billing → Usage by customer; the platform MCP tool is usage_by_customer.