Billing
Calls are metered in credits. Buy credits in packages and top up when you run low.
List packages
/v1/billing/packages Public {
"status": "success",
"packages": [
{ "id": "trial", "credits": 50, "amountLak": 20000 },
{ "id": "starter", "credits": 150, "amountLak": 50000 },
{ "id": "standard", "credits": 700, "amountLak": 200000 },
{ "id": "bulk", "credits": 2800, "amountLak": 700000 }
]
}Start a top-up
/v1/billing/topup API key Returns the payment gateway QR code / deeplink to present to the payer.
JSON body
packageId * string | The package to purchase, e.g. "standard". |
provider string | Payment provider. Default: laosway. |
curl -X POST https://ai-api.vanguardinitiative.com/v1/billing/topup \
-H "authorization: Bearer $TOKEN" \
-H 'content-type: application/json' \
-d '{"packageId":"standard"}'Credits are granted idempotently once the gateway confirms the payment.
Plan allowances expire; purchased credits do not
Your balance holds two kinds of credit. The monthly plan allowance is replaced at
each renewal — use it or lose it — while credits you paid for never expire and are
always spent last. GET /v1/account/balance returns the split as grant and purchased, with grantExpiresAt for the allowance.
Usage limits
Separately from your balance, each plan caps how many credits may be spent per day
and per month, across every service at once. Exceeding a cap returns 429 USAGE_LIMIT_REACHED with window, limit, used and resetsAt — distinct
from 402 QUOTA_EXCEEDED, which means the balance itself is empty. Check your
headroom with GET /v1/account/quota.