[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-infra\u002Faccess-tokens\u002Flist":3,"docs-tabs-infra\u002Faccess-tokens\u002Flist":6},{"content":4,"lastmod":5},"\n## Список токенов сервера\n\n`GET \u002Fv1\u002Finfra\u002Fservers\u002F:id\u002Faccess-tokens`\n\nВозвращает токены сервера с фильтрацией по статусу. По умолчанию — только активные.\n\n## Параметры\n\n| Параметр | В | Тип | Обяз. | Описание |\n|----------|---|-----|:-----:|----------|\n| `id` | path | string (UUID) | да | ID BLACKHOLE-сервера |\n| `status` | query | string | нет | Фильтр: `active` (по умолч.) \\| `expired` \\| `revoked` \\| `all` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -H \"X-Api-Key: YOUR_API_KEY\" \\\n  \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002FSERVER_ID\u002Faccess-tokens?status=active\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002FSERVER_ID\u002Faccess-tokens?status=all\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002F${serverId}\u002Faccess-tokens?status=active`,\n  { headers: { 'X-Api-Key': 'YOUR_API_KEY' } }\n)\nconst { data } = await res.json()\nconsole.log(`Активных токенов: ${data.tokens.length} \u002F ${data.limits.activeCountMax}`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch(\n  `https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Finfra\u002Fservers\u002F${serverId}\u002Faccess-tokens`,\n  {\n    headers: {\n      'X-Api-Key': 'YOUR_APP_KEY',\n      'Authorization': 'Bearer USER_SESSION_TOKEN',\n    },\n  }\n)\nconst { data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|----------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data.tokens` | array | Массив токенов |\n| `data.tokens[].id` | string | ID токена |\n| `data.tokens[].mode` | string | `\"api-bearer\"` или `\"share-url\"` |\n| `data.tokens[].name` | string \\| null | Метка токена |\n| `data.tokens[].identityBound` | boolean | Для `api-bearer` всегда `true`, для `share-url` — требуется ли вход через Битрикс24 |\n| `data.tokens[].shortcode` | string \\| null | Код ссылки для `share-url`, `null` для `api-bearer` |\n| `data.tokens[].expiresAt` | string (ISO 8601) | Момент истечения |\n| `data.tokens[].revokedAt` | string (ISO 8601) \\| null | Момент отзыва, `null` если не отозван |\n| `data.tokens[].createdAt` | string (ISO 8601) | Момент выпуска |\n| `data.tokens[].lastUsedAt` | string (ISO 8601) \\| null | Последнее использование |\n| `data.tokens[].sessionCount` | number | Число сессий, созданных через этот токен |\n| `data.tokens[].createdBy.id` | string | ID пользователя, выпустившего токен |\n| `data.tokens[].createdBy.name` | string | Имя пользователя |\n| `data.tokens[].createdBy.email` | string | Email пользователя |\n| `data.limits.activeCount` | number | Текущее число активных токенов сервера |\n| `data.limits.activeCountMax` | number | Лимит активных токенов на сервер (100) |\n| `data.limits.mintRateLimitPerHour` | number | Лимит выпусков в час на API-ключ (50) |\n| `data.limits.mintsLastHour` | number | Количество выпущенных токенов за последний час по данному API-ключу |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"tokens\": [\n      {\n        \"id\": \"tk_7d3fa2b1\",\n        \"mode\": \"api-bearer\",\n        \"name\": \"ci-smoke\",\n        \"identityBound\": true,\n        \"shortcode\": null,\n        \"expiresAt\": \"2026-05-18T10:50:00.000Z\",\n        \"revokedAt\": null,\n        \"createdAt\": \"2026-05-18T10:40:00.000Z\",\n        \"lastUsedAt\": \"2026-05-18T10:41:30.000Z\",\n        \"sessionCount\": 1,\n        \"createdBy\": { \"id\": \"usr_abc123\", \"name\": \"Иван Петров\", \"email\": \"ivan@example.bitrix24.ru\" }\n      },\n      {\n        \"id\": \"tk_8e4gb3c2\",\n        \"mode\": \"share-url\",\n        \"name\": \"предпросмотр\",\n        \"identityBound\": false,\n        \"shortcode\": \"R8k3Zm2P\",\n        \"expiresAt\": \"2026-06-17T08:44:00.000Z\",\n        \"revokedAt\": null,\n        \"createdAt\": \"2026-05-18T08:44:00.000Z\",\n        \"lastUsedAt\": null,\n        \"sessionCount\": 0,\n        \"createdBy\": { \"id\": \"usr_abc123\", \"name\": \"Иван Петров\", \"email\": \"ivan@example.bitrix24.ru\" }\n      }\n    ],\n    \"limits\": {\n      \"activeCount\": 2,\n      \"activeCountMax\": 100,\n      \"mintRateLimitPerHour\": 50,\n      \"mintsLastHour\": 1\n    }\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n404 — сервер не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SERVER_NOT_FOUND\",\n    \"message\": \"Server not found\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|----------|\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный или просроченный API-ключ |\n| 403 | `TOKEN_OWNER_MISMATCH` | Сервер принадлежит другому API-ключу |\n| 404 | `SERVER_NOT_FOUND` | Сервер не найден или удалён |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n- **Поле `token` (JWT) не включается в список.** Значение JWT возвращается только при выпуске токена.\n- **`status=all` возвращает истёкшие и отозванные токены.** Статус токена определяется по полям `revokedAt` (не `null` → отозван) и `expiresAt` (меньше текущего времени → истёк).\n- **Список ограничен 500 токенами.** Фильтр `status` сужает выборку до нужной категории.\n\n## Смотрите также\n\n- [Выпустить токен](.\u002Fcreate.md)\n- [Отозвать токен](.\u002Fdelete.md)\n- [Токены доступа](\u002Fdocs\u002Finfra\u002Faccess-tokens)\n","2026-06-29",{}]