GET /v1/billing/plans returns the published plan limits.
GET /v1/billing/quota returns your current credit balance and whether the
account can start a realtime session.
Realtime sessions
Realtime plans set the maximum number of concurrent sessions and the maximum length of each session. Exceeding the concurrency cap returns429 quota_exceeded with error.code: "concurrent_sessions".
Other session limits
The idempotency window applies to supported
POST endpoints. Reuse a key only
when the request is unchanged. Run and session retries replay the original
response.
If you send max_duration_seconds, Protoface applies the lower of your request
and your plan limit.
For early capacity planning, divide daily active users by 250 to estimate
concurrent sessions. Protoface may also limit how quickly new sessions start
during a ramp-up; active sessions are not affected.
Realtime credits
Usage is rounded up to the nearest minute. One credit equals one rounded-up session minute. If the account has no usable credits, session creation returns402 quota_exceeded with
error.code: "insufficient_credit_balance".
Free monthly credits do not roll over. Purchased credits roll over without
expiry.
Model inference
When you submit a run, Protoface reserves themaximum_reserved_credits shown
in the estimate. It charges those credits when the run completes and releases
them if the run fails.
Each plan also limits concurrent inference runs that produce video. If the
account is at its limit, the API returns 429 quota_exceeded with
error.code: "video.concurrency_exceeded". Wait for an active run to finish
before submitting another one.
Canceling a queued run releases its reservation. Canceling after work starts
charges the reserved amount.
Metadata keys
metadata is customer-owned JSON. Session keys beginning with _avatar. are
managed by Protoface. Model-run keys beginning with protoface_ are reserved
and rejected.
Next
Errors
Error responses and retry behavior.
Usage
Inspect usage and credits.

