v3

latestOpenAPI 3.1.02026-07-311,4541,5202.3 MB
platformApi

Api Admin Staff Groups Memberships List List

GET / POST /api/admin/staff-groups/<name>/memberships/list/

Dedicated <Model>sListView per the BE_conventions/views.md pattern — sophisticated listing lives at the /list/ sub-path while the parent /memberships/ URL handles CRUD verbs only.

GET — paginated list of memberships in the group, newest grants first. Always includes soft-revoked rows alongside active ones so the FE detail page renders the full audit history; clients distinguish via the revoked_at / revoked_by_email fields on each row.

POST — follows the project-wide POST-for-filtering pattern (see views.md §"POST-for-Filtering"). Body is the filter payload; the handler delegates to GET so the response shape and enrichment behavior match exactly.

get/api/admin/staff-groups/{name}/memberships/list/

Path parameters

namestring required

Query parameters

pageinteger

A page number within the paginated result set.

page_sizeinteger

Number of results to return per page.

Headers

Authorizationstring required

JWT access token or Respan API key

Response

countinteger required
nextstring uri nullable
previousstring uri nullable
total_countinteger
current_filtersFilterParamDictPydantic

Pydantic model for FilterParamDict. A dictionary that maps metric names to their filter parameters.

Each key is a metric name (str), and each value can be:

  • A single MetricFilterParamPydantic (one condition)
  • A List[MetricFilterParamPydantic] (multiple conditions for same metric)
  • A FilterBundlePydantic (nested filter bundle with connector)

Note: Uses extra="allow" for dynamic metric name fields. The pydantic_extra annotation tells Pydantic what types to expect for extra fields, and generates typed additionalProperties in JSON Schema.

filters_dataPaginatedStaffMembershipReadListFiltersData