The price
The price is per one million tokens.
Input and output have the same price. There is no separate price per model, plan, or feature. Your organization can have a different price by agreement. The
cost field on each charge is the exact amount that was charged.
What counts as input and output
The table below says what is counted for each call.
The memories that the agent reads to answer are not counted. You pay for what you send and what you receive.
How tokens are counted
Priors counts the words in the text and multiplies by 1.3. One English word is about 1.3 tokens. You do not need a tokenizer.- 1,000,000 tokens cost 10,000 credits.
- 1 word costs 0.013 credits.
- 1,000 words in and 1,000 words out cost 26 credits.
What is never charged
- Creating, reading, changing, and deleting agents and threads.
- Listing anything. Polling a status. Reading the balance.
- A request that fails. If the response is an error, nothing is charged.
- A file that is refused: too large, password protected, unsupported, or a duplicate of a file this thread already has.
- A request you send again with the same
request_id(or the sameturn_idonchat). It is charged once. - A message or file piece that could not be learned. The input side is refunded, and
refunded_creditson the learning report says how much. An answer that Priors wrote and delivered stays charged. - Learning that a Priors restart paused. It resumes with nothing charged again.
- The part of a stopped upload that was already learned. Finishing it with
finish-learningcharges only what is left.
Examples
When a charge happens
- Before the request runs, Priors checks that the balance is above zero.
- The request runs.
- If the request succeeded, Priors writes the cost to the ledger.
When the balance is zero
Every request that costs credits returns402:
- Free calls still work: list agents, read threads, poll a status, read the balance.
- Nothing is deleted or paused. The memory stays.
- After you add credits, the same requests succeed again. Nothing else changes.
402 in front of a user, watch low_credit_threshold (see below) and warn the user early.
Read the balance and the charges
Any key of your organization can read this.
503 service_unavailable means the ledger did not respond; wait, then try again. This call works when the balance is zero.
How to keep costs predictable
- Send
detail: briefon answering calls when a short answer is enough. It lowers the output side without cutting the text. - Set
max_context_charswhen you need a hard limit. It caps the output side by trimming the text. - Send old messages in
observecalls of up to 100 observations. The price is the same, and you make fewer calls. - Upload each document once. A duplicate is free, and a duplicate from another thread is refused rather than charged. A file exported again with different bytes is a new document.
- Count the words before you send. The input cost is
words × 0.013.