FruxonDocs
UsersCore

Lists append-only membership lifecycle audit events.

Returns invitation, role-change, ownership, and member-removal events newest first. Results are tenant-isolated and visible only to Admins and Owners. Optional filters narrow the timeline to one target user or event type without changing pagination semantics.

GET
/v1/tenants/{tenant}/membershipAuditEvents
AuthorizationBearer <token>

JWT Authorization header using the Bearer scheme. Enter 'Bearer' [space] and then your token.

In: header

Path Parameters

tenant*string

The tenant identifier

Query Parameters

PageSize?integer

The maximum number of items to return per page

Formatint32
PageToken.Skip?integer
Formatint32
PageToken.Cursor?string

Opaque cursor token from an external system (e.g. RAG API). When set, M:Fruxon.Common.Collections.PageToken.AsString returns this value directly instead of encoding Fruxon.Common.Collections.PageToken.Skip.

targetUserId?string

Optional target tenant user id.

eventType?string

Optional membership event type.

Value in"UNSPECIFIED" | "INVITATION_CREATED" | "INVITATION_RESENT" | "INVITATION_REVOKED" | "INVITATION_ACCEPTED" | "ROLE_CHANGED" | "OWNER_CHANGED" | "MEMBER_REMOVED"

Response Body

curl -X GET "https://api.fruxon.com/v1/tenants/string/membershipAuditEvents"
{
  "items": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "eventType": "INVITATION_CREATED",
      "actorUserId": "string",
      "targetUserId": "string",
      "targetEmail": "string",
      "oldRole": "ADMIN",
      "newRole": "ADMIN",
      "invitationId": "string",
      "createdAt": 0
    }
  ],
  "nextPageToken": "string",
  "totalCount": 0
}
Empty
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}
{
  "type": "string",
  "title": "string",
  "status": 0,
  "detail": "string",
  "instance": "string",
  "property1": null,
  "property2": null
}