Skip to content
Sendtier Docs
API reference

Preview an invitation

Source: OpenAPI (openapi/openapi.yaml).

curl -X GET "https://api.sendtier.example/invitations/string" \  -H "Authorization: Bearer st_live_REPLACE_ME"
{  "organization_name": "string",  "role": "owner",  "expires_at": "2019-08-24T14:15:22Z",  "email_matches": true,  "already_accepted": true}
GET
/invitations/{token}

Requires a dashboard token. No selected membership is required. Returns the organization name, role, expiry, whether the signed-in email matches the invitation, and whether this user already accepted it. The response never includes the token. It never includes the invited address, including when the emails differ. Expired, revoked, used by someone else, unknown tokens, and an invitation whose accepting user no longer has a membership all return not_found with the same error. The user who already accepted and still has a membership receives this preview with already_accepted true, including after expiry. Any other caller still receives not_found, so the used state is not disclosed to them. An organization pending deletion returns the same error as acceptance. The dashboard user request limiter applies per user.

Authorization

dashboardToken
headerAuthorizationBearer <token>

Dashboard server token: EdDSA Ed25519, issuer is the dashboard origin, audience sendtier-api, iat and exp are required with a maximum lifetime of 15 minutes, sub is the identity subject, email is required. Sendtier-Tenant selects a membership; omission selects the sole membership. Without a selected tenant only GET /me and POST /organizations are available. Sendtier-Mode is live (default) or test; test mode cannot create live keys. Owners, admins and developers have full access. Viewers may only GET or HEAD.

Path Parameters

token*string

Response Body

Invitation preview. The token and the invited address are omitted.

application/json
  1. response
organization_name*string
role*MembershipRole
Value in"owner""admin""developer""viewer"
expires_at*string
Formatdate-time
email_matches*boolean
already_accepted*boolean

True only when the signed-in user already accepted this invitation and still has a membership.