Integration Guides
Billing & Usage
Understand what consumes API calls, how allowance stacks, and where to inspect usage.
The current billing model
- Billable generation and processing endpoints consume exactly 1 API call per request.
- Workspace allowance and a dedicated API plan allowance stack together.
- There is no auto-overage in v1. When allowance is exhausted, billable operations return
402. - Read-only routes like GET
/v1/health, GET/v1/credits, GET/v1/usage, and polling/status routes remain free.
Allowance examples
Free + API Starter = 155 calls/month. Basic + API Starter = 160. Business + API Business = 750.
Pricing snapshot
Workspace-included allowance
- Free: 5 API calls / month
- Wubble Basic: 10 API calls / month
- Wubble Business: 50 API calls / month
Dedicated API plans
- API Starter: SGD 29 / month for 150 API calls
- API Business: SGD 99 / month for 700 API calls
- Allowance stacks with your workspace tier
What counts as a billable call
Billable
Songs, instrumentals, track generation, region edits, vocal clone, TTS, STT async jobs, dubbing, dialogue, voice isolation, and sound-effects generation.
Free
Health checks, request polling, speech status reads, credits balance, usage reads, webhook management, API key management, invoices, transactions, and dashboard billing reads.
Check remaining allowance
GET/v1/credits is the compatibility route for allowance state. In new integrations, prefer api_calls_remaining and monthly_api_call_allowance.
GET
/v1/creditsAuth: API keyBilling: FreeBehavior: Compatibility balance routeScopes: analytics:read
GET /v1/creditsbash
curl -s https://prod-backup-backend.wubble.ai/v1/credits \
-H "Authorization: Bearer wbk_your_api_key"
{
"success": true,
"data": {
"credits_remaining": 155,
"api_calls_remaining": 155,
"monthly_api_call_allowance": 155,
"plan": "free",
"reset_at": "2026-06-01T00:00:00.000Z",
"deprecated": {
"credits_label": "Use api_calls_remaining / monthly_api_call_allowance"
}
}
}Inspect request logs
GET/v1/usage returns paginated request logs so you can reconcile endpoint usage, latency, and status codes.
GET
/v1/usageAuth: API keyBilling: FreeBehavior: Paginated request log readScopes: analytics:read
GET /v1/usagebash
curl -s 'https://prod-backup-backend.wubble.ai/v1/usage?page=1&limit=5' \
-H "Authorization: Bearer wbk_your_api_key"
{
"success": true,
"data": {
"logs": [
{
"endpoint": "/v1/credits",
"httpMethod": "GET",
"statusCode": 200,
"serviceCategory": "analytics",
"serviceOperation": "credits",
"creditsUsed": 0
}
],
"pagination": { "page": 1, "limit": 5, "total": 1, "pages": 1 }
}
}Dashboard billing routes
GET
/api/developer/billingAuth: Dashboard JWT/sessionBilling: FreeBehavior: Returns the combined dashboard billing payload
POST
/api/developer/billing/upgradePlanAuth: Dashboard JWT/sessionBilling: FreeBehavior: Creates Stripe checkout for Starter or Business
- GET
/api/developer/billingreturns the combined dashboard billing payload for the signed-in user. - POST
/api/developer/billing/upgradePlanstarts API plan checkout for Starter or Business. - GET
/api/developer/billing/invoicesand GET/api/developer/billing/transactionsare dashboard-session routes, not API key routes.
402 behavior
When allowance is depleted, billable generation routes hard-stop with
402. Status reads and billing reads remain available.