---
title: "Search Groups"
method: POST
path: "/group/_search"
tags: ["Group"]
---

# Search Groups

`POST /group/_search`

Search for `Groups` with filtering capabilities.

## Query parameters

- `limit` integer
- `offset` integer

## Request body

- object
  - `filter` GroupFilter, required — Filter object for Group
    - `equals` GroupFilterEquals — Equality/Inequality filter fields for Group
      - `id` string, uuid, nullable — Unique identifier for the Group
      - `meta` MetaFilterEquals — Equality/Inequality filter fields for Meta
        - `createdAt` string, date-time, nullable — Timestamp when the resource was created
        - `createdBy` string, uuid, nullable — User who created the resource
        - `updatedAt` string, date-time, nullable — Timestamp when the resource was last updated
        - `updatedBy` string, uuid, nullable — User who last updated the resource
      - `external` ExternalFilterEquals — Equality/Inequality filter fields for External
        - `sourceID` string, nullable — The ID of the external source
        - `source` string, nullable — The source of the external information
      - `schoolID` string, uuid, nullable — The ID of the school the group belongs to
      - `category` 'Education' | 'Other' — The category of the group
      - `title` string, nullable — The title of the group, must be unique within the school.
      - `types` 'Class' | 'Childcare' | 'Mentor' — The type of the group. A group can have multiple types simultaneously, each enabling specific functionality for the group's members and moderators.
      - `moderatorIDs` string, uuid, nullable — The IDs of the moderators of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Moderators have to be employees of the school.
      - `memberIDs` string, uuid, nullable — The IDs of the members of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Members have to be students of the school.
    - `notEquals` GroupFilterEquals — Equality/Inequality filter fields for Group
      - `id` string, uuid, nullable — Unique identifier for the Group
      - `meta` MetaFilterEquals — Equality/Inequality filter fields for Meta
        - `createdAt` string, date-time, nullable — Timestamp when the resource was created
        - `createdBy` string, uuid, nullable — User who created the resource
        - `updatedAt` string, date-time, nullable — Timestamp when the resource was last updated
        - `updatedBy` string, uuid, nullable — User who last updated the resource
      - `external` ExternalFilterEquals — Equality/Inequality filter fields for External
        - `sourceID` string, nullable — The ID of the external source
        - `source` string, nullable — The source of the external information
      - `schoolID` string, uuid, nullable — The ID of the school the group belongs to
      - `category` 'Education' | 'Other' — The category of the group
      - `title` string, nullable — The title of the group, must be unique within the school.
      - `types` 'Class' | 'Childcare' | 'Mentor' — The type of the group. A group can have multiple types simultaneously, each enabling specific functionality for the group's members and moderators.
      - `moderatorIDs` string, uuid, nullable — The IDs of the moderators of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Moderators have to be employees of the school.
      - `memberIDs` string, uuid, nullable — The IDs of the members of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Members have to be students of the school.
    - `greaterThan` GroupFilterRange — Range filter fields for Group
      - `meta` MetaFilterRange — Range filter fields for Meta
        - `createdAt` string, date-time, nullable — Timestamp when the resource was created
        - `updatedAt` string, date-time, nullable — Timestamp when the resource was last updated
      - `external` ExternalFilterRange — Range filter fields for External
    - `smallerThan` GroupFilterRange — Range filter fields for Group
      - `meta` MetaFilterRange — Range filter fields for Meta
        - `createdAt` string, date-time, nullable — Timestamp when the resource was created
        - `updatedAt` string, date-time, nullable — Timestamp when the resource was last updated
      - `external` ExternalFilterRange — Range filter fields for External
    - `greaterOrEqual` GroupFilterRange — Range filter fields for Group
      - `meta` MetaFilterRange — Range filter fields for Meta
        - `createdAt` string, date-time, nullable — Timestamp when the resource was created
        - `updatedAt` string, date-time, nullable — Timestamp when the resource was last updated
      - `external` ExternalFilterRange — Range filter fields for External
    - `smallerOrEqual` GroupFilterRange — Range filter fields for Group
      - `meta` MetaFilterRange — Range filter fields for Meta
        - `createdAt` string, date-time, nullable — Timestamp when the resource was created
        - `updatedAt` string, date-time, nullable — Timestamp when the resource was last updated
      - `external` ExternalFilterRange — Range filter fields for External
    - `contains` GroupFilterContains — Contains filter fields for Group
      - `id` string[] — Unique identifier for the Group
      - `meta` MetaFilterContains — Contains filter fields for Meta
        - `createdBy` string[] — User who created the resource
        - `updatedBy` string[] — User who last updated the resource
      - `external` ExternalFilterContains — Contains filter fields for External
        - `sourceID` string[] — The ID of the external source
        - `source` string[] — The source of the external information
      - `schoolID` string[] — The ID of the school the group belongs to
      - `category` GroupCategory[] — If the category is Education, the ModeratorIDs have to be employees and the MemberIDs have to be students of the school. If the category is Other, it will not be possible to use the IsClass, IsChildcare and IsMentor fields.
      - `title` string[] — The title of the group, must be unique within the school.
      - `types` GroupType[] — The types of the group. A group can have multiple types simultaneously. For preschools (FS), Class and Childcare types are automatically paired - adding Class will automatically include Childcare, and vice versa. Integration note for Mentor type - when importing groups from external systems, it can be difficult to determine whether a group should have the Mentor type. One recommended approach is to not include the Mentor type when creating or updating groups via the API, allowing school administrators to manually configure the Mentor type in Meitner as needed. When updating a group, you can preserve existing types by reading the current group state first and only modifying the specific types your integration manages (e.g., Class, Childcare). This ensures the Mentor type remains under administrator control.
      - `moderatorIDs` string[] — The IDs of the moderators of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Moderators have to be employees of the school.
      - `memberIDs` string[] — The IDs of the members of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Members have to be students of the school.
    - `notContains` GroupFilterContains — Contains filter fields for Group
      - `id` string[] — Unique identifier for the Group
      - `meta` MetaFilterContains — Contains filter fields for Meta
        - `createdBy` string[] — User who created the resource
        - `updatedBy` string[] — User who last updated the resource
      - `external` ExternalFilterContains — Contains filter fields for External
        - `sourceID` string[] — The ID of the external source
        - `source` string[] — The source of the external information
      - `schoolID` string[] — The ID of the school the group belongs to
      - `category` GroupCategory[] — If the category is Education, the ModeratorIDs have to be employees and the MemberIDs have to be students of the school. If the category is Other, it will not be possible to use the IsClass, IsChildcare and IsMentor fields.
      - `title` string[] — The title of the group, must be unique within the school.
      - `types` GroupType[] — The types of the group. A group can have multiple types simultaneously. For preschools (FS), Class and Childcare types are automatically paired - adding Class will automatically include Childcare, and vice versa. Integration note for Mentor type - when importing groups from external systems, it can be difficult to determine whether a group should have the Mentor type. One recommended approach is to not include the Mentor type when creating or updating groups via the API, allowing school administrators to manually configure the Mentor type in Meitner as needed. When updating a group, you can preserve existing types by reading the current group state first and only modifying the specific types your integration manages (e.g., Class, Childcare). This ensures the Mentor type remains under administrator control.
      - `moderatorIDs` string[] — The IDs of the moderators of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Moderators have to be employees of the school.
      - `memberIDs` string[] — The IDs of the members of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Members have to be students of the school.
    - `like` GroupFilterLike — LIKE filter fields for Group
      - `meta` MetaFilterLike — LIKE filter fields for Meta
      - `external` ExternalFilterLike — LIKE filter fields for External
        - `sourceID` string, nullable — The ID of the external source
        - `source` string, nullable — The source of the external information
      - `title` string, nullable — The title of the group, must be unique within the school.
    - `notLike` GroupFilterLike — LIKE filter fields for Group
      - `meta` MetaFilterLike — LIKE filter fields for Meta
      - `external` ExternalFilterLike — LIKE filter fields for External
        - `sourceID` string, nullable — The ID of the external source
        - `source` string, nullable — The source of the external information
      - `title` string, nullable — The title of the group, must be unique within the school.
    - `null` GroupFilterNull — Null filter fields for Group
      - `meta` MetaFilterNull — Null filter fields for Meta
        - `createdBy` boolean, nullable — User who created the resource
        - `updatedAt` boolean, nullable — Timestamp when the resource was last updated
        - `updatedBy` boolean, nullable — User who last updated the resource
      - `external` ExternalFilterNull — Null filter fields for External
        - `sourceID` boolean, nullable — The ID of the external source
        - `source` boolean, nullable — The source of the external information
      - `types` boolean, nullable — The types of the group. A group can have multiple types simultaneously. For preschools (FS), Class and Childcare types are automatically paired - adding Class will automatically include Childcare, and vice versa. Integration note for Mentor type - when importing groups from external systems, it can be difficult to determine whether a group should have the Mentor type. One recommended approach is to not include the Mentor type when creating or updating groups via the API, allowing school administrators to manually configure the Mentor type in Meitner as needed. When updating a group, you can preserve existing types by reading the current group state first and only modifying the specific types your integration manages (e.g., Class, Childcare). This ensures the Mentor type remains under administrator control.
      - `moderatorIDs` boolean, nullable — The IDs of the moderators of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Moderators have to be employees of the school.
      - `memberIDs` boolean, nullable — The IDs of the members of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Members have to be students of the school.
    - `notNull` GroupFilterNull — Null filter fields for Group
      - `meta` MetaFilterNull — Null filter fields for Meta
        - `createdBy` boolean, nullable — User who created the resource
        - `updatedAt` boolean, nullable — Timestamp when the resource was last updated
        - `updatedBy` boolean, nullable — User who last updated the resource
      - `external` ExternalFilterNull — Null filter fields for External
        - `sourceID` boolean, nullable — The ID of the external source
        - `source` boolean, nullable — The source of the external information
      - `types` boolean, nullable — The types of the group. A group can have multiple types simultaneously. For preschools (FS), Class and Childcare types are automatically paired - adding Class will automatically include Childcare, and vice versa. Integration note for Mentor type - when importing groups from external systems, it can be difficult to determine whether a group should have the Mentor type. One recommended approach is to not include the Mentor type when creating or updating groups via the API, allowing school administrators to manually configure the Mentor type in Meitner as needed. When updating a group, you can preserve existing types by reading the current group state first and only modifying the specific types your integration manages (e.g., Class, Childcare). This ensures the Mentor type remains under administrator control.
      - `moderatorIDs` boolean, nullable — The IDs of the moderators of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Moderators have to be employees of the school.
      - `memberIDs` boolean, nullable — The IDs of the members of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Members have to be students of the school.
    - `orCondition` boolean, required — OrCondition decides if this filter is within an OR-condition or AND-condition
    - `nestedFilters` GroupFilter[] — NestedFilters of the Group, useful for more complex filters

## Response `200`

Response for Group Search operation - returns filtered Group results

- object
  - `data` Group[] — Array of Group objects
    - `id` string, uuid, required — Unique identifier for the Group
    - `meta` Meta — Meta contains information about the creation and modification of a resource for auditing purposes
      - `createdAt` string, date-time, required — Timestamp when the resource was created
      - `createdBy` string, uuid, nullable — User who created the resource
      - `updatedAt` string, date-time, nullable — Timestamp when the resource was last updated
      - `updatedBy` string, uuid, nullable — User who last updated the resource
    - `external` External — External is a reusable object that can be used to store external information from another system, used for third-party integration tracking.
      - `sourceID` string, nullable — The ID of the external source
      - `source` string, nullable — The source of the external information
    - `schoolID` string, uuid, required — The ID of the school the group belongs to
    - `category` 'Education' | 'Other' — The category of the group
    - `title` string, required — The title of the group, must be unique within the school.
    - `types` GroupType[] — The types of the group. A group can have multiple types simultaneously. For preschools (FS), Class and Childcare types are automatically paired - adding Class will automatically include Childcare, and vice versa. Integration note for Mentor type - when importing groups from external systems, it can be difficult to determine whether a group should have the Mentor type. One recommended approach is to not include the Mentor type when creating or updating groups via the API, allowing school administrators to manually configure the Mentor type in Meitner as needed. When updating a group, you can preserve existing types by reading the current group state first and only modifying the specific types your integration manages (e.g., Class, Childcare). This ensures the Mentor type remains under administrator control.
    - `moderatorIDs` string[] — The IDs of the moderators of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Moderators have to be employees of the school.
    - `memberIDs` string[] — The IDs of the members of the group. Can be any user type (Student, Employee, Guardian) if the Category is Other. If the Category is Education, the Members have to be students of the school.
  - `pagination` Pagination — Pagination parameters for controlling result sets in list operations
    - `offset` integer, required — Number of items to skip from the beginning of the result set
    - `limit` integer, required — Maximum number of items to return in the result set
    - `total` integer, required — Total number of items available for pagination

## Other responses

- `400` — Bad Request - The request was malformed or contained invalid parameters
- `401` — Unauthorized - The request is missing valid authentication credentials
- `403` — Forbidden - Request is authenticated, but the user is not allowed to perform the operation
- `404` — Not Found - The requested resource does not exist
- `409` — Conflict - The request could not be completed due to a conflict
- `422` — Validation error for Group Search operation - request data failed validation
- `429` — Too Many Requests - When the rate limit has been exceeded
- `500` — Internal Server Error - An unexpected server error occurred

---

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