API Reference
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/credits
Auth: 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/usage
Auth: 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/billing
Auth: Dashboard JWT/sessionBilling: FreeBehavior: Returns the combined dashboard billing payload
POST/api/developer/billing/upgradePlan
Auth: Dashboard JWT/sessionBilling: FreeBehavior: Creates Stripe checkout for Starter or Business
  • GET/api/developer/billing returns the combined dashboard billing payload for the signed-in user.
  • POST/api/developer/billing/upgradePlan starts API plan checkout for Starter or Business.
  • GET/api/developer/billing/invoices and GET/api/developer/billing/transactions are 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.
Was this page helpful?