Skip to content

Credits

Live projects are paid with the account’s credits: one credit is one minute of audio, charged by the second for what we measure in the files (all tracks of a project), with a small per-project minimum. Every processing setting costs the same. Credits don’t expire.

  • A live project’s credits are taken when it’s validated (submitting needs credits:spend). Not enough credits: the project is rejected with insufficient_credits.
  • A project that fails for good, or is cancelled before processing, gets its credits back automatically.
  • Test projects show their price in creditsSeconds and are never charged.

Buy credits as bundles, or as a monthly plan, on the account page (or podsworth.com/pricing).

A plan adds its hours every month, for a little less than the same bundle. They’re spent before any other credits. Unused plan hours roll over, at most one month’s worth: at each renewal anything above a month’s hours is dropped before the new month’s are added. Bundle hours are never touched. Change or cancel a plan in Billing details on the account page; changes start at the next renewal, and after a cancellation the hours you have stay usable.

GET /v1/subscription (account:read) shows the plan: its status (active, or past_due while a renewal’s payment is retried), seconds per month, and currentPeriodEnd (when it renews, or ends if cancelAtPeriodEnd). Subscribing happens on the account page.

Auto top-up buys a bundle with the saved card whenever the balance drops below a threshold, at most a set number of times a month (3 by default, up to 20), so an integration never runs dry and a runaway one can’t drain a card.

PUT /v1/auto-top-up (billing:purchase)
{ "enabled": true, "thresholdSeconds": 7200, "bundleId": "5h", "monthlyCap": 3 }

If a charge is declined (or the bank wants 3-D Secure, which nobody is there to answer), auto top-up pauses, the account’s owners and billing members get an email, and a billing.topup_failed event goes out. Saving the settings again turns it back on. GET /v1/auto-top-up shows the settings, a pause and its reason, and this month’s purchases.

GET /v1/balance (account:read)
GET /v1/ledger (account:read)

GET /v1/balance answers totalSeconds and buckets (seconds left in each: plan, promo, purchased). GET /v1/ledger lists every change: purchases, the trial, grants, a project’s charge (debit) and refunds, newest first.

With a live key that has billing:purchase, POST /v1/credits/buy buys a bundle with the account’s saved card (the card used for its last purchase on the account page):

{ "bundleId": "5h" }

status is paid when the credits are in (a credits.added event follows), or pending when the card’s bank wants 3-D Secure. A person has to complete that in a browser, so buy ahead of need when you automate it, and watch credits.low. GET /v1/credits/purchases lists the account’s purchases.