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

# Get positions with users

> Retrieves a paginated list of positions with their assigned users



## OpenAPI

````yaml get /v1/user/personnel/positions
openapi: 3.0.0
info:
  title: Auth APIs Specification
  description: Section for description
  version: '1.0'
  contact: {}
servers:
  - url: https://staging.api.us.aptlydone.com/auth
  - url: https://staging.api.eu.aptlydone.com/auth
  - url: https://api.us.aptlydone.com/auth
  - url: https://api.eu.aptlydone.com/auth
security: []
tags: []
paths:
  /v1/user/personnel/positions:
    get:
      tags:
        - users
      summary: Get positions with users
      description: Retrieves a paginated list of positions with their assigned users
      operationId: UserController_getPositionPersonnel_v1
      parameters:
        - name: page
          required: true
          in: query
          description: Page number
          schema:
            default: 1
            type: number
        - name: limit
          required: true
          in: query
          description: Number of items per page
          schema:
            default: 10
            type: number
        - name: tenantId
          required: true
          in: query
          description: Tenant ID
          schema:
            example: 14f1b308-d014-4842-908f-1902cfae4f63
            type: string
        - name: search
          required: false
          in: query
          description: Search term to filter users or positions by name
          schema:
            example: John Doe
            type: string
        - name: groupIds
          required: false
          in: query
          description: Group IDs (comma separated)
          schema:
            example: >-
              db895572-9c43-498b-91a6-19e331f8eace,
              47562aa1-1006-4936-874d-ff671bd17e7b
            type: string
        - name: positionIds
          required: false
          in: query
          description: Position IDs (comma separated)
          schema:
            example: >-
              1c8e7178-b9ec-4e01-9489-3cd71a57598c,
              a50cd1df-a617-4f5d-b323-3955765ae542
            type: string
        - name: sortBy
          required: false
          in: query
          description: Field to sort by
          schema:
            example: users
            type: string
            enum:
              - positions
              - users
        - name: sortOrder
          required: false
          in: query
          description: Sort order
          schema:
            default: asc
            type: string
            enum:
              - asc
              - desc
      responses:
        '200':
          description: Position personnel data retrieved successfully
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PaginatedPersonnalPositionResponseDtoResponse
      security:
        - accessToken: []
components:
  schemas:
    PaginatedPersonnalPositionResponseDtoResponse:
      type: object
      properties:
        statusCode:
          type: number
          example: 200
        timestamp:
          type: string
          example: '2026-01-12T09:10:13.123Z'
        message:
          type: string
          example: Success
        data:
          type: object
          required:
            - page
            - limit
            - total
            - data
          properties:
            page:
              type: number
              example: 1
              minimum: 1
            limit:
              type: number
              example: 10
              minimum: 1
            total:
              type: number
              example: 100
              minimum: 0
            data:
              type: array
              items:
                $ref: '#/components/schemas/PersonnalPositionResponseDto'
      required:
        - statusCode
        - timestamp
        - message
    PersonnalPositionResponseDto:
      type: object
      properties:
        positionId:
          type: string
          example: aeaed9a0-890d-4de2-8005-77c4ebba3833
          description: ID of the position
        position:
          type: string
          example: Chief Brand Executive
          description: Position name
        users:
          type: string
          example: Katherine Metz I, Dr. Darren Rogahn, Lewis Ferry
          description: >-
            Comma separated list of users name, or "No Users Assigned" if
            position has no users
      required:
        - positionId
        - position
        - users
  securitySchemes:
    accessToken:
      scheme: bearer
      bearerFormat: JWT
      type: http

````