> ## Documentation Index
> Fetch the complete documentation index at: https://developer-staging.secfix.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get a group

> Returns one group with its settings: trainings, device monitoring and policy acceptance. Requires the `all:read` scope.



## OpenAPI

````yaml /api-reference/openapi.yaml get /v1/groups/{id}
openapi: 3.0.1
info:
  title: Secfix Public API
  description: >-
    Read and manage your Secfix compliance data from your own systems. Get an
    access token from `POST /oauth/token` with the OAuth 2.0 client credentials
    grant, then send it as a bearer token to the `/v1` endpoints. Errors are
    JSON objects with a stable `code` and the `requestId`. Lists use cursor
    pagination.
  contact:
    name: Secfix Support
    url: https://secfix.com
    email: support@secfix.com
  license:
    name: Proprietary
    url: https://secfix.com/license
  version: 1.0.0
servers:
  - url: https://api.secfix.com
    description: Production
  - url: https://api-staging.secfix.com
    description: Staging
security:
  - bearerAuth: []
tags:
  - name: Employees
    description: >-
      Read the people in your workspace, with their employment status, group and
      onboarding progress.
  - name: Inventory
    description: >-
      Read assets in every inventory category. Create, update and delete
      `CUSTOM` and `INFORMATION` assets.
  - name: OAuth
    description: Get an access token with the OAuth 2.0 client credentials grant.
  - name: Groups
    description: >-
      Read employee groups, their member counts and the onboarding tasks
      assigned to them.
  - name: Health
    description: Check that the API is up.
  - name: Computers
    description: Read the computers in your workspace and their security settings.
paths:
  /v1/groups/{id}:
    get:
      tags:
        - Groups
      summary: Get a group
      description: >-
        Returns one group with its settings: trainings, device monitoring and
        policy acceptance. Requires the `all:read` scope.
      operationId: getGroup
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      responses:
        '200':
          description: Group returned.
          headers:
            X-RateLimit-Limit:
              description: Requests allowed in the current rate-limit window.
              style: simple
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current rate-limit window.
              style: simple
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Seconds until the rate-limit window resets.
              style: simple
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupDetailDto'
        '401':
          description: >-
            The access token is missing, invalid or replaced by a newer one.
            Code: `unauthorized` or `token_superseded`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '403':
          description: >-
            The access token doesn't have the scope this endpoint needs. Code:
            `scope_required`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '404':
          description: 'No group with this `id` exists in your workspace. Code: `not_found`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '405':
          description: >-
            This path doesn't support the HTTP method. The `Allow` header lists
            the methods it supports. Code: `method_not_allowed`.
          headers:
            Allow:
              description: Comma-separated list of the HTTP methods this path supports.
              style: simple
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '429':
          description: >-
            Too many requests. Wait the number of seconds in `Retry-After`, then
            retry. Code: `rate_limited`.
          headers:
            Retry-After:
              description: Seconds to wait before retrying.
              style: simple
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
        '500':
          description: 'Unexpected server error. Code: `internal_error`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetail'
components:
  schemas:
    GroupDetailDto:
      type: object
      properties:
        createdAt:
          type: string
          description: >-
            When the group was created. Left out for older groups created before
            Secfix recorded this.
          format: date-time
          example: '2026-02-11T10:20:30.000Z'
        deviceMonitoring:
          $ref: '#/components/schemas/GroupDeviceMonitoringDto'
        employeeCount:
          type: integer
          description: >-
            Number of active employees in the group who are included in
            compliance. Matches the count on the **Groups** page in Secfix.
          format: int32
          example: 12
        id:
          type: string
          description: The group's id (UUID).
          format: uuid
          example: 9b2d4f6a-1c3e-4a5b-8d7f-0e1a2b3c4d5e
        isDefault:
          type: boolean
          description: >-
            Whether this is the workspace's default group, which new employees
            join.
          example: false
        memberType:
          type: string
          description: >-
            Who the group holds. Left out when not set; such a group has no
            members counted.
          example: PEOPLE
          enum:
            - PEOPLE
            - SERVICE_ACCOUNTS
        name:
          type: string
          description: Group name.
          example: Engineering
        policyAcceptance:
          $ref: '#/components/schemas/GroupPolicyAcceptanceDto'
        tasks:
          type: array
          description: >-
            The onboarding tasks assigned to the group, the same as `tasks` in
            the group list.
          items:
            $ref: '#/components/schemas/TaskRefDto'
        trainings:
          type: array
          description: >-
            Every training enabled for your workspace's frameworks, in the order
            Secfix shows them, and whether each one is assigned to this group.
          items:
            $ref: '#/components/schemas/GroupTrainingDto'
      description: >-
        A group and its settings: trainings, device monitoring and policy
        acceptance.
    ProblemDetail:
      type: object
      properties:
        code:
          type: string
          description: >-
            Error code for your error handling. It doesn't change between
            releases.
          example: not_found
        detail:
          type: string
          description: What went wrong in this request.
          example: No asset found for the given id.
        instance:
          type: string
          description: URI that identifies this occurrence of the error.
          example: /v1/inventory/assets/3f1c9a2e-8b4d-4e7a-9c1f-2a5b6c7d8e9f
        requestId:
          type: string
          description: >-
            The request's id, also sent in the `X-Request-Id` header. Include it
            when you contact support.
          example: req_01HZY8Q3M4N5P6R7S8T9V0W1X2
        status:
          type: integer
          description: HTTP status code.
          format: int32
          example: 404
        title:
          type: string
          description: Short summary of the error type.
          example: Not Found
        type:
          type: string
          description: URI that identifies the error type.
          example: https://api.secfix.com/problems/not_found
      description: The JSON body of every error response.
    GroupDeviceMonitoringDto:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether device monitoring is assigned to this group.
          example: true
        subTasks:
          type: array
          description: The device monitoring steps, in the order Secfix shows them.
          items:
            $ref: '#/components/schemas/GroupSubTaskDto'
      description: Device monitoring settings of the group.
    GroupPolicyAcceptanceDto:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether policy acceptance is assigned to this group.
          example: true
        policies:
          type: array
          description: >-
            The approved policies assigned to the group, sorted by name, with
            custom policies after the others.
          items:
            $ref: '#/components/schemas/PolicyRefDto'
      description: Policy acceptance settings of the group.
    TaskRefDto:
      type: object
      properties:
        category:
          type: string
          description: Task category.
          example: TRAINING
          enum:
            - MONITORING
            - TRAINING
            - POLICIES
        key:
          type: string
          description: Task key. New keys can be added, so handle keys you don't know.
          example: SECURITY_AWARENESS_TRAINING
        name:
          type: string
          description: Task name as shown in Secfix.
          example: Security awareness training
      description: An onboarding task assigned to the group's members.
    GroupTrainingDto:
      type: object
      properties:
        description:
          type: string
          description: Training description. Left out when there is none.
        enabled:
          type: boolean
          description: Whether the training is assigned to this group.
          example: true
        key:
          type: string
          description: Task key.
          example: SECURITY_AWARENESS_TRAINING
        name:
          type: string
          description: Training name.
          example: Security awareness training
      description: A training your workspace can assign to groups.
    GroupSubTaskDto:
      type: object
      properties:
        enabled:
          type: boolean
          description: >-
            Whether the step is assigned to this group. Steps other than MDM
            show as unassigned while device monitoring itself isn't assigned.
          example: true
        key:
          type: string
          description: Task key.
          example: SECFIX_AGENT
        name:
          type: string
          description: Step name.
          example: Install the Secfix agent
      description: >-
        A device monitoring step, such as installing the Secfix agent or setting
        up MDM.
    PolicyRefDto:
      type: object
      properties:
        id:
          type: string
          description: The policy's id.
          format: uuid
          example: 5e8f0a1b-2c3d-4e5f-9a6b-7c8d9e0f1a2b
        name:
          type: string
          description: Policy name.
          example: Acceptable Use Policy
      description: An approved policy the group's members must accept.
  securitySchemes:
    bearerAuth:
      type: http
      description: Access token from `POST /oauth/token`.
      scheme: bearer
      bearerFormat: JWT

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.