Appearance
Billing
Usage-based: every request costs Compute Units, your plan sets the price per CU, and the bill is CU × price − credits (+ VAT where applicable). The free plan meters usage but bills nothing.
Pricing
| Plan | CU price (USD) | Included limits |
|---|---|---|
| free | $0 | rate limits |
| standard | $0.001 | ↑ |
| premium | $0.0005 | ↑ |
| enterprise | $0.0002 | ↑ |
Worked example: 1M requests/day averaging 5 CU ≈ 5M CU/day; on premium that's 5,000,000 × $0.0005 = $2,500/day — heavy eth_getLogs scans (75 CU) shift this fast, so check the per-method weights.
What's metered — the short version:
- Every HTTPS call, by method weight; cache hits are metered too (
X-Cache: HIT) — the weight pays for the API call. - Batches: per inner call.
- WebSocket streams: the handshake is rate-limited but frames are free — an open subscription costs 0 CU.
- Meta methods (
eth_chainId,net_version, …) cost 0 CU.
Watch spend before it happens
- Dashboard → Usage — CU and requests per project/chain/day, with a per-method breakdown.
- Notifications fire at 80 / 95 / 100 % of the daily request allowance and on 429 spikes (details).
- API — same numbers as the dashboard:
bash
# per project: last 24 h (or ?period=month for 30 days)
curl "https://api.au.ro/api/v1/projects/$PROJECT_ID/usage?period=day" \
-H "Authorization: Bearer $TOKEN"
# tenant-wide billing view: rolling 30 days
curl https://api.au.ro/api/v1/tenants/$TENANT_ID/billing \
-H "Authorization: Bearer $TOKEN"The billing view returns per project/chain/day CU entries plus the money summary:
json
{
"tenant_id": "…",
"tier": "premium",
"period": "30d",
"total_cu": 12480230,
"total_usd": 6240.11,
"credits_usd": 500.0,
"vat_rate_percent": 0,
"net_usd": 5740.11,
"total_due_usd": 5740.11,
"entries": [ {"project_id":"…","chain":"btc","day":"2026-07-13","cu":81230,"cost_usd":40.61}, … ]
}credits_usd are manual credits granted by the operators (SLA gestures, migration credits) — they offset the same 30-day window. VAT appears with the deployment's configured rate and label when applicable.
Paying & upgrading
Card (Stripe) — self-service plan subscription: Dashboard → Billing → pick a plan, or
bashcurl -X POST https://api.au.ro/api/v1/tenants/$TENANT_ID/billing/checkout \ -H "Authorization: Bearer $TOKEN" -H 'Content-Type: application/json' \ -d '{"tier":"premium"}' # → {"url":"https://checkout.stripe.com/…","session_id":"cs_…"}Open the returned hosted-checkout URL; the plan switches once payment completes. Card details never touch the platform. (
tieris one ofstandard,premium,enterprise.)Without a card / other rails — request a tier change (
POST /api/v1/limit-requests) or open abillingsupport ticket; operators apply the change and arrange invoicing.
Rate limits and CU price switch with the tier. The 30-day billing view prices the window at your current tier's rate.
Suspension & reactivation
Unpaid accounts can be suspended: every RPC request then returns HTTP 402 (account suspended — contact your administrator) while keys, projects and history stay intact. Settle the balance (or resolve the dispute via a billing ticket) and service resumes immediately — no re-provisioning, no new keys.
Cost-control checklist
- Scope projects per environment so a runaway staging job can't spend the production budget (projects as bulkheads).
- Watch
eth_getLogs(75 CU + heavy budget) — narrow ranges beat retries. - Poll cached methods (
eth_blockNumber,getblockcount) instead of heavy ones; the platform cache makes them cheap and fresh. - Keep the daily CU quota (default 100,000/day per project) as your spending fuse — it turns a leak into
-32005instead of a bill.