GET /v1/auth/invitations/preview?token=...
Look up an invitation by token. Used by the accept page to show "you've been invited to join Acme as a member" before the user clicks confirm.
::: tip Auth Required: none. The token IS the credential. :::
Request
GET /v1/auth/invitations/preview?token=abc123...
Response
200 OK
{
"organization_name": "Acme Co.",
"role": "member",
"inviter_email": "alice@example.com",
"email": "carol@example.com",
"expires_at": "2026-06-04T12:00:00+00:00"
}
Error responses
| Status | Code | When |
|---|---|---|
| 404 | not_found | Token doesn't match any invitation. |
| 409 | conflict | Invitation has been accepted, revoked, or expired. |
Notes
- The payload is deliberately minimal — anyone with the link can hit this endpoint, so we expose only what's necessary to render the accept UI.
- This endpoint MUST be mounted outside the auth middleware. See
router_public()in the SDK.