AuralisDocs
OperationsInvitations

See who has been invited, and which invitations are still open

This workspace's invitations, and no other workspace's.

/v1/workspace/invitationsAdmin
Operation id
list_invitations
Access
An editor or a viewer is refused.
GET/v1/workspace/invitations

This workspace's invitations, and no other workspace's.

Newest first. state is one of pending, expired, accepted or revoked, and is worked out when you ask rather than stored, so an invitation that ran out of time reads expired without anything having touched the row.

Pass include_inactive=true to see accepted and revoked ones too.

No token or token fragment is returned here, by design.

Expired invitations are returned by default and accepted or revoked ones are not, which is the same cut 0073's partial index makes: an expired invitation still holds its address's pending slot and is the one an admin has to act on, so hiding it would hide the record that explains why re-inviting behaves as a resend. Its state says expired so a surface can distinguish it.

Tenancy: the request is scoped to one workspace, and the credential presented is what selects it. A caller with no membership in that workspace is refused with 404, which is indistinguishable from a workspace that does not exist.

Authorisation: admin or owner. An editor or viewer receives 403 insufficient_role.

Access: Authorization: Bearer carrying either a realm access token or an API key. A key must hold the invitations:write scope, and the workspace role of the person who owns it must meet the floor above.

Authorization

AuthorizationBearer <token>

A realm-issued access token, presented as Authorization: Bearer <token>. It acts as the person who signed in, and every operation resolves their workspace role live from the membership record.

In: header

Query Parameters

include_inactive?Include Inactive

Also return accepted and revoked invitations

Defaultfalse

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/workspace/invitations"
{  "invitations": [    {      "id": "3a9c7e12-58bd-4f06-9a44-2c7e1b0d8f31",      "email": "sam.okafor@northwind.example",      "role": "editor",      "state": "pending",      "expires_at": "2026-08-21T10:04:00+00:00",      "created_at": "2026-08-14T10:04:00+00:00",      "invited_by": {        "id": "c0f4a7d3-1b62-4e58-8d90-6f3a2c5e7b18",        "display_name": "Dana Osei",        "email": "dana.osei@northwind.example"      },      "delivery": {        "state": "sent",        "attempts": 1,        "message_id": "0100019180a4c1f2-9f0a4a2e-1e4c-4d31-9a77-5b8c2d1e0f44-000000",        "last_sent_at": "2026-08-14T10:04:01+00:00"      }    }  ]}