Skip to main content

Credit budget by plan

Paid plan allocations match the plan pricing configured in the credits system.
PlanMonthly credit budgetYearly credit budget
Free$1 one-time (welcome)n/a
Starter$9 / month$90 / year
Pro$29 / month$290 / year
Scale$99 / month$990 / year
Enterprise$199 / month$1,990 / year
One-time credit packs are separate add-ons purchased from Billing.

How costs are calculated

Image models use a per-generation price. Video models use a per-second price and can also depend on resolution or audio mode. For the full list of models and their costs, visit the model pricing page.

Cost estimate API

Preview the cost of any generation before calling the generate endpoint. The estimate endpoint does not consume credits or GPU time.
Terminal
curl "https://api.us.babysea.ai/v1/estimate/bfl/flux-1.1-pro" \
  -H "Authorization: Bearer bye_your_api_key"
For video models, use the real query parameters supported by the route:
Terminal
curl "https://api.us.babysea.ai/v1/estimate/kling/v1.5-pro?duration=5&resolution=720p&audio=false" \
  -H "Authorization: Bearer bye_your_api_key"

Response

JSON
{
  "status": "success",
  "request_id": "req_a1b2c3d4",
  "data": {
    "model_identifier": "bfl/flux-1.1-pro",
    "model_type": "image",
    "assets_count": 1,
    "cost_per_generation": 0.052,
    "cost_total_consumed": 0.052,
    "credit_balance": 12.480,
    "credit_balance_can_afford": true,
    "credit_balance_max_affordable": 240
  }
}
FieldDescription
model_identifierThe model you queried
model_typeimage or video
assets_countNumber of requested outputs
cost_per_generationEffective cost for one requested output
cost_total_consumedTotal cost for the request
credit_balanceYour current credit balance
credit_balance_can_affordtrue if your balance covers the generation
credit_balance_max_affordableMaximum number of generations you can afford at this cost
Video responses include additional fields:
FieldDescription
duration_secondsRequested video duration
cost_per_secondBase per-second cost for the selected variant
resolutionResolution variant if specified
You can also pass count (1-100, default 1) to estimate multiple outputs in one request. Values outside that range are clamped. Your API key must have the library:read scope. See Scopes. If you use GET /v1/usage, that endpoint requires account:read.

With the SDK

TypeScript
import { BabySea } from 'babysea';

const client = new BabySea({
  apiKey: process.env.BABYSEA_API_KEY,
  region: 'us',
});

const estimate = await client.estimate('bfl/flux-1.1-pro');
console.log(estimate.data.cost_total_consumed);
console.log(estimate.data.credit_balance_can_afford);

Credit lifecycle per generation

Every generation follows this sequence:
StepWhat happensBalance effect
ReserveBabySea checks your balance and deducts the cost atomicallyBalance decreases
ProcessThe generation runs on the inference providerNo change
ChargeGeneration succeeds, BabySea confirms the reservation in the ledgerNo change (already deducted)
RefundGeneration fails after reservation, BabySea returns creditsBalance increases
The reserve step is atomic: BabySea checks your balance and deducts the cost before the generation starts, ensuring concurrent requests cannot exceed your available credits.

Insufficient credits

If your balance is less than the generation cost, BabySea returns:
JSON
{
  "status": "error",
  "request_id": "req_a1b2c3d4",
  "error": {
    "code": "BSE1004",
    "type": "insufficient_credits",
    "message": "Insufficient credits. Please upgrade your plan or wait for renewal.",
    "retryable": false
  }
}
The generation never starts and no credits are deducted. To resolve this, purchase a credit pack from the Billing page or wait for your next subscription renewal.