Access Groups

List all access groups

Returns a paginated list of all access groups on the site, including both custom (user-created) and scope (Notion-collection-based) groups.

Each group in the response includes: id, name, description, type ('custom' or 'scope'), memberCount (number of members in the group), and timestamps.

Custom groups can be modified via the API. Scope groups are automatically created from Notion collections and are read-only — they cannot be created, updated, or deleted via the API.

GET /access-groups

List all access groups

curl --request GET \
  --url 'https://api.sotion.so/api/v1/access-groups' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "data": [
    {
      "id": "<uuid>",
      "name": "<string>",
      "description": "<string>",
      "type": "custom",
      "memberCount": 1,
      "createdAt": "<date-time>",
      "updatedAt": "<date-time>"
    }
  ],
  "pagination": {
    "hasMore": true,
    "nextCursor": "<uuid>"
  }
}

Paginated list of access groups.

Authorizations

  • Authorization string required header

    Per-site API key (prefix: so_...). Each key is scoped to exactly one Sotion site — the site context is determined entirely by the key. No site ID is needed in any URL. Pass as: Authorization: Bearer so_...

Query Parameters

  • after string (uuid)

    Cursor for pagination. Pass the nextCursor value from a previous response to get the next page of results.

  • limit integer

    Number of items to return per page (1-100). Default: 50.

Response

application/json
  • X-RateLimit-Limit integer response header

    Maximum requests allowed in the current window.

  • X-RateLimit-Remaining integer response header

    Requests remaining in the current window.

  • X-RateLimit-Reset integer response header

    Unix timestamp (seconds) when the rate limit window resets.

  • X-Request-Id string (uuid) response header

    Unique request identifier for support and debugging.

  • data[] object array
    + Show Child Attributes
    • id string (uuid)

      Unique identifier (UUID) for the access group.

    • name string

      Display name of the access group.

    • description string nullable

      Optional description of the group's purpose.

    • type string enum enum

      'custom' = user-created via API or dashboard, can be modified and deleted. 'scope' = automatically created from a Notion collection, read-only via API. Allowed values: custom, scope.

    • memberCount integer

      Number of members currently in this group.

    • createdAt string (date-time) nullable

      When the group was created.

    • updatedAt string (date-time) nullable

      When the group was last modified.

  • pagination object
    + Show Child Attributes
    • hasMore boolean

      True if there are more items after this page.

    • nextCursor string (uuid) nullable

      Pass this value as the 'after' query parameter to fetch the next page. Null when there are no more pages.