Billing
How a request turns into a charge.
What you pay
Per token, at the prices published in the model list. No subscription, no per-request fee, no charge for a request that fails before the model runs.
Every response carries its own usage.cost in USD, and every request appears in Logs with its tokens, price and latency.
Prompt caching
Agents resend the same system prompt and tool definitions on every turn. One coding-agent task might be eight requests whose prompts are 95% identical — and you would pay full price for that repetition eight times.
So we cache it for you. On any model with supports_caching: true, the stable part of a request — the system prompt and the tool list — is marked cacheable. The first request pays the provider's cache-write rate, and the next few minutes of requests pay the cache-read rate, which is a fraction of the input price. Nothing to switch on, and nothing to change in your code.
| Without caching | With caching | |
|---|---|---|
| A ~2,000-token prompt, sent twice | $0.001554 | $0.000241 |
Measured on Amazon Nova 2 Lite, which writes to the cache for free and reads at a quarter of the input price. Anthropic models read at a tenth and write at 1.25×, so they pay caching back from the second request on. Every model's exact rates are AWS's published ones, marked up like any other token.
Responses report it the way OpenAI does: prompt_tokens is the whole prompt, and prompt_tokens_details.cached_tokens is how much of it came from cache. Logs shows the same split per request.
If a model turns out not to accept a cache point, the request is retried without it rather than failing. The worst case is the price you would have paid anyway.
Reservations
Before a request reaches the model we reserve the most it could cost: the prompt, plus max_tokens of output at that model's price. When the request finishes, the reservation is released and the real usage is charged.
Two consequences worth knowing:
- A request can be refused for insufficient credits even though the reply would have been cheap, because the reservation covers the worst case.
- If your balance cannot cover
max_tokens, we lower it to what you can afford rather than refusing outright. Setmax_tokensyourself if you would rather control that.
Credits
Top up under Credits. The minimum is $5 and the maximum is $5,000 in one go. A 4% platform fee is added on top of the credits you buy, shown before you pay, and it covers card processing.
Credits do not expire. See Pricing for the full breakdown.
Bring your own key
Connect your own AWS account under BYOK and requests run on your Bedrock capacity instead of ours. AWS bills you for the tokens directly and Sothe charges no credits for them, so those responses come back with a cost of 0 and "byok": true in usage. One AWS key covers the whole catalog, because every model we serve runs on Bedrock.
Your key is always tried first. If AWS rejects it, throttles it, or the model is not enabled in your account, the request either falls back to your Sothe credits or fails with 502 byok_request_failed — whichever you chose under Fall back to Sothe credits. The switch happens before any tokens are generated, so nothing is ever paid for twice.
Guardrail model rules apply to BYOK requests like any other. Whether BYOK usage counts toward your spending limits is the Include BYOK spend setting under workspace settings.
Spend controls
- Key credit limit — a lifetime cap on one key's spend.
- Workspace budget — a daily, weekly, monthly or lifetime cap across every key.
- Guardrails — a spend cap plus a list of models a key may use. Set them under Guardrails.