---
id: org-get-invite-by-token
title: "GET /api/invites/by-token/:token — Приглашение по ссылке"
domain: org
kind: api-method
http: "GET /api/invites/by-token/:token"
---

# GET /api/invites/by-token/:token — Приглашение по ссылке {#org-get-invite-by-token}

## Сводка

| Поле | Значение |
|---|---|
| **HTTP** | `GET /api/invites/by-token/:token` |
| **Auth** | `optionalAuth` — гость + авторизованный |
| **Scope токена** | `read` |
| **PG-функции** | `api.get_invite_by_token` |
| **Таблицы** | `invite` |
| **SRM** | SRM-066, SRM-068 |
| **RP (права)** | RP-055 |
| **Файл роута** | `server/routes/invites.js` |
| **Статус** | done |

**Аргументы запроса** (best-effort из хендлера; путь-параметры опущены):

_аргументов не обнаружено (подтвердить вручную по `server/routes/invites.js`)_

**Коды ответов/ошибок** (из хендлера): `400`, `404`, `410` (+ `200`) — _уточнить причины вручную_

Чтение. В браузере роут анонимный (`optionalAuth`) — токен не требуется. Путь-параметр `:token` — секрет из ссылки-приглашения (строка из латинских букв и цифр).

**Важно: агентному токену этот метод недоступен.** Путь `/api/invites/...` **не** входит в read-allowlist agent-gate (`server/auth/agentGate.js`), а gate закрыт по умолчанию. Поэтому запрос с `Authorization: Bearer tak_...` вернёт `403` («Forbidden for token»), даже на scope `read`. Открыть приглашение по токену может только браузер-клиент (cookie-сессия) или анонимный запрос — что и делает [экран принятия](../screens/invite-accept.md#org-screen-invite-accept).

**Пример запроса (анонимно, из браузера):**

```bash
curl https://specbuilder.vnimanie.ai/api/invites/by-token/Xa9kQ2...
```

**Ответ `200`:**

```json
{
  "id": "c3d4e5f6-...",
  "orgName": "Студия проектирования",
  "orgSlug": "studio",
  "role": "member",
  "expiresAt": "2026-07-01T00:00:00.000Z"
}
```

Ответы об ошибках: `404` — приглашения нет; `410` — уже использовано (`{ "error": "...", "status": "accepted" }`) либо истекло; `400` — прочие сбои. Markdown-зеркала и `ETag` у метода нет, отдаётся чистый JSON. Дальше — [принять](accept-invite.md#org-accept-invite) или [отклонить](decline-invite.md#org-decline-invite) приглашение по его `id`; обе эти операции уже доступны токену со scope `read_write`.

<!-- gen:start:related -->
## Связанные
- Экраны: [Принятие инвайта](../screens/invite-accept.md#org-screen-invite-accept)
- [Конвенции](../../../shared/conventions.md#conventions) · [Роли](../../../shared/roles.md#roles) · [Ошибки](../../../shared/errors.md#errors) · [Глоссарий](../../../shared/glossary.md#glossary)
<!-- gen:end:related -->

---

Human view: https://docs.vnimanie.ai/specbuilder/v1/domains/org/api/get-invite-by-token/