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

Cowork/Code subscription summary

GET /v1/cowork/me

Returns a short state of the Cowork/Code subscription: the tier, the subscription state, and the usage of the three quota windows in percent. A lightweight version of the full state — without recommendations or the tier catalog.

Examples

curl — personal key

Terminal
curl https://vibecode.bitrix24.com/v1/cowork/me \
  -H "X-Api-Key: YOUR_API_KEY"

curl — OAuth application

Terminal
curl https://vibecode.bitrix24.com/v1/cowork/me \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

JavaScript — personal key

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/cowork/me', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

if (!res.ok) {
  const { error } = await res.json()
  console.error(error.code, error.message)
} else {
  const { tier, quotaPct } = await res.json()
  console.log(`Tier ${tier}: month ${quotaPct.month}%, week ${quotaPct.week}%, 5h ${quotaPct.fiveHour}%`)
}

JavaScript — OAuth application

javascript
const res = await fetch('https://vibecode.bitrix24.com/v1/cowork/me', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const me = await res.json()

Response fields

Field Type Description
tier string Current tier: FREE, PRO, MAX, ULTRA
state string Subscription state: ACTIVE, PAUSED, CANCELLED
quotaPct.fiveHour number 5-hour window, usage in percent (integer 0–100)
quotaPct.week number Weekly window, usage in percent (integer 0–100)
quotaPct.month number Monthly window, usage in percent (integer 0–100)
resetAt.fiveHour string Reset time of the 5-hour window (ISO 8601)
resetAt.week string Reset time of the weekly window (ISO 8601)
resetAt.month string Reset time of the monthly window — the end of the billing period (ISO 8601)
nextChargeAt string or null Date of the next charge, null for the FREE tier
offPeak object Off-peak hours: whether the discount applies now and when the next one starts. The composition of the block — Off-peak hours in the Cowork/Code subscription
relief object Quota relief: when platform support last reset the usage counters and when it last granted a temporary limit increase. Both fields inside the block are always present
relief.resetGrantedAt string or null When the usage counters were reset, to the hour (ISO 8601). null when no reset was granted, and also when the stamp is more than 7 days old
relief.boostGrantedAt string or null When a temporary limit increase was granted, to the hour (ISO 8601). null when none was granted, when the stamp is more than 7 days old, and when the increase has already ended. An empty value does not mean there is no increase — read boostPct
boostPct integer Temporary limit increase in percent granted by platform support (100 = double limits). 0 when none is active. Every quotaPct share already accounts for it
boostExpiresAt string or null When the temporary increase ends. null when none is active

The offPeak key arrives only when off-peak hours are switched on for the account. Until the capability is on, it is absent from the response body entirely, and the example below does not show it.

The relief, boostPct and boostExpiresAt keys arrive together and only when quota relief is switched on for the account. Until the capability is on for your platform, they are absent from the response body entirely, and the example below does not show them. Test for the presence of the key, not for its value: null inside the block carries a meaning of its own.

Response example

JSON
{
  "tier": "FREE",
  "state": "ACTIVE",
  "quotaPct": { "fiveHour": 40, "week": 24, "month": 20 },
  "resetAt": {
    "fiveHour": "2026-06-09T17:30:00.000Z",
    "week": "2026-06-12T09:00:00.000Z",
    "month": "2026-07-01T00:00:00.000Z"
  },
  "nextChargeAt": null
}

Error response example

404 — subscription not activated:

JSON
{
  "success": false,
  "error": {
    "code": "COWORK_NOT_ACTIVATED",
    "message": "No active Cowork/Code subscription for this user+portal"
  }
}

Errors

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 Bitrix24 account
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.

Known specifics

A successful response (200) is the object itself, without a success wrapper. Errors arrive in the envelope { success: false, error: { code, message } }. Determine success by the HTTP status (res.ok).

The endpoint returns percentages only. There is no exhaustion flag (exhausted), server time, or recommendations here — for those, use the full state.

The off-peak block arrives without the grid. The grid of multipliers by hour of the week and the share saved over the period are returned in the full state only — what stays here is the decision about the current hour and about the next off-peak one.

An empty relief.boostGrantedAt does not mean there is no limit increase. The stamp is there for a one-off notification and stays visible for 7 days, while an increase is granted for up to 30 days. An increase granted more than seven days ago reports an empty stamp and is still in effect. Only boostPct tells you whether an increase is in effect.

The value of the relief block matches what the full state returns. Store the stamp you have already reported to the user once per application, not separately per endpoint, or the same relief will be shown twice. Notify only when a non-empty value differs from the one you stored: the server deliberately turns a stamp into null (the visibility window closed, the increase expired or was revoked, the seat was handed over), so a plain «it changed — show it» rule would fire a false notice on every such transition.

See also