---
title: "Preview Beta Invite"
method: GET
path: "/api/v1/beta-invites/{token}/preview"
tags: ["beta-invites"]
---

# Preview Beta Invite

`GET /api/v1/beta-invites/{token}/preview`

## Request

- Base URL: `https://memory.kagura-ai.com` (the document declares no server; this is the origin it was published from)
- URL: `https://memory.kagura-ai.com/api/v1/beta-invites/{token}/preview`
- Auth: none declared

Tell the public landing page whether a link is still usable. No auth.

Read-only — previewing never consumes the invite. Reveals nothing about the
inviter.

Args:
    token: The plaintext token from the ``/join/{token}`` URL.
    request: FastAPI request (caller IP for the rate-limit bucket).
    db: Database session.

Returns:
    ``{"valid": true, "expires_at": ...}`` for a usable link.

Raises:
    RateLimitError: 429 when the caller's per-IP bucket is exhausted.
    NotFoundException: 404 — unknown, revoked, or malformed token.
    BetaInviteGoneError: 410 — expired or already redeemed.

## Path parameters

- `token` string, required

## Response `200`

Successful Response

- BetaInvitePreviewResponse: What the public landing page may know about a usable link.
  - `valid` unknown, required
  - `expires_at` unknown, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/kagura-ai/apis/kagura-memory-cloud.md) · [All operations](https://skmtc.dev/kagura-ai/apis/kagura-memory-cloud/llms.txt) · [OpenAPI document](https://skmtc.dev/kagura-ai/apis/kagura-memory-cloud/revisions/09f17f5ada29?raw)
