Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Quotas & Credits

Authenta bills media analysis in credits. Credits are shared between the web console and the API, and every job's cost is set when it is created, before it runs.

What costs credits

Only creating a job costs credits. Reading, listing, cancelling and deleting jobs, and uploading files to storage, are free.

RequestCredits
POST /jobsThe job's cost, charged when the job is created
POST /jobs/{id}/finalizeFree
GET /jobs, GET /jobs/{id}Free
POST /jobs/{id}/cancel, DELETE /jobs/{id}Free, and refund the job if it hadn't started processing
PUT to an uploadUrlFree

How a job's cost is set

A job's cost depends on the task type, not on the file size:

  • Most task types have a fixed price per job, set by your plan.
  • pdf-tampering-detection is priced per page: the per-page price × the pageCount you send.
  • face-intelligence is the sum of the checks you enable: faceswap 60, liveness 30, similarity 30.

The cost field on the job (returned by POST /jobs) is the exact amount charged.

When credits are charged and refunded

Credits are charged once, when the job is created (POST /jobs). If your balance is too low, the job isn't created and nothing is charged.

The full cost is refunded automatically when:

EventRefunded
You cancel the job (initiated or queued)Yes
You delete the job before it starts processingYes
The job is never finalized and its files never arrive (cleaned up after about 20 minutes)Yes
The job fails after its automatic retriesYes
The job completesNo
You delete a completed or failed jobNo (a failed job was already refunded)

Your credit history in Settings → Billing shows each charge and refund.

Pay-as-you-go

If pay-as-you-go is enabled on your account, jobs keep running when your credit balance runs out, and the usage is billed monthly up to your monthly limit. When the limit is reached, POST /jobs returns 402 PAYG_LIMIT_REACHED.

Request limits

There's currently no per-key quota on the number of API requests. Keep polling to every 3–5 seconds per job; limits may be introduced later, and when they are they'll be documented here with the error they return.

Credit errors

Both errors come from POST /jobs, use the standard error shape, and mean nothing was charged.

StatusnameMeaningWhat to do
402INSUFFICIENT_BALANCENot enough credits, and pay-as-you-go is offTop up in Settings → Billing, then retry
402PAYG_LIMIT_REACHEDThe monthly pay-as-you-go limit is reachedRaise the limit or wait for the next billing month

Don't retry these errors in a loop: they won't succeed until the balance or limit changes. Alert your team instead.

Monitoring usage

Settings → Billing shows your current balance, pay-as-you-go usage, and the history of charges and refunds. If you run batch pipelines, check the balance before a large batch so it doesn't stop halfway.

Next steps