---
title: "List permission scopes with cursor-based pagination"
method: GET
path: "/teams/{key}/members/{memberId}/permission-scopes"
tags: ["Permission Scopes"]
---

# List permission scopes with cursor-based pagination

`GET /teams/{key}/members/{memberId}/permission-scopes`

Returns permission scopes for a specific team member with cursor pagination. Can filter by kind (PROMOTER or VENUE).

## Path parameters

- `key` string, required
- `memberId` string, required

## Query parameters

- `teamMemberId` string — Filter by team member ID
- `userId` string — Filter by user ID
- `kind` 'PROMOTER' | 'VENUE' — Filter by scope kind (PROMOTER or VENUE)
- `promoterId` string — Filter by promoter ID (only for kind=PROMOTER scopes)
- `venueId` string — Filter by venue ID (only for kind=VENUE scopes)
- `limit` integer — Maximum number of permission scopes to return per request (1-100, default: 20)
- `cursor` string — Pagination cursor from previous response. Used to fetch next page of results

## Response `200`

OK

- object — Paginated response containing permission scopes with cursor for next page
  - `items` union[], required — Array of items for the current result set
    - union — Permission scope for a team member. Can be PROMOTER-specific (applies to all events by that promoter) or VENUE-specific (applies to all events at that venue). Replaces lower-tier permissions using REPLACE semantics.
      - object — PROMOTER-specific permission scope. Applies to all events by the specified promoter.
        - `id` string, required — Unique identifier for the permission scope
        - `createdAt` string, date-time, required — Timestamp in ISO 8601 format when the scope was created
        - `updatedAt` string, date-time, required — Timestamp in ISO 8601 format when the scope was last updated
        - `teamMemberId` string, required — Team member this scope applies to
        - `teamId` string, required — Team the member belongs to
        - `userId` string, required — ID of the user this permission scope applies to
        - `permissions` string[], required — Scoped permissions. Can be empty array to remove all access. Replaces lower-tier permissions based on kind (VENUE overrides PROMOTER overrides BASE).
        - `roleIds` string[] — Optional role IDs applied at this scope. Role-derived permissions are merged with explicit scoped nodes.
        - `tenantId` string, required — Tenant identifier
        - `kind` 'PROMOTER', required — Scope type: PROMOTER-specific permissions
        - `promoterId` string, required — Promoter this scope applies to. Replaces base permissions for all events by this promoter.
      - object — VENUE-specific permission scope. Applies to all events at the specified venue.
        - `id` string, required — Unique identifier for the permission scope
        - `createdAt` string, date-time, required — Timestamp in ISO 8601 format when the scope was created
        - `updatedAt` string, date-time, required — Timestamp in ISO 8601 format when the scope was last updated
        - `teamMemberId` string, required — Team member this scope applies to
        - `teamId` string, required — Team the member belongs to
        - `userId` string, required — ID of the user this permission scope applies to
        - `permissions` string[], required — Scoped permissions. Can be empty array to remove all access. Replaces lower-tier permissions based on kind (VENUE overrides PROMOTER overrides BASE).
        - `roleIds` string[] — Optional role IDs applied at this scope. Role-derived permissions are merged with explicit scoped nodes.
        - `tenantId` string, required — Tenant identifier
        - `kind` 'VENUE', required — Scope type: VENUE-specific permissions
        - `venueId` string, required — Venue this scope applies to. Replaces base/promoter permissions for all events at this venue.
  - `before` string, nullable — Cursor for navigating backward in the result set. Omitted when there are no prior results.
  - `after` string, nullable — Cursor for navigating forward in the result set. Omitted when there are no subsequent results.
  - `limit` number, required — Maximum number of items to return in each result set

## Other responses

- `400` — 400
- `401` — 401
- `403` — 403
- `404` — 404
- `409` — 409
- `412` — 412
- `422` — 422
- `429` — 429
- `500` — 500
- `501` — 501
- `503` — 503

---

[API](https://skmtc.net/session/apis/session-services-api.md) · [All operations](https://skmtc.net/session/apis/session-services-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/session/session-services-api/versions/bec3de84da9e/schema)
