Для AI-агентов: markdown этой страницы — /docs-content/cowork/me.md индекс документации — /llms.txt
Сводка по подписке Cowork/Code
GET /v1/cowork/me
Возвращает краткое состояние подписки Cowork/Code: тариф, состояние подписки и расход трёх окон квоты в процентах. Облегчённый вариант полного состояния — без рекомендаций и каталога тарифов.
Примеры
curl — личный ключ
curl https://vibecode.bitrix24.tech/v1/cowork/me \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl https://vibecode.bitrix24.tech/v1/cowork/me \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/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}: месяц ${quotaPct.month}%, неделя ${quotaPct.week}%, 5ч ${quotaPct.fiveHour}%`)
}
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/cowork/me', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const me = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
portal |
object | Портал Битрикс24, к которому относятся тариф и квота в ответе. Ключ привязан к одному порталу навсегда, а у человека с несколькими порталами на каждом своя подписка. Приходит в каждом успешном ответе |
portal.id |
string | Идентификатор портала на платформе Вайбкод. Совпадает с portalId в самоописании ключа |
portal.domain |
string или null | Домен портала. null приходит, только если записи портала на платформе уже нет |
b24Credentials |
object | Есть ли у ключа доступ к данным портала Битрикс24. Ответ — в поле ready. При ready: false дополнительно приходит reason, а для тарифных причин могут прийти paywallCode и upgradeUrl. Поле hint приходит, когда состояние доступа стоит перечитать. Блока нет у ключа приложения и у ключа без скоупов Битрикс24 — там признак неприменим. Значения reason и что делать по каждому — Коды ошибок |
b24Credentials.ready |
boolean | true — ключ может вызывать методы Битрикс24, false — не может, и любой запрос к данным портала ответит 401 TOKEN_MISSING |
tier |
string | Текущий тариф: FREE, PRO, MAX, ULTRA |
state |
string | Состояние подписки: ACTIVE, PAUSED, CANCELLED, PARKED. Доступ к Cowork/Code даёт только ACTIVE, поэтому незнакомое значение тоже означает, что доступа нет |
quotaPct.fiveHour |
number | 5-часовое окно, использование в процентах (целое 0–100) |
quotaPct.week |
number | Недельное окно, использование в процентах (целое 0–100) |
quotaPct.month |
number | Месячное окно, использование в процентах (целое 0–100) |
resetAt.fiveHour |
string | Время сброса 5-часового окна (ISO 8601) |
resetAt.week |
string | Время сброса недельного окна (ISO 8601) |
resetAt.month |
string | Время сброса месячного окна — конец расчётного периода (ISO 8601) |
nextChargeAt |
string или null | Дата следующего списания, null для тарифа FREE. У места в состоянии PARKED — дата окончания оплаченного срока, списания в неё нет |
offPeak |
object | Выгодные часы: действует ли скидка сейчас и когда начнётся ближайшая. Состав блока — Выгодные часы в подписке Cowork/Code |
relief |
object | Компенсации квоты: когда поддержка платформы сбрасывала счётчики расхода и когда выдавала временное увеличение лимитов. Внутри блока оба поля есть всегда |
relief.resetGrantedAt |
string или null | Когда счётчики расхода сбросили, с точностью до часа (ISO 8601). null, если сброса не было, а также если отметке больше 7 суток |
relief.boostGrantedAt |
string или null | Когда выдали временное увеличение лимитов, с точностью до часа (ISO 8601). null, если увеличения не выдавали, если отметке больше 7 суток и если увеличение уже закончилось. Пустое значение не означает, что увеличения нет, — смотрите boostPct |
boostPct |
integer | Временное увеличение лимитов в процентах, выданное поддержкой платформы (100 = лимиты вдвое). 0 — увеличения нет. Все доли quotaPct уже посчитаны с его учётом |
boostExpiresAt |
string или null | Момент, когда временное увеличение закончится. null, если увеличения нет |
Ключ offPeak приходит в каждом успешном ответе.
Ключи relief, boostPct и boostExpiresAt приходят в каждом успешном ответе. null внутри блока — это отдельный смысл, а не отсутствие данных.
Пример ответа
{
"portal": {
"id": "d41f0b93-6c85-42e7-9a13-58bd0e7c2f46",
"domain": "mycompany.bitrix24.ru"
},
"b24Credentials": {
"ready": true
},
"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,
"offPeak": {
"enabled": true,
"visible": "now",
"timezone": "Europe/Moscow",
"currentMultiplier": 0.5,
"currentWindowEndsInHours": 6,
"nextAtOrBelow": { "inHours": 1, "multiplier": 0.5 },
"perModel": false,
"modelName": null,
"nowCell": { "dow": 1, "hour": 3 }
},
"relief": {
"resetGrantedAt": "2026-06-09T12:00:00.000Z",
"boostGrantedAt": null
},
"boostPct": 100,
"boostExpiresAt": "2026-06-28T00:00:00.000Z"
}
Пример ответа при ошибке
404 — подписка не активирована:
{
"success": false,
"error": {
"code": "COWORK_NOT_ACTIVATED",
"message": "No active Cowork/Code subscription for this user+portal"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Ключ не опознан: такой строки на платформе нет |
| 403 | INSUFFICIENT_SCOPE |
У ключа нет скоупа vibe:cowork |
| 404 | COWORK_NOT_ACTIVATED |
Подписка Cowork/Code не найдена для пары пользователь и портал |
| 500 | INVALID_TIER_CONFIGURATION |
Конфигурация тарифов на платформе некорректна |
| 503 | COWORK_FEATURE_DISABLED |
Cowork/Code отключён на уровне платформы |
Полный список общих ошибок API — Ошибки.
Известные особенности
Успешный ответ (200) — это сам объект, без обёртки success. Ошибки приходят в конверте { success: false, error: { code, message } }. Определяйте успех по HTTP-статусу (res.ok).
Эндпоинт отдаёт только проценты. Признака исчерпания (exhausted), серверного времени и рекомендаций здесь нет — для них используйте полное состояние.
PARKED — место без активного владельца. Платное место переходит в это состояние, когда его владелец перестаёт быть активным участником портала, а оплаченный срок ещё не закончился. За такое место ничего не списывается, а тариф и оплаченный срок сохраняются. Администратор портала может передать место другому сотруднику. В течение суток после окончания оплаченного срока место переходит в PAUSED.
Блок выгодных часов приходит без сетки. Сетка множителей по часам недели и доля сэкономленного за период отдаются только в полном состоянии — здесь остаётся решение о текущем часе и о ближайшем выгодном.
Пустое relief.boostGrantedAt не означает, что увеличения лимитов нет. Отметка нужна для разового уведомления и видна 7 суток, а само увеличение выдают на срок до 30 суток. Увеличение, выданное больше семи суток назад, отдаёт пустую отметку и при этом продолжает действовать. Действует увеличение или нет, показывает только boostPct.
Значение блока relief совпадает с тем, что отдаёт полное состояние. Отметку, о которой вы уже сообщили пользователю, запоминайте один раз на приложение, а не отдельно по каждому эндпоинту, иначе одна компенсация будет показана дважды. Уведомляйте только когда пришло непустое значение, отличное от запомненного: сервер намеренно переводит отметку в null (закрылось окно видимости, истёк или отозван буст, место передали), и правило «изменилось — покажи» дало бы ложное уведомление на каждом таком переходе.