Skip to content

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.

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.

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.

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.

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.

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.

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.