Справочник операций управления ресурсами
Изменения в области владельца, постраничные записи и примеры точных десятичных сумм.
Отправляйте запросы на https://p-api.b2b-llm.com. Примеры иллюстрируют формат протокола; заменяйте ID и секреты значениями, выданными компании. Все суммы запросов и ответов остаются десятичными строками.
Authorization: Bearer mg_partner_...
Accept: application/json
Idempotency-Key: UNIQUE_LOGICAL_OPERATION
Заголовок Idempotency-Key обязателен для изменений, но не для GET только для чтения.
Передача и правила изменений
Каждая операция требует авторизации владельца. Изменения также требуют уникального Idempotency-Key; при неизвестном результате повторите исходные метод, путь и тело с тем же ключом. Окно повтора — семь дней. Учитывайте 429/Retry-After и сохраняйте X-Request-ID. Все ответы — JSON с no-store. Денежные строки остаются точными, время — UTC RFC3339. Неизвестные поля JSON/query отклоняются. Лимиты коллекций обычно 1–100; следуйте служебному курсору конкретной операции.
Создать ключ для запросов к моделям
Создайте ключ внутри активного проекта компании. Сразу сохраните возвращённый открытый секрет в хранилище приложения; обычный список его не вернёт. Для Business-ключей этого API владельцем полномочий является владелец компании.
Пример запроса
curl -X POST https://p-api.b2b-llm.com/api/v1/partner/keys \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
-H "Content-Type: application/json" \
-d '{
"name": "Service integration",
"group_id": "GROUP_PUBLIC_ID",
"rpm_limit": 30,
"concurrency_limit": 2,
"spend_limit": "20.0000000000",
"usage_price_basis": "official_price",
"usage_price_multiplier": "0.900000"
}'
Пример ответа
{
"data": {
"public_id": "KEY_PUBLIC_ID",
"group_id": "GROUP_PUBLIC_ID",
"name": "Service integration",
"key_prefix": "mg_live_ab12",
"key": "mg_live_ab12...",
"status": "active",
"rpm_limit": 30,
"concurrency_limit": 2,
"spend_limit": "20.0000000000",
"usage": "0.0000000000",
"total_spent": "0.0000000000",
"usage_price_basis": "official_price",
"usage_price_multiplier": "0.900000",
"effective_usage_price_basis": "official_price",
"effective_usage_price_multiplier": "0.900000"
}
}
Постраничный список ключей
Сначала идут новые ключи. Выберите limit от 1 до 100 и передавайте meta.next_cursor как cursor, пока meta.has_more равен true. Возвращаемый префикс служит отображению, не является пригодным секретом.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/keys \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{
"data": [
{
"public_id": "KEY_PUBLIC_ID",
"group_id": "GROUP_PUBLIC_ID",
"name": "Service integration",
"status": "active",
"spend_limit": "20.0000000000",
"usage": "3.2500000000",
"total_spent": "1.1400000000"
}
]
}
Просмотреть запись ключа
Обращайтесь к ключу по публичному ID. Ответ описывает его текущую конфигурацию и счётчики, не давая доступа к ключам другой компании.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{
"data": {
"public_id": "KEY_PUBLIC_ID",
"group_id": "GROUP_PUBLIC_ID",
"name": "Service integration",
"status": "active",
"rpm_limit": 30,
"concurrency_limit": 2,
"spend_limit": "20.0000000000",
"usage": "3.2500000000",
"total_spent": "1.1400000000",
"effective_usage_price_basis": "official_price",
"effective_usage_price_multiplier": "0.900000"
}
}
Изменить настройки ключа
PATCH изменяет только поддерживаемые переданные поля. Пустой group_id отсоединяет ключ; null для базы/коэффициента расчёта восстанавливает наследование. Перед удалением контекста проекта проверьте требования интеграций сотрудников.
Пример запроса
curl -X PATCH https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated user name",
"group_id": "GROUP_PUBLIC_ID",
"rpm_limit": 60,
"concurrency_limit": 4,
"spend_limit": "40.0000000000",
"usage_price_basis": null,
"usage_price_multiplier": null
}'
Пример ответа
{
"data": {
"public_id": "KEY_PUBLIC_ID",
"spend_limit": "40.0000000000",
"usage": "3.2500000000",
"effective_usage_price_basis": "user_price",
"effective_usage_price_multiplier": "1.000000"
}
}
Отозвать ключ
Используйте операцию только после определения затронутого приложения. Удаление или отзыв ключа не удаляет журнал кошелька или исторические подтверждённые списания.
Пример запроса
curl -X DELETE https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
Пример ответа
{"data":{"deleted":true}}
Приостановить и возобновить допуск
Заморозка останавливает новые запросы к моделям без перевыпуска секрета. Возобновление требует подтверждённого email владельца и действующих остальных правил аккаунта. Доступ замороженного ключа к каталогу не означает доступ к выполнению запросов.
Пример запроса
curl -X POST https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID/freeze \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
Пример ответа
{"data":{"public_id":"KEY_PUBLIC_ID","status":"frozen"}}
Пример запроса
curl -X POST https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID/unfreeze \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
Пример ответа
{"data":{"public_id":"KEY_PUBLIC_ID","status":"active"}}
Заменить секрет Bearer
Перевыпуск создаёт новый секрет для той же записи ключа. Безопасно обновите использующее его приложение и прекратите использование старого значения. Новый полный секрет нужно сохранить из этого ответа.
Пример запроса
curl -X POST https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID/rotate \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
Пример ответа
{
"data": {
"public_id": "KEY_PUBLIC_ID",
"status": "active",
"key_prefix": "mg_live_cd34",
"key": "mg_live_cd34..."
}
}
Начать новый бюджетный интервал ключа
Очищается только обнуляемый счётчик использования. Расходы за весь период и кошелёк компании не сбрасываются и не возвращаются.
Пример запроса
curl -X POST https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID/reset-usage \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
Пример ответа
{
"data": {
"public_id": "KEY_PUBLIC_ID",
"usage": "0.0000000000",
"total_spent": "1.1400000000"
}
}
Прочитать счётчики ключа
Читайте использование и расходы за весь период как разные десятичные величины. Настройка расчёта может делать обнуляемый счётчик отличным от фактически списанных денег.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID/usage \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{
"data": {
"key_id": "KEY_PUBLIC_ID",
"usage": "3.2500000000",
"total_spent": "1.1400000000"
}
}
Просмотреть остаток лимита
Нулевой spend_limit означает отсутствие лимита; remaining представлен как null. Это не остаток в ноль долларов.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID/spent-limit \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{
"data": {
"key_id": "KEY_PUBLIC_ID",
"spend_limit": "20.0000000000",
"usage": "3.2500000000",
"remaining": "16.7500000000"
}
}
Прочитать историю завершённых запросов
Используйте limit 1–100, по умолчанию 10. Сначала идут последние finished_at; для следующей страницы старых записей передавайте meta.next_cursor как before. Подробная история обычно хранится семь дней и сообщает действующее окно. Снимки цены сохраняют исторические фактические/справочные ставки и расчёт использования; недоступные старые снимки помечаются недоступными, а не восстанавливаются по текущему каталогу. gateway_overhead_ms, upstream_first_token_ms и e2e_first_token_ms описывают разные интервалы; E2E шлюза не включает сеть клиента и TLS. Пакетные записи содержат сохранённые protocol/job/custom_id/coefficient. В нативных sync/async объект batch отсутствует. Восстановление токенной стоимости использует сохранённые ставки: выбранная база округляется до десяти знаков до применения и округления коэффициента. Сохранённые cost/official_base_cost/usage_cost — источник истины. Исходные тела запросов и ответов не включаются.
Пример запроса
curl "https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID/requests?limit=10" \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{
"data": [
{
"request_id": "01KZ...",
"key_id": "KEY_PUBLIC_ID",
"group_id": "GROUP_PUBLIC_ID",
"model": "claude-opus-4.7",
"endpoint": "messages",
"method": "POST",
"status": "succeeded",
"status_code": 200,
"is_stream": false,
"request_mode": "batch",
"batch": {
"protocol": "claude",
"job_id": "msgbatch_01K...",
"custom_id": "request-1",
"price_multiplier": "0.5"
},
"tokens": {
"input": 120,
"output": 45,
"cached": 0,
"cache_write": 0,
"reasoning": 0,
"total": 165
},
"cost": "0.0000345",
"usage_cost": "0.00345",
"official_base_cost": "0.000345",
"currency": "USD",
"usage_pricing": {
"basis": "official_price",
"base_field": "official_base_cost",
"base_amount": "0.000345",
"multiplier": "10",
"usage_cost": "0.00345",
"formula": "round(base_amount * multiplier, 10)"
},
"pricing_snapshot": {
"available": true,
"unit": "per_1m_tokens",
"user_price": {
"input": "0.2",
"output": "1",
"cache_read": "0.02",
"cache_write": "0.25",
"reasoning": "1"
},
"official_price": {
"input": "1",
"output": "5",
"cache_read": "0.1",
"cache_write": "1.25",
"reasoning": "5"
},
"usage_price": {
"input": "10",
"output": "50",
"cache_read": "1",
"cache_write": "12.5",
"reasoning": "50"
}
},
"duration_ms": 842,
"gateway_overhead_ms": 34,
"upstream_first_token_ms": 156,
"e2e_first_token_ms": 190,
"settlement_status": "settled",
"started_at": "2026-08-05T10:00:00Z",
"finished_at": "2026-08-05T10:00:00.842Z"
}
],
"meta": {
"key_id": "KEY_PUBLIC_ID",
"limit": 10,
"returned": 1,
"order": "finished_at_desc",
"next_cursor": "eyJ0IjoiMjAyNi0wOC0wNSAxMDowMDowMCIsInAiOiIwMUt...",
"has_more": true
}
}
Пример запроса
curl "https://p-api.b2b-llm.com/api/v1/partner/keys/KEY_PUBLIC_ID/requests?limit=10&before=NEXT_CURSOR" \
-H "Authorization: Bearer mg_partner_..."
Сверить движения кошелька
Использование API кошелька агрегируется по владельцу списания и минуте завершения. Для устойчивой сверки используйте transaction_id, для числа включённых запросов — request_count. У агрегированных списаний balance_before, balance_after и api_key_id намеренно равны null; детализация ключа находится в истории запросов. Следуйте служебному курсору, не считая внутренние числовые ID публичными идентификаторами.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/transactions \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{
"data": [
{
"transaction_id": "TRANSACTION_PUBLIC_ID",
"type": "debit",
"source": "api_usage_minute",
"billing_minute_num": 29769120,
"amount": "-0.0232000000",
"request_count": 100,
"balance_before": null,
"balance_after": null,
"api_key_id": null,
"created_at": "2026-08-05T10:00:00Z"
}
]
}
Прочитать кошелёк владельца
Для проверки кошелька владельца, в том числе сверки после уведомления о балансе, используйте ключ Partner API. Не подменяйте баланс использованием проекта.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/balance \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{"data":{"balance":"1234.5678900000","currency":"USD","as_of":"2026-08-28T07:00:00Z"}}
Просмотреть действия управления ресурсами
Записи аудита обозначают успешные операции управления, действие/объект, ID запроса, исходный IP, безопасные метаданные и время UTC. Секреты, тела повторов и ключи идемпотентности исключены. При необходимости фильтруйте по action, для продолжения используйте cursor.
Пример запроса
curl "https://p-api.b2b-llm.com/api/v1/partner/audit-events?limit=100" \
-H "Authorization: Bearer mg_partner_..."
Создать бюджет проекта
Группа объединяет ключи одной компании с общими пределами запросов и расчётом использования. Её создание не выделяет отдельный кошелёк.
Пример запроса
curl -X POST https://p-api.b2b-llm.com/api/v1/partner/groups \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
-H "Content-Type: application/json" \
-d '{
"name": "Telegram bot A",
"description": "Keys created by bot A",
"rpm_limit": 100,
"concurrency_limit": 20,
"spend_limit": "1000.0000000000",
"usage_price_basis": "official_price",
"usage_price_multiplier": "0.900000"
}'
Пример ответа
{
"data": {
"public_id": "GROUP_PUBLIC_ID",
"name": "Telegram bot A",
"status": "active",
"spend_limit": "1000.0000000000",
"usage": "0.0000000000",
"total_spent": "0.0000000000",
"usage_price_basis": "official_price",
"usage_price_multiplier": "0.900000"
}
}
Перечислить проекты компании
Получите проекты в области владельца и следуйте постраничной навигации. Публичные ID групп — устойчивые ссылки для последующих операций с ключами.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/groups \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{"data":[{"public_id":"GROUP_PUBLIC_ID","name":"Telegram bot A","status":"active","usage":"0.0000000000"}]}
Просмотреть и изменить проект
Прочитайте группу до изменения лимитов. PATCH применяет поддерживаемые поля; переопределения ключа могут сохранять приоритет над унаследованными настройками проекта.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/groups/GROUP_PUBLIC_ID \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{"data":{"public_id":"GROUP_PUBLIC_ID","name":"Telegram bot A","spend_limit":"1000.0000000000","usage":"12.0000000000"}}
Пример запроса
curl -X PATCH https://p-api.b2b-llm.com/api/v1/partner/groups/GROUP_PUBLIC_ID \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
-H "Content-Type: application/json" \
-d '{"name":"Telegram bot A production","status":"active","spend_limit":"2000.0000000000","usage_price_basis":"user_price","usage_price_multiplier":"1.200000"}'
Пример ответа
{"data":{"public_id":"GROUP_PUBLIC_ID","name":"Telegram bot A production","spend_limit":"2000.0000000000","usage_price_basis":"user_price","usage_price_multiplier":"1.200000"}}
Удалить пустой проект
Сначала переместите или удалите все входящие ключи. Непустой проект возвращает 409 group_not_empty; не рассчитывайте, что удаление незаметно отсоединит работающие интеграции.
Пример запроса
curl -X DELETE https://p-api.b2b-llm.com/api/v1/partner/groups/GROUP_PUBLIC_ID \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
Пример ответа
{"data":{"deleted":true}}
Сбросить общий счётчик бюджета
Операция очищает использование группы, не очищая счётчики каждого ключа и не меняя подтверждённые транзакции кошелька. Перед сбросом подтвердите нужную область бюджета.
Пример запроса
curl -X POST https://p-api.b2b-llm.com/api/v1/partner/groups/GROUP_PUBLIC_ID/reset-usage \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
Пример ответа
{"data":{"public_id":"GROUP_PUBLIC_ID","usage":"0.0000000000","total_spent":"8.5000000000"}}
Перечислить ключи проекта
Здесь members означает принадлежность API-ключей группе. Права сотрудников в организации и группах управляются отдельно в рабочей области аккаунта.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/groups/GROUP_PUBLIC_ID/members \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{"data":[{"public_id":"KEY_PUBLIC_ID","name":"Service integration","status":"active","usage":"3.2500000000","total_spent":"1.1400000000"}]}
Назначить ключ проекту
Оба публичных ID должны принадлежать области владельца. Возвращённое членство отражает обновлённый проект. После переноса повторно оцените наследуемые лимиты и маршрутизацию.
Пример запроса
curl -X POST https://p-api.b2b-llm.com/api/v1/partner/groups/GROUP_PUBLIC_ID/members \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
-H "Content-Type: application/json" \
-d '{"key_id":"KEY_PUBLIC_ID"}'
Пример ответа
{"data":[{"public_id":"KEY_PUBLIC_ID","name":"Service integration","status":"active"}]}
Отсоединить ключ от проекта
Удаляйте принадлежность группе намеренно: для выполнения интеграции сотрудника может требоваться активный проект. Операция не удаляет исторические запросы.
Пример запроса
curl -X DELETE https://p-api.b2b-llm.com/api/v1/partner/groups/GROUP_PUBLIC_ID/members/KEY_PUBLIC_ID \
-H "Authorization: Bearer mg_partner_..." \
-H "Idempotency-Key: provision-key-001" \
Пример ответа
{"data":{"removed":true}}
Прочитать использование бюджета проекта
Счётчики описывают общий обнуляемый лимит использования. Это не независимый предоплаченный баланс.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/partner/groups/GROUP_PUBLIC_ID/usage \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{"data":{"group_id":"GROUP_PUBLIC_ID","usage":"12.0000000000","total_spent":"8.5000000000","usage_reset_at":"2026-08-01T00:00:00Z"}}
Запросить завершённую активность проекта
Передайте from/to в UTC RFC3339 с завершающим Z; принимается до шести дробных знаков. Статистика формируется из минутных агрегатов завершённых запросов по времени завершения. Открытая минута исключена. average_duration_ms — полная длительность запроса шлюза, не время первого токена и не дополнительные затраты шлюза.
Пример запроса
curl "https://p-api.b2b-llm.com/api/v1/partner/groups/GROUP_PUBLIC_ID/stats?from=2026-08-01T00:00:00Z&to=2026-08-05T23:59:59Z" \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{
"data": {
"group_id": "GROUP_PUBLIC_ID",
"requests": 120,
"errors": 3,
"input_tokens": 50000,
"output_tokens": 12000,
"cached_tokens": 8000,
"cache_write_tokens": 1200,
"reasoning_tokens": 2000,
"cost": "8.5000000000",
"average_duration_ms": "842.50",
"from": "2026-08-01T00:00:00Z",
"to": "2026-08-05T23:59:59Z"
}
}
Получить сохранённый результат модели
Запрос должен принадлежать аккаунту и находиться в сроке хранения результата. Для ожидающего результата нет завершённого тела; конечный результат содержит сохранённые статус/тело ответа или ошибку. Неизвестные, просроченные и чужие ID не возвращаются.
Пример запроса
curl https://p-api.b2b-llm.com/api/v1/requests/01KZ... \
-H "Authorization: Bearer mg_partner_..."
Пример ответа
{
"data": {
"request_id": "01KZ...",
"status": "processing",
"created_at": "2026-08-05T10:00:00Z",
"started_at": "2026-08-05T10:00:00Z",
"completed_at": null,
"expires_at": "2026-08-06T10:00:00Z"
}
}
Пример ответа
{
"data": {
"request_id": "01KZ...",
"status": "completed",
"response_status": 200,
"response_headers": {"Content-Type":"application/json"},
"response": {"id":"resp_example","status":"completed"},
"completed_at": "2026-08-05T10:00:05Z",
"expires_at": "2026-08-06T10:00:00Z"
}
}
Ответы с операционными ошибками
Используйте тип и код ошибки вместе с HTTP-статусом. Тела изменений ограничены 1 MiB. Повторный ключ идемпотентности с другим входом даёт 409. Ограничение частоты возвращает partner_rate_limit_exceeded с Retry-After. Неподдерживаемые методы содержат Allow и остаются JSON, не HTML.
Пример ответа
{"error":{"type":"invalid_token","message":"Invalid Partner API key"}}
Пример ответа
{"error":{"type":"not_found","message":"API key not found"}}
Пример ответа
{"error":{"type":"invalid_request","message":"limit must be an integer from 1 to 100"}}
Правила личности компании
Business-токен Partner API доступен только подтверждённому владельцу компании. Назначение сотрудника исполнителем намеренно выполняется в рабочей области. Переданный group_id должен указывать активный проект этой компании; неверное значение отклоняется, а не превращает ключ в негрупповой. История может содержать публичный ID фактического исполнителя отдельно от владельца списания.
Точный перечень маршрутов Partner API
Таблица описывает контракт PartnerBearer на хосте Partner API, не опрос Images. Подписи публичных вебхуков и сеансы портала — отдельные механизмы. PHP Router подавляет тела GET-ответов для HEAD; ниже перечислены только канонические методы API.
| Метод | Путь | Операция контроллера |
|---|---|---|
| POST | /api/v1/partner/keys | create |
| GET | /api/v1/partner/keys | index |
| GET | /api/v1/partner/keys/{id} | show |
| PATCH | /api/v1/partner/keys/{id} | update |
| DELETE | /api/v1/partner/keys/{id} | delete |
| POST | /api/v1/partner/keys/{id}/freeze | freeze |
| POST | /api/v1/partner/keys/{id}/unfreeze | unfreeze |
| POST | /api/v1/partner/keys/{id}/rotate | rotate |
| POST | /api/v1/partner/keys/{id}/reset-usage | resetUsage |
| GET | /api/v1/partner/keys/{id}/usage | usage |
| GET | /api/v1/partner/keys/{id}/spent-limit | spentLimit |
| GET | /api/v1/partner/keys/{id}/requests | requests |
| GET | /api/v1/partner/transactions | transactions |
| GET | /api/v1/partner/balance | balance |
| GET | /api/v1/partner/audit-events | auditEvents |
| GET | /api/v1/partner/groups | groupsIndex |
| POST | /api/v1/partner/groups | groupsCreate |
| GET | /api/v1/partner/groups/{id} | groupsShow |
| PATCH | /api/v1/partner/groups/{id} | groupsUpdate |
| DELETE | /api/v1/partner/groups/{id} | groupsDelete |
| POST | /api/v1/partner/groups/{id}/reset-usage | groupsResetUsage |
| GET | /api/v1/partner/groups/{id}/usage | groupsUsage |
| GET | /api/v1/partner/groups/{id}/members | groupsMembers |
| GET | /api/v1/partner/groups/{id}/stats | groupsStats |
| POST | /api/v1/partner/groups/{id}/members | groupsAddMember |
| DELETE | /api/v1/partner/groups/{id}/members/{keyId} | groupsRemoveMember |
| GET | /api/v1/requests/{requestId} | requestResult |