Skip to content
XICBOT

Settings

Deutsch
Documentation · Account, plans, privacy

Plans, quotas and billing

The Start, Pro and Custom plans with limits and features, the monthly quota with warning threshold and throttling, and every field under Billing.

In plain language

This page explains plans and billing. There are three plans with different limits. Every account has a quota for one month. You see how much of it is already used. From a certain level, the bar changes colour. The page explains what happens from that level on. It also explains every field under Billing. Prices are on a separate page.

Last updated

All documentation topics

The Billing page at app.xicbot.de/abrechnung shows which plan your account is on, how much of the monthly quota has been used and which line items an invoice is made up of. This page covers the three plans Start, Pro and Custom with their limits and features, the monthly quota with its warning threshold and throttling, and every field of the view. Prices are listed separately under Pricing.

Plans and their limits

The limits appear in the Billing view under Plan limits, with the same names as in this table. If an account carries a plan the service does not recognise, the Start limits apply, and the view notes this below the usage bar.

LimitStartProCustom
Seats31050
Assistants1525
Knowledge sources1050250
Documents2002,00020,000
Sections4,00040,000400,000
Units per month500,0003,000,000stored for your account
Requests per minute2060stored for your account
Conversation exportYesYesYes
  • Seats count the people in the account plus any open invitations. An invitation takes up its seat before it has been accepted, see Team and roles.
  • Assistants and Knowledge sources count every entry in the account, whatever its status.
  • Documents and Sections only come into being when a source is read in; how many depends on the size of the source. Details are under Knowledge.
  • Units per month is the monthly quota, explained under Monthly quota.
  • Requests per minute caps calls from the chat window per visitor, explained under Requests per minute.

When a count limit applies

The service checks the limits for seats, assistants, knowledge sources, documents and sections before anything is created. A limit counts as reached as soon as the existing number equals it: on Start, the first assistant already reaches the limit of 1, so a second one cannot be created.

ActionLimits checkedMinimum role
Create an assistantAssistantsEdit
Create a knowledge sourceKnowledge sources, Documents, SectionsEdit
Refresh a source with Re-readDocuments, SectionsEdit
Invite a personSeatsAdministration
  • Documents and sections are only created while a source is read in. Before a source is created and before it is read in again, the check therefore asks whether the limit has already been reached. After reading in, the service checks the new count a second time before it takes effect: if an intake or refresh would increase the documents or sections and take them past the limit, it is not applied, and the previous state of the source is kept. This also applies to refreshes in the background.
  • Entries above a limit are kept, for example after a move to a smaller plan. Only creating new ones is blocked.
  • To make room, delete knowledge sources you no longer need (role Edit) or assistants (role Administration), or withdraw an open invitation (role Administration). Deleted entries no longer count, and removing a knowledge source also removes its documents and sections.
CaseMessage in the app
Limit reached“The Start plan limit is reached: 1 of 1. See Billing for the overview.” Your plan name and your figures appear in place of “Start” and the numbers.
Any other refusal by the plan“Your plan does not cover this. See Billing for the overview.”
Count could not be taken“The service reported an error. Please try again later.” Nothing is created in this case.
Reading in would take Documents or Sections past the limitThe source shows not indexed with “Taking in this source would exceed your plan's limit for documents or sections. The previous state is kept. The overview is under Billing.”
Count could not be taken while reading inThe source shows not indexed with “The content count of your account could not be determined, so this intake was not applied. The previous state is kept. Please try again later.”

Through the API, a reached limit returns status 402 with plan_limit_reached, plus limit naming the limit (such as assistants or seats), allowed, used, plan and plan_name. If the count cannot be taken, the response is 503 with plan_limit_unmeasured. POST /api/v1/integration/knowledge/sources, which creates a source with an API key, checks the same limits for knowledge sources, documents and sections.

Plan features

Besides count limits, features unlock entire areas. Which features an account has depends solely on its plan; the role additionally decides who may use the area.

AreaLocked without the featureIncluded in
Catalogue under ToolsThe Catalogue tab including the Shop connection. The tab stays visible and shows the notice instead of its content. See Catalogue and shop.Pro, Custom
AnalyticsThe Analytics page. On the Overview, the five key-figure tiles and Conversations per day read “Not in your plan”, with the notice and link below the tiles. Under Knowledge, Questions answered with the fallback answer shows only the notice sentence. See Analytics.Pro, Custom
Appointments and Baskets under CasesChanging the status in both tabs; the list and deleting remain, see Appointments and cases.Pro, Custom
InterfacesAPI keys and webhooks. The item sits in the Administration group and appears from the Administration role upwards. See API keys and webhooks.Custom
Own interface tool type and the calendar, ERP, catalogue, CRM and ticketing connections under ToolsThese types stay visible in the selection but cannot be chosen; a sentence below names the plan that includes them. An existing tool of one of these types can only be deleted and does not run in conversations. See Tools.Custom
Book appointment tool type under ToolsSame as for Own interface.Pro, Custom
Types Search the catalogue and Hand over basket under ToolsAs for Own interface. They depend on the same feature as the Catalogue tab, because they draw on the catalogue.Pro, Custom

Answers in several languages are not tied to any feature and are available on every plan, Start included. There is no limit for them and no separate line item per language: a reply counts against the quota with its units, whatever language it is written in.

Monthly quota

The quota under Units per month counts units (tokens): those sent to the language model and those it returns. Counting is per account and calendar month, across all assistants together. A new count starts on the first of each month, and the previous month stays listed under History.

  • Replies count in the chat window on your website, in the Test dialog, in Acceptance runs and through the API.
  • A Setup run counts with its units and as one reply.
  • A question under Check an answer on the Knowledge page counts with its units and as one reply whenever a model uses units to answer it. See Knowledge.
  • Messages in a conversation that a person has taken over do not count, because no model is asked there.
  • An answer from an active question and answer pair does not count: it goes out word for word without a model being asked. Once the quota is exhausted, however, such a question also gets the fallback answer. See Knowledge.
  • If the stored quota is 0, it is treated as exhausted from the start.

Before a reply is generated, the service reserves 2,500 units, or 12,000 for a setup run. A reservation is only made while usage is below the quota. Once the reply is done, the actual usage replaces the reservation; if no reply comes about, the reservation is released again. If a run is cut off before booking, the reservation stays in that month's usage. While a reply is running, its reservation is part of the usage shown. Because booking happens after the reply, usage can exceed the quota by the replies that ran last; the excess appears under Line items.

Warning threshold and throttling

The Warning threshold sits at 80 % of the quota, rounded up to whole units: 400,000 on Start and 2,400,000 on Pro. From there on, the assistant keeps answering in throttled mode. Throttling already applies to the reply whose reservation crosses the threshold, and it ends when the month changes or when a larger quota brings usage back below the threshold.

ValueNormalThrottled
Reply lengthup to 900 unitsup to 300 units
Tool rounds per replyup to 51
Model tierthe assistant's usual tiersmall model tier

Crossing the Warning threshold creates a notice for the people who run XICBOT; as long as usage stays above it, no further notice follows. If a single booking jumps past both the threshold and the quota, only the notice about the exhausted quota is created. These notices go to the operator, not to the users of your account. You can see where you stand under Billing in the notices at the top. To get a message yourself when the quota is reached, use the Budget exhausted webhook; see When the quota is exhausted.

When the quota is exhausted

The quota is exhausted as soon as usage reaches it. From then on the service asks no model and books nothing. What happens instead depends on the channel:

ChannelResult
Chat window and Test dialogThe assistant's Fallback answer is shown, see Assistants. Right after sending, the status line in the Test dialog and in Conversations reads “quota used up”. Once stored, the reply appears in Conversations with the state “blocked: quota used up or conversation message limit reached”, because reaching the maximum number of questions per conversation ends in the same state, see Conversations.
APIStatus 429 with quota_exhausted, plus the Retry-After header and retry_after holding the seconds until the month changes, at least 60. See API limits.
AcceptanceThe run does not start. The app reports “The quota for this month is used up. A run would book every line as not measurable.” See Testing and acceptance.
SetupThe run ends with an error before any model is asked. The app reports “The run failed: This month's quota is used up. The overview is under Billing.” See Setup.
Check an answer under KnowledgeIf the question needs a model, the app shows “This month's quota is used up. See Billing for the overview.” instead of an answer, or the same sentence in German for a German question. See Knowledge.
Quota this month card on the assistant“The quota is used up. Until the next month the assistant only returns the fallback answer.” See Assistants.

The API response looks like this; month is the current billing month, budget the quota and used the usage so far:

antwort.json json

{
  "error": "quota_exhausted",
  "scope": "month",
  "month": "2026-09",
  "budget": 500000,
  "used": 502140,
  "retry_after": 86400
}

If you have set up a webhook under Interfaces for the Budget exhausted event (budget.exhausted), you receive a message with month, budget and used at the booking that makes usage reach the quota. No further message follows while usage stays above it. Webhooks are part of Interfaces and are therefore only available on the Custom plan. See API keys and webhooks.

Replies resume as soon as the next month begins or the quota is raised above the current usage.

Requests per minute

Requests per minute caps how often a single visitor can call the chat window within one minute, for example to load its settings or the history. Calls are counted per visitor and additionally per conversation, and either counter can refuse. Sending questions has its own limits. All values and the response when a limit is exceeded are described under Widget delivery. API keys carry their own per-minute value per key, see API limits.

The Billing view

Billing sits in the sidebar in the Administration group, together with Team and Account. Every role can open it once the email address has been confirmed; until then it reads “This area stays locked until the email address is confirmed.” The page is headed Usage and billing with the sentence “The usage of the current month, the limits of your plan and the line items an invoice is built from.” It is for viewing only; nothing can be changed here. Below Payment follows the Change plan section: “The plan cannot be changed in the app; we switch it for your account. The change is requested by whoever signs for the account, by email to the address below. Please state the account name and the plan you want.” Below it are the address mail@xicbot.de as an email link with the subject “Plan change” and the account name, and the link What a change affects to this page. The section is shown even if the overview could not be loaded.

Notices at the top

StateNotice
Warning threshold reachedQuota almost used up. “Once the limit is reached, the assistant stops generating replies and visitors receive your fallback answer. Review your plan before you get there.” Followed by usage, quota and share, for example (412,300 / 500,000, 82 %).
Throttled, shown with the warning“The assistant keeps answering, but throttled: shorter replies on the small model tier and fewer tool rounds per reply.” Followed by (Reply length: 300, Tool rounds: 1).
Quota exhaustedQuota exhausted. “The assistant no longer generates replies: visitors receive your fallback answer and API requests are rejected with status 429. This applies until the next billing month starts or the plan is upgraded.” Followed by usage and quota, for example (502,140 / 500,000).

“Replies” here means replies from the model. What visitors and the API receive instead is described under When the quota is exhausted.

Usage

FieldContent
MonthThe current billing month, such as 2026-09.
Units billedUnits used in the current month, including the reservations of replies still running.
Replies billedNumber of replies that used units in the current month.
Remaining allowanceQuota minus usage; if usage is higher, the figure is 0. When the quota is exhausted, the figure is highlighted in red.
  • Below that, Plan shows your plan name, usage and quota (such as 412,300 / 500,000) and a bar with the share in whole percent, truncated rather than rounded and capped at 100. The bar changes colour from the warning threshold on and turns red once the quota is exhausted.
  • With a quota above 0, Warning threshold below the bar gives the number of units from which throttling applies. If your account has a plan the service does not recognise, it shows “This value could not be determined and is therefore not a result.” with the stored key in brackets.
  • The Warning threshold card lists the state for each measure, for example “412,300 of 500,000 · 82% · Warning threshold: 400,000”. Here, as on the bar and in the notice at the top, the share is truncated rather than rounded. The Replies billed row reads Not measured with the reason “No monthly quota of answers agreed. Usage is counted, not measured against a limit.”, since there is no limit for replies.
  • If the stored quota is 0, the Units billed row reads Not measured with the reason “No quota stored. There is nothing to warn about before the limit; the limit has already been reached.”

Plan limits

The Plan limits table has the columns Name and Value and lists the eight limits from Plans and their limits. Numbers are shown with thousands separators, Conversation export as Yes or No. For Units per month and Requests per minute, the table shows the values stored for your account on every plan.

Line items

Above the table, the Period runs from the first to the last day of the month, followed by the price basis, for example “Period: 01/09/2026 – 30/09/2026 · Amounts net of VAT”. The table has the columns Item, Quantity and Amount.

ItemQuantityAmount
“Start plan”, “Pro plan” or “Custom plan”1The monthly amount of the plan, see Pricing. For the Custom plan, it reads Not measured, with the reason “Operation priced by scope, not at a list price” below the item.
“Units above the quota”, only when usage exceeds the quotaUnits above the quotaNot measured, with the reason “No price per unit agreed. The additional usage is shown, not charged.” below the item.
  • Total adds up the amounts. If any item has no amount, it reads Not measured followed by “At least one agreed price is missing. The total is therefore not formed rather than invented.” This applies to the Custom plan and to every month with units above the quota.
  • Under Payment it says “No payment provider is connected. Billing happens outside this interface.” Nothing is paid and no invoice is triggered inside the app.

History

History shows up to 24 months, newest first and including the current one, with the columns Month, Units billed and Replies billed. Without any usage it reads “No usage recorded yet.”

When a limit is not enough

The plan cannot be changed inside the app; it is set for your account. To request a change, write to mail@xicbot.de; the email link for this is under Billing in the Change plan section. After the change, and as described in the note on stored values, the new limits apply to the next item you create and the new quota to the next reply. Usage in the current month carries on; an exhausted quota allows replies again once the new quota is above the usage.

API

GET /api/v1/billing

Returns period (from, to, month), tenant (id, name, billing_email, vat_id), package (key, name, scope, known), limits, usage with the quota state and the early warnings in warnings (token, messages), items with kind, label, amount, unit_cents, total_cents, measured, reason and reason_code, and finally currency, price_basis, total_cents, total_complete payment_provider and provider_customer_id (both currently null). Each early warning contains metric, used, limit, warn_share, warn_at, share, state (ok, warning or exhausted), measured, reason and reason_code. reason is a German sentence and reason_code the fixed code for it: price_by_scope, no_token_price, warn_share_invalid, no_budget or no_message_quota; without a reason both are null. kind is base_fee for the plan or overage for the units above the quota; label carries the German name of the item, such as Einheiten über dem Kontingent. label and reason stay German even when the interface is in English; the app names items by kind and reasons by reason_code. Your own software should evaluate these two fields as well.

Authentication
Signed in, confirmed email address, any role

GET /api/v1/billing/history

Returns months with up to 24 entries, newest first. Each one carries month, tokens_in, tokens_out, token (the sum of both) and messages.

Authentication
Signed in, confirmed email address, any role

GET /api/v1/usage

Returns usage with the state of the month: month, used, budget, remaining, messages, exhausted, warn_at, share, warning, throttled, reply_tokens, tool_rounds and level (ok, warning or exhausted).

Authentication
Signed in, confirmed email address, any role

Besides 402 for a missing feature or a reached limit, the plan check has two more answers. If the request belongs to no account, it returns 403 with no_tenant. If an endpoint checks a feature or limit that no plan knows, it returns 500 with plan_gate_misconfigured, plus feature, limit or kind naming it. That is an error on the XICBOT side. In both cases the request is not carried out; please report the second case to mail@xicbot.de.

Frequent questions

When does the quota start over?

On the first day of each calendar month. The previous month's usage stays listed under History.

What happens once 80 percent of the quota is used?

The assistant keeps answering, but with shorter replies, on the small model tier and with one tool round per reply. Billing shows “Quota almost used up.” Only when the quota is reached does the chat window receive nothing but the Fallback answer.

How do I get more seats or assistants?

Delete what you no longer need or withdraw open invitations. If that is not enough, a different plan is needed. It cannot be changed inside the app; write to us at mail@xicbot.de.

Why does Total read “Not measured”?

Because at least one item has no agreed price: the Custom plan or units above the quota. In that case no total is formed.

How can I tell through the API that the quota is exhausted?

API replies then come back with status 429 and quota_exhausted. A webhook for budget.exhausted (Custom plan) tells you at the booking that makes usage reach the quota. GET /api/v1/usage returns the current state.

Something still unclear?

Tell us which page and which step you mean. We reply personally.

Enquiry in three steps

  1. 1. Topic
  2. 2. Your case
  3. 3. Contact

What is this about?

One click is enough, everything else is optional.

Tell us briefly about your case

Everything in this step is optional. It helps us reply with something concrete straight away instead of asking back.

Enquiries per month, roughly (optional)
When should it start? (optional)
How can we reach you?

Name and email address are enough. We reply personally.

We use your details to handle your enquiry. More on this in the privacy policy.