Lookup Invitation
POST
/api/auth/invitations/lookup
const url = 'https://example.com/api/auth/invitations/lookup';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"token":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/auth/invitations/lookup \ --header 'Content-Type: application/json' \ --data '{ "token": "example" }'Describe a live invitation to its token holder (the accept page uses
account_exists to choose between “sign in to accept” and “create your
account”). The token arrives in the body, never the URL, so it stays out of
access logs.
Request Bodyrequired
Section titled “ Request Bodyrequired ” Media type application/json
InvitationTokenRequest
BUG-377: token-only body (lookup, and accept for a signed-in user).
object
token
required
Token
string
Example generated
{ "token": "example"}Responses
Section titled “ Responses ”Successful Response
Media type application/json
InvitationLookupResponse
What the token holder (= the invited mailbox) may see before accepting.
object
Example generated
{ "account_exists": true, "email": "example", "expires_at": "2026-04-15T12:00:00Z", "invited_by_name": "example", "organization_name": "example", "role": "example"}Validation Error
Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Example generated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}