Skip to content

DocsReference

Billing

Pay as you go and plans, the balance, what a job holds while it runs, and how paid plans are bought, changed and cancelled.

Usage is counted in credits (Limits per plan). An account holds credits and its jobs use them; the plans and prices are on the pricing page.

Pay as you go and plans#

  • Pay as you go: no subscription and no card, with Starter's limits. Each user's personal organization gets 500 free credits once, valid 30 days, after the email is verified; other organizations start at zero.
  • Paid plans: a monthly subscription whose credits are granted each cycle and expire at its end. Past them, credits cost the plan's overage rate per 1,000, up to the plan's overage cap.
  • During the preview, plans and credit packs cannot be bought yet.

The balance#

GET /v1/credits and the dashboard's Usage and billing page show the account's credits: the balance as of the last change in the billing ledger, less the credits of jobs that ended since; the credits running jobs hold; the grants with credits left and when they expire; and for a subscriber, the cycle and its overage.

What a job holds#

A job's output is not known before it runs, so what it holds grows in steps, and a job never pays more than it holds:

  • When it is admitted, it holds the data of its plan's limits, the processing of the plan's longest job, and one minute of each output at the quality it asks for. What a video does not name, such as its size, codec or frame rate, is held at the lowest video rate until its inputs are read. On Pay as you go a plain command holds 126 credits: the data and processing, plus a minute at that rate.
  • After its inputs are fetched, the hold rises to the estimate from the inputs' length and picture. If the credits cannot cover it, the job ends out_of_credits (or, for a subscriber at the cycle's overage cap, usage_cap_reached) and pays the data it fetched.
  • While ffmpeg runs, the hold rises by a minute of output at a time. If it cannot, ffmpeg stops and the job ends with the same code, paying its data and processing, at most what it held.
  • At the end, before any output is stored, the outputs are priced. If the credits cannot cover them, the outputs are discarded and the job ends with the same code.
  • Credits that expire before a job started now could end do not count toward it.
  • When fewer credits are available, the job's time limit is shortened to fit: a plain command on Pay as you go runs for 12 s with 28 credits left. Below 10 s it does not start: it fails with out_of_credits (or, for a subscriber at the cycle's overage cap, usage_cap_reached) and uses no credits.
  • When the credits are held by other running jobs, or the credits of jobs that just ended are still being counted, the job waits queued until there is room.
  • When the account's credits leave no room for the shortest job, POST /v1/jobs answers 402 out_of_credits (402 usage_cap_reached for a subscriber at its cap) and creates no job.
  • When a new account's free credits are still being granted, POST /v1/jobs answers 503 service_unavailable (reason temporary) with Retry-After and creates no job. Send the request again after that wait.

A job that never starts uses no credits. A job whose ffmpeg never starts (an input could not be fetched, for example) uses only the credits of the bytes it fetched. A job retried on our side is billed once.

Buying, changing and cancelling#

Plans are bought on the dashboard's Usage and billing page, through the checkout of Dodo Payments, our merchant of record, once purchases open. Prices in USD. Tax is calculated at checkout.

  • The plan changes when Dodo confirms the payment to us.
  • A larger plan applies at once; a smaller one from the next cycle.
  • Manage billing opens Dodo's billing portal: invoices, the payment method and cancelling.
  • When a payment fails, the account runs on Pay as you go limits until the payment method is updated. When the subscription ends, the account is back on Pay as you go with the credits it still holds.

Emails tell the account's owners and billing members when 50, 80, 95 and 100 percent of the cycle's plan credits are used, when overage starts and nears or reaches the cap, when a Pay as you go balance runs low or cannot start a job, and before free credits or credit packs expire.