---
title: "List groups"
method: GET
path: "/v2/groups/"
tags: ["Groups"]
---

# List groups

`GET /v2/groups/`

List student groups for the authenticated organization.

**Required OAuth scope:** `student-groups:read`

## Query parameters

- `filter[name]` string, nullable — Case-insensitive substring match on group name. Backed by a sequential scan inside the caller's organization; expected typical org cardinality is < 1k groups.
- `filter[category_id]` string, nullable — Obfuscated id of a StudentGroupCategory. Returns only groups in that category. Undecodable or cross-organization ids return zero results, never an error.
- `page[size]` integer — Maximum number of records to return.
- `page[cursor]` string, nullable — Opaque cursor from the previous page's links.next.

## Response `200`

OK

- PaginatedListResponseGroupResource
  - `data` GroupResource[], required — The resources on this page, in cursor order.
    - `type` 'groups' — Always "groups".
    - `id` string, required — Opaque group ID. Use in URL paths.
    - `attributes` GroupAttributes, required — Attributes of a group resource object.
      - `name` string, required — Group name.
      - `rule_email_domains` string[], required — Email domains that auto-add students to this group on signup.
      - `send_course_enrollment_email` boolean, nullable — Whether to send course enrollment emails to members of this group.
      - `category_id` string, nullable — Obfuscated id of the assigned StudentGroupCategory, or null if no category is set.
      - `created_at` string, date-time, required — Timestamp when the group was created.
      - `updated_at` string, date-time, required — Timestamp when the group was last updated.
  - `meta` object, nullable — Pagination metadata, e.g. {"page_size": 25}.
  - `links` object, nullable — Pagination links, e.g. {"self": "...", "next": "...", "prev": null}.
  - `has_more` boolean, required — Whether additional pages exist after this one.
  - `next_cursor` string, nullable — Opaque cursor to pass as ``page[cursor]`` for the next page; null on the last page.
  - `included` object[], nullable — Related resources requested via ?include=. Absent when no include was requested.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden

---

[API](https://skmtc.net/skilljar/apis/skilljar-api-v2.md) · [All operations](https://skmtc.net/skilljar/apis/skilljar-api-v2/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skilljar/skilljar-api-v2/revisions/f8025de20169/schema)
