Billing and credits
siema_ai is prepaid. Your organisation has a balance in PLN; every request
subtracts its cost; when the balance is not positive, requests fail with
402 insufficient_quota until you top up. There are no subscriptions, minimums
or monthly fees.
Trial balance
Section titled “Trial balance”After you confirm your email, your organisation receives a small trial balance (10.00 PLN at the time of writing, configurable; the console shows the current amount). One trial per user.
Topping up
Section titled “Topping up”Open Billing in the console and choose an amount between 20.00 and 10 000.00 PLN. You are redirected to PayU, where you can pay with BLIK, a card or a bank transfer. When PayU confirms the payment the balance updates, usually within seconds; bank transfers can take longer. The Billing page lists every payment with its status.
Every payment is recorded with everything an invoice needs — amount, date, payer details, payment reference. siema_ai does not issue VAT invoices.
How a request is priced
Section titled “How a request is priced”Each model has an input price and an output price per one million tokens,
published by GET /v1/models in micro-PLN (1 PLN = 1 000 000 micro-PLN). The
cost of a request is:
cost = ceil(prompt_tokens × input_price_per_1M / 1 000 000) + ceil(completion_tokens × output_price_per_1M / 1 000 000)Each part is rounded up to the next micro-złoty (one millionth of a złoty),
so a request can never cost exactly zero if it used any tokens. The
usage object in the response holds the token counts we bill. Embeddings have
only the input part. The price applied is the one in effect when the request
started; a later price change never applies retroactively.
Example using the seeded polish-pro placeholder prices (1.50 PLN per million
input tokens, 3.00 PLN per million output tokens): a request with 2 000 prompt
tokens and 500 completion tokens costs 3 000 + 1 500 = 4 500 micro-PLN. At
10 000 such requests, that’s 45.00 PLN.
Failed requests
Section titled “Failed requests”Requests rejected before reaching a model server — a bad request, an empty balance, an unknown model, a rate limit, no capacity, or a gateway error checking your balance — cost nothing. A failure before the model server sends any reply — a connection error, a first-byte timeout, or an upstream 4xx/5xx before the first byte — also costs nothing. A non-streaming request that fails after the model server started sending its reply is charged the estimated input tokens, and so is a client disconnect at any point after the request reached the model server, including during a cold start before any reply has begun. If you disconnect only after the model’s full reply had already reached the gateway — it just couldn’t be written back to you — you’re charged the full usage for that reply, the same as a completed request. A stream that fails mid-way, or that you disconnect, is charged for the tokens produced up to that point, using an estimate; see Streaming and Errors.
When the balance reaches zero
Section titled “When the balance reaches zero”The gateway checks the balance before each request. Because the balance is
updated a moment after each request finishes, a burst of parallel requests can
take the balance slightly below zero. The negative balance stands and blocks
further requests until your next top-up, which is added to it rather than
zeroing it out first. New requests fail with 402 insufficient_quota within a
second of the balance reaching zero.
Where OpenAI reports an exhausted quota as HTTP 429, siema_ai returns 402
instead, so the official SDKs raise it immediately rather than retrying it
like a rate limit. Detect it by status code 402 or by
error.type == "insufficient_quota"; the SDKs do not retry it. See
Errors for the full picture.
The Overview page shows a warning when the balance drops below 5.00 PLN.
Seeing what you spent
Section titled “Seeing what you spent”Usage in the console shows spend per day and per model, and a table of recent requests with model, tokens, latency, status and cost. Usage metadata is kept for 13 months.