loopling.ai

Guides

Billing

Hold credit on submit, settle on delivery, refund on failure.

Credit

The API spends the same balance as the app.

  • Credit. Added in dollars on Billing. Never expires.
  • Plan credit. Your plan's monthly credit. Spent first.

The API states an amount twice: ink_ fields count cents, 100 to the dollar, and usd_payg_ fields carry the same amount in dollars.

Reserve, then settle

  1. Reserve. On submit, the most the generation can cost is held: the requested duration at the requested resolution. If your balance can't cover it, the call answers 402 and nothing runs.
  2. Settle. On delivery, the hold becomes a charge for the seconds delivered, never more than requested. The rest is released.

ink_reserved shows the hold; ink_charged shows the charge.

Worked examples

Clipink_chargedCost
Seedance 2.5 · 1080p · 5 s245$2.45
Seedance 2.0 Fast · 720p · 10 s104$1.04
Seedance 2.0 · 720p · 15 s195$1.95

A 30-second 1080p Seedance 2.5 request delivered as 29 seconds holds $14.67 and is charged $14.19. The rest is released.

Spending limits

Give a key a spending limit when you create it, or later on API keys. What it charges counts against the limit for the key's lifetime. When the next hold would cross the limit, that key answers 402 key_ink_limit_reached; your other keys and the app keep working.

A limit is a budget, not a security boundary: a leaked key can still spend up to its limit. Revoke it at once.

Get the current account shows the key's ink_limit and ink_charged.

Usage

  • Billing: your balance, top-ups and history, in dollars.
  • API keys: each key's spend and limit.
  • Usage: the last 30 days by day and key, and every request with its status, model and cost. Playground runs appear under the Playground key.

API spend also shows in your balance history, beside the app's.

Refunds

  • Refused before dispatch: not charged. Validation errors, 401, 402, 403, 429, and a 503 before dispatch leave your balance untouched.
  • Provider failure: refunded in full. ink_charged is 0; error gives the reason.
  • Clip can't be stored: refunded in full. The generation reads failed.
  • Lost or timed-out render: refunded in full. A final check with the provider comes first, and a delivered clip settles as usual. Otherwise it reads failed with error.code: "timeout".
  • Shorter clip: charged for the seconds delivered.

Refunds go back where they came from: plan credit to plan credit, added credit to added credit.

Explore models

loopling.ai · hello@loopling.ai · for agents · community · pricing · API · terms · privacy