
## 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](/docs/cowork/state) — without recommendations or the tier catalog.

## Examples

### curl — personal key

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

### curl — OAuth application

```bash
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 |

## 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](/docs/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](/docs/cowork/state).

## See also

- [Cowork/Code subscription state](/docs/cowork/state)
- [Cowork/Code](/docs/cowork)
- [Limits and optimization](/docs/optimization)
- [Errors](/docs/errors)
