For AI agents: markdown of this page — /docs-content-en/ai/pricing.md documentation index — /llms.txt

AI request pricing

What makes up the price of a model call, what pays for it, and which refusals come back when there is nothing to pay for the call.

Current model prices and the consumed share of the quota are returned by the endpoints listed below.

Model prices

GET /v1/models returns the price of every model in the pricing object, and GET /v1/models/:modelId returns the price of a single model. All prices are in Vibes, the platform's internal currency.

Field What it charges for
Fieldpricing.prompt What it charges for1 million input tokens
Fieldpricing.completion What it charges for1 million response tokens
Fieldpricing.perMinute What it charges forOne minute of audio. Present only when greater than 0
Fieldpricing.perCall What it charges forOne call. Present only when greater than 0
Fieldpricing.unit What it charges forUnit of measure, always vibes

The speech recognition model is charged by perMinute and perCall, and its prompt and completion are 0. Zero prompt and completion values therefore do not mean the call is free: check all pricing fields.

What pays for a call

Key and model What pays
Key and modelPlatform model, regular API key What paysThe company's monthly AI quota, if the model is part of the quota program. Beyond the quota, if such spending is allowed for the Bitrix24 account, the account balance at the model's catalog price. A model outside the quota program is paid from the account balance at the catalog price
Key and modelPlatform model, Cowork/Code subscription key with the vibe:cowork scope What paysThe Cowork/Code subscription quota, while the subscription is connected and active. Such a call does not consume the company's monthly AI quota
Key and modelModel on your personal provider key (BYOK) What paysPaid directly to the provider at its rates. Nothing is charged to the account balance

A personal provider key is connected through POST /v1/ai/credentials. See Your own keys (BYOK) for details.

Company monthly AI quota

The quota is shared across the whole Bitrix24 account rather than tied to a single key: all of the company's API keys consume it. The API does not disclose the absolute quota size in Vibes. GET /v1/ai/quota shows the consumed share as a percentage, the reset date, and a per-model breakdown.

Only models included in the quota program consume the quota. Calls to other models appear in the breakdown with a request counter, but their quota share is 0.

When the quota is exhausted and spending beyond it cannot be paid for, the call is rejected with 402 ai_quota_exhausted. The reason field names the cause: breaker means the hourly circuit breaker on spending beyond the quota has tripped, wallet_empty means the account balance has no funds, wallet_off means spending beyond the quota is not available for the account.

Even consumption and off-peak hours

In addition to the monthly limit, a Bitrix24 account may have daily and weekly windows: shares of the monthly quota that cannot be exceeded within a day or a week. They do not reduce the quota, they spread its consumption across the month. The state of the windows is returned in the pacing field of the GET /v1/ai/quota response. That page also describes how the platform can react when a window is exceeded. When a window is breached and the call cannot go through as a paid overage, it is rejected with 429 ai_pacing_limited.

During off-peak hours the same call takes a smaller share of the quota. GET /v1/off-peak returns the schedule by hour of the week. The discount applies only to quota consumption: payment from the account balance at the model price gets no discount. Moving deferred tasks to off-peak hours postpones both the exhaustion of the monthly quota and the tripping of the daily or weekly window.

Cowork/Code subscription

The subscription provides a single quota for AI requests, consumed jointly by the Cowork desktop app, Code mode, and autonomous AI agents. These tools have no separate limits: agent calls and desktop app sessions draw on one shared balance. Consumption is counted in three nested windows: 5 hours, a week, and a month. Plans and windows are described in Cowork/Code subscription.

The subscription quota covers only AI requests and only while the subscription is connected and active. The dedicated server the AI agent runs on is paid for separately, from the account wallet.

When one of the windows is exhausted, the call is rejected with 402 cowork_quota_exhausted. If a fallback model is configured on the platform, a 200 with a limit message may arrive instead of a refusal, and the request itself is not executed. See POST /v1/chat/completions for details. The refusal body names the window in the window field, the reset time in resetAt, and the higher plan in nextTier.

Payment refusals

HTTP Code When it arrives
HTTP402 Codeai_quota_exhausted When it arrivesThe company's monthly AI quota is exhausted and spending beyond it cannot be paid for
HTTP402 Codecowork_quota_exhausted When it arrivesOne of the Cowork/Code subscription quota windows is exhausted
HTTP402 Codecowork_subscription_inactive When it arrivesThe key with the vibe:cowork scope has no active Cowork/Code subscription
HTTP402 Codecompany_budget_exhausted When it arrivesThe spending budget set by the portal administrator is exhausted. Arrives only on calls that draw on the portal balance
HTTP402 Codeaccount_frozen When it arrivesThe billing account is frozen because of a negative balance
HTTP429 Codeai_pacing_limited When it arrivesThe daily or weekly even-consumption window is breached and paid overage is not available

The full list of common API errors: Errors.

The fields of each response and the steps to take are described in the error table of POST /v1/chat/completions. Request rate limits for models are unrelated to payment and are described on the Rate limits page.

Known specifics

A retired model is charged at its successor's price. If a call to a model in the DISABLED state was served by a successor model, the charge is at the successor's price, and pricing in the GET /v1/models/:modelId response shows that price. See Model lifecycle for details.

Reasoning tokens are paid as response tokens. For reasoning models these tokens are included in usage.completion_tokens and charged at the pricing.completion rate.

Check the quota before bulk processing. The pctUsed and exhausted fields in the GET /v1/ai/quota response let you warn the user in advance instead of waiting for a 402 refusal.

See also