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

# List content groups for the caller's organization



## OpenAPI

````yaml /openapi/phrase-control-hub.json get /api/v1/public/groups
openapi: 3.0.0
info:
  version: 1.0.16
  title: Control Hub Service
  license:
    name: Proprietary
servers:
  - url: https://eu.phrase.com/control-hub/
security: []
tags:
  - name: Groups
    x-displayName: Content Groups
    description: |
      Organisation-scoped generic content groups and their object references.
paths:
  /api/v1/public/groups:
    get:
      tags:
        - Groups
      summary: List content groups for the caller's organization
      operationId: listGroups
      parameters:
        - name: page
          description: 'Zero-based page index (default: 0)'
          in: query
          required: false
          schema:
            type: integer
            default: 0
        - name: size
          description: 'Number of items per page (default: 20, max: 100)'
          in: query
          required: false
          schema:
            type: integer
            default: 20
            maximum: 100
      responses:
        '200':
          description: List of content groups
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupListResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '500':
          $ref: '#/components/responses/500'
components:
  schemas:
    GroupListResponse:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - content
          properties:
            content:
              type: array
              items:
                $ref: '#/components/schemas/Group'
    Page:
      description: >
        Pagination metadata returned alongside paged collection responses. Use
        `page` and `size` as query parameters to navigate through results. Pages
        are zero-indexed — the first page is `page=0`.
      required:
        - totalElements
        - totalPages
        - pageSize
        - pageNumber
      properties:
        totalElements:
          type: integer
          format: int64
          description: Total number of elements across all pages.
        totalPages:
          type: integer
          description: Total number of pages given the current `pageSize`.
        pageSize:
          type: integer
          description: Maximum number of elements returned per page.
        pageNumber:
          type: integer
          description: Zero-based index of the current page.
    Group:
      type: object
      required:
        - id
        - name
        - createdAt
        - updatedAt
      properties:
        id:
          type: string
          description: Unique identifier of the content group
        name:
          type: string
          description: >-
            Content group name (not required to be unique within the
            organization)
        description:
          type: string
          description: Optional free-text description
        createdAt:
          type: string
          description: When the content group was created — timestamp (ISO-8601 format)
        updatedAt:
          type: string
          description: >-
            When the content group was last updated — timestamp (ISO-8601
            format)
    Error:
      type: object
      required:
        - code
        - message
      properties:
        code:
          title: Error code
          example: NotBlank/NotFound/Error/...
          type: string
        message:
          title: Error message
          example: Organization UID cannot be null
          type: string
        args:
          title: >-
            Map of error arguments - so they are not needed to be parsed from
            the message
          type: object
          additionalProperties: true
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorEntry'
          description: list of errors this error consist of
    ErrorEntry:
      required:
        - code
        - message
      properties:
        message:
          type: string
          description: Error message
        code:
          type: string
          description: Error code
        args:
          type: object
          additionalProperties: true
          description: More information about error
  responses:
    '400':
      description: Invalid request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    '500':
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'

````