For AI agents: markdown of this page — /docs-content-en/cowork.md documentation index — /llms.txt
Cowork/Code subscription
Cowork/Code is a single subscription: the desktop app, Code mode, and autonomous agents share one artificial intelligence (AI) quota. The section endpoints report the current subscription state — the tier, quota usage across three windows as a percentage, and advice on when to wait for a reset or move to a higher tier. The subscription covers AI only, and only while it is connected and active: the agent's own server is paid for separately, from the account wallet.
Scope: vibe:cowork | Base URL: https://vibecode.bitrix24.com/v1 | Authorization: X-Api-Key
Three quota windows | Tiers | How to start | Quick start | Full example | Endpoint reference | Error codes
What Cowork/Code is
One subscription gives one quota for AI requests — three tools spend it from a shared balance:
- Cowork — a desktop app with an AI assistant for working with a Bitrix24 account.
- Code — a mode for writing and publishing applications inside the desktop app.
- AI Agent — autonomous AI agents.
The quota covers AI only, and only while the subscription is connected and active. The agent's own server is paid for separately, from the account wallet.
Advantages of a single subscription:
- A shared balance across three tools instead of separate limits.
- The free tier is active immediately — no payment is required to start.
- Usage is shown as a percentage, with no overuse — the limit is predictable.
- Scales through tiers
×1→×5→×20as tasks grow.
While the subscription is connected and active, agents and Code mode spend its quota automatically — nothing needs to be configured separately. The AI agent's own server, meanwhile, is paid for from the account wallet and is not included in the subscription quota.
Three quota windows
Quota usage is counted at the same time across three nested windows:
| Window | Purpose |
|---|---|
| 5 hours | limits short-term bursts |
| Week | mid-term limit |
| Month | matches the subscription billing period |
Work is blocked when any of the windows is exhausted. Each window has a usage percentage and a reset time. Absolute quota numbers are not exposed — both /v1/cowork/state and /v1/cowork/me show percentages only.
Tiers
| Tier | Multiplier | Quota volume |
|---|---|---|
| Free | — | base quota, active immediately |
| Pro | ×1 |
base paid volume |
| Max | ×5 |
five times more volume than Pro |
| Ultra | ×20 |
twenty times more volume than Pro |
The ×N multiplier sets the quota volume across all three windows relative to the Pro tier (×1). Each tier's price is returned separately, in the feeVibes field (in Vibe credits per month), and is current as of the request.
How to start
- Open the Cowork/Code section in your dashboard.
- The free tier is active immediately — the quota is available without any setup.
- If you need more quota, pick the Pro, Max, or Ultra tier.
- To call the endpoints of this section, use an authorization key with the
vibe:coworkscope — pass it in theX-Api-Keyheader. - Agents and Code mode use this subscription's quota automatically, while it is connected and active.
More on keys and scopes — Keys and authorization.
Quick start
The current subscription state in a single request:
curl https://vibecode.bitrix24.com/v1/cowork/state \
-H "X-Api-Key: YOUR_API_KEY"
{
"subscription": { "tier": "FREE", "state": "ACTIVE", "nextChargeAt": null, "cancelAtPeriodEnd": false },
"windows": {
"fiveHour": { "pctUsed": 40, "resetAt": "2026-06-09T17:30:00.000Z", "exhausted": false },
"week": { "pctUsed": 24, "resetAt": "2026-06-12T09:00:00.000Z", "exhausted": false },
"month": { "pctUsed": 20, "resetAt": "2026-07-01T00:00:00.000Z", "exhausted": false }
},
"bottleneck": "fiveHour",
"recommendation": { "reason": "none", "upgrade": { "available": true, "nextTier": "PRO" } }
}
Full example: tracking the quota
The script polls the subscription state and reacts to approaching the limit and to quota exhaustion.
const BASE = 'https://vibecode.bitrix24.com/v1'
const API_KEY = process.env.VIBE_KEY
async function checkQuota() {
const res = await fetch(`${BASE}/cowork/state`, {
headers: { 'X-Api-Key': API_KEY },
})
if (!res.ok) {
const { error } = await res.json()
console.error('Cowork/Code:', error.code, error.message)
return
}
const state = await res.json()
const { windows, bottleneck, recommendation } = state
// The busiest window
const tight = windows[bottleneck]
console.log(`Window ${bottleneck}: ${tight.pctUsed}%`)
// Quota exhausted — show when work can resume
if (recommendation.wait) {
const seconds = Math.ceil((new Date(recommendation.wait.resetAt) - new Date(state.serverTime)) / 1000)
console.log(`Limit exhausted, reset in ${seconds} s`)
}
// Approaching the limit — suggest a higher tier
if (recommendation.reason === 'approaching' && recommendation.upgrade.nextTier) {
console.log(`Consider moving to the ${recommendation.upgrade.nextTier} tier`)
}
}
// Poll once every 30 seconds
setInterval(checkQuota, 30_000)
checkQuota()
Endpoint reference
| Method | Path | Description |
|---|---|---|
| GET | /v1/cowork/state | Full state: quota windows, recommendation, tier catalog |
| GET | /v1/cowork/me | Short summary: tier, state, quota percentages |
| POST | /v1/cowork/deploy-key | Project key with deploy rights (scopes vibe:infra + vibe:storage, 7 days) |
An interactive method switcher with examples and response fields — Endpoints.
Error codes
| HTTP | Code | Description |
|---|---|---|
| 401 | MISSING_API_KEY |
The X-Api-Key header was not passed |
| 401 | INVALID_API_KEY |
Invalid API key |
| 403 | INSUFFICIENT_SCOPE |
The key lacks the vibe:cowork scope |
| 404 | COWORK_NOT_ACTIVATED |
No Cowork/Code subscription found for the user and portal |
| 500 | INVALID_TIER_CONFIGURATION |
The tier configuration on the platform is invalid |
| 503 | COWORK_FEATURE_DISABLED |
Cowork/Code is disabled at the platform level |
The full list of common API errors — Errors.