Для AI-агентов: markdown этой страницы — /docs-content/cowork/me.md индекс документации — /llms.txt

Сводка по подписке Cowork/Code

GET /v1/cowork/me

Возвращает краткое состояние подписки Cowork/Code: тариф, состояние подписки и расход трёх окон квоты в процентах. Облегчённый вариант полного состояния — без рекомендаций и каталога тарифов.

Примеры

curl — личный ключ

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

curl — OAuth-приложение

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

JavaScript — личный ключ

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-приложение

javascript
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 внутри блока — это отдельный смысл, а не отсутствие данных.

Пример ответа

JSON
{
  "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 — подписка не активирована:

JSON
{
  "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 (закрылось окно видимости, истёк или отозван буст, место передали), и правило «изменилось — покажи» дало бы ложное уведомление на каждом таком переходе.

Смотрите также