Pricing & billing

Pricing & billing

Crustoff is prepaid and metered. You buy credits; each request debits the exact cost. There are no subscriptions, and you can never spend more than your balance.

Credits

The unit of account is the credit, a micro-dollar:

1,000,000 credits = $1.00

Balances and charges are whole-number credits, so there’s no rounding drift. New accounts get free starter credits; top up from the dashboard via Stripe.

Check your balance any time:

curl https://api.crustoff.app/v1/credits \
  -H "Authorization: Bearer $CRUSTOFF_API_KEY"
# {"user_id": "...", "credits": 994271, "usd": 0.994271}

Text pricing (per token)

Text models charge a per-million-token rate for input and output:

ModelInput / 1MOutput / 1M
qwen2.5-7b-instruct$0.20$0.60

Embeddings are billed on input tokens only. Streaming is billed on the tokens actually delivered.

Image pricing (per megapixel)

Image models charge per megapixel of output — the honest megapixel count, not rounded up.

ModelPrice / MP≈ per 1024×1024
sdxl$0.0015~$0.0016
flux-schnell$0.0018~$0.0019
qwen-image$0.012~$0.013
megapixels = width × height × n ÷ 1,000,000
cost       = megapixels × price_per_MP

Many providers bill a 1024×1024 image as 2 MP by rounding up. We bill the real 1.05 MP, so the same image costs you less here.

Holds and settlement

Every request places a short-lived hold for its worst-case cost before running, then settles the actual cost when it finishes:

  • Text — the hold covers the prompt plus the maximum output; you’re charged only for the tokens generated, and the remainder is released.
  • Images — the cost is known up front (megapixels), so the hold equals the charge. If generation fails on our side, the hold is released and you pay nothing.

This is why you may briefly see available credit dip by more than the final charge during a long-running request.

How charges appear

Each request writes one usage row (visible in your dashboard) and one ledger entry. The x-prox-request-id response header is the id you’ll see against that charge.