> ## 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.

# List positions



## OpenAPI

````yaml get /v1/positions
openapi: 3.0.0
info:
  title: Settings APIs Specification
  description: Section for description
  version: '1.0'
  contact: {}
servers:
  - url: https://staging.api.us.aptlydone.com/settings
  - url: https://staging.api.eu.aptlydone.com/settings
  - url: https://api.us.aptlydone.com/settings
  - url: https://api.eu.aptlydone.com/settings
security: []
tags: []
paths:
  /v1/positions:
    get:
      tags:
        - positions
      summary: List positions
      operationId: TenantPositionController_getPositions_v1
      parameters:
        - name: page
          required: false
          in: query
          description: Page number
          schema:
            type: number
            example: 1
            minimum: 1
        - name: limit
          required: false
          in: query
          description: Number of items per page
          schema:
            minimum: 1
            maximum: 100
            example: 10
            type: number
        - name: tenantId
          required: true
          in: query
          description: Tenant ID
          schema:
            example: 577f399b-6df2-4074-867f-f879534afd05
            type: string
        - name: sourceType
          required: false
          in: query
          description: Source type of the position (comma separated)
          schema:
            example: All,Directory Sync
            type: string
            items:
              type: string
              enum:
                - All
                - Directory Sync
                - Manually Added
        - name: groupIds
          required: false
          in: query
          description: Group IDs (comma separated)
          schema:
            example: >-
              f6997661-0ffb-4b0b-900b-089e3f45ebce,
              c2a38576-e4f9-4e55-8bde-746b59ffd6b3
            type: string
        - name: status
          required: false
          in: query
          description: Status (comma separated)
          schema:
            example: ACTIVE,INACTIVE
            type: string
        - name: search
          required: false
          in: query
          description: Search by position name
          schema:
            example: Developer
            type: string
        - name: sortBy
          required: false
          in: query
          description: Field to sort by
          schema:
            example: positionName
            type: string
        - name: sortOrder
          required: false
          in: query
          description: Sort order (asc/desc)
          schema:
            default: desc
            example: asc
            type: string
            enum:
              - asc
              - desc
        - name: select
          required: false
          in: query
          description: Specific fields to select (comma separated)
          schema:
            example: ''
            type: string
        - name: fields
          required: false
          in: query
          description: >-
            Specific fields to select (comma separated) - DEPRECATED: Use select
            instead
          deprecated: true
          schema:
            example: id,positionName
            type: string
        - name: selectedPositionIds
          required: false
          in: query
          description: Comma separated Selected Position IDs
          schema:
            example: >-
              97c76f4c-1afa-45c8-b9bd-b3766493bbf3,
              c6c72413-9cab-46b2-8c7a-c8510bf580ba
            type: string
        - name: createdDateStart
          required: false
          in: query
          description: Creation date range - start date
          schema:
            format: date-time
            example: '2024-01-01T00:00:00.000Z'
            type: string
        - name: createdDateEnd
          required: false
          in: query
          description: Creation date range - end date
          schema:
            format: date-time
            example: '2024-12-31T23:59:59.999Z'
            type: string
        - name: updatedDateStart
          required: false
          in: query
          description: Last updated date range - start date
          schema:
            format: date-time
            example: '2024-01-01T00:00:00.000Z'
            type: string
        - name: updatedDateEnd
          required: false
          in: query
          description: Last updated date range - end date
          schema:
            format: date-time
            example: '2024-12-31T23:59:59.999Z'
            type: string
        - name: issuerType
          required: false
          in: query
          description: Delegation issuer type
          schema:
            example: ROOT_AUTHORITY
            type: string
            enum:
              - ROOT_AUTHORITY
              - PERSONNEL_IN_POSITION
              - POSITION_ONLY
              - SPECIFIC_PERSONNEL
        - name: issuerUserId
          required: false
          in: query
          description: Delegation issuer user id
          schema:
            example: fecd3cfa-1d5e-4e77-bdd4-fb7f2bf20514
            type: string
        - name: issuerPositionId
          required: false
          in: query
          description: Delegation issuer position id
          schema:
            example: fb33b892-54fd-4612-bddd-b95f6397264f
            type: string
        - name: delegationPathway
          required: false
          in: query
          description: Delegation Pathway (comma separated)
          schema:
            default: []
            example: Matrix,Functional
            type: string
            items:
              type: string
              enum:
                - Matrix
                - Direct Line
                - Functional
        - name: recipientType
          required: false
          in: query
          description: Delegation recipient type
          schema:
            example: PERSONNEL_IN_POSITION
            type: string
            enum:
              - PERSONNEL_IN_POSITION
              - POSITION_ONLY
              - SPECIFIC_PERSONNEL
        - name: sortPositionIds
          required: false
          in: query
          description: Comma separated Position IDs to be sorted on top
          schema:
            example: >-
              4b319888-21d9-41ab-bdbf-9aa332f9f470,
              e2bbb502-3c6f-4d64-822a-48b6653c7698
            type: string
      responses:
        '200':
          description: Positions list retrieved successfully
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PaginatedTenantPositionResponseDtoResponse
      security:
        - accessToken: []
components:
  schemas:
    PaginatedTenantPositionResponseDtoResponse:
      type: object
      properties:
        statusCode:
          type: number
          example: 200
        timestamp:
          type: string
          example: '2026-01-08T06:33:22.014Z'
        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/TenantPositionResponseDto'
      required:
        - statusCode
        - timestamp
        - message
    TenantPositionResponseDto:
      type: object
      properties:
        id:
          type: string
          example: 1533d1e1-b367-4b1e-bd45-bec6d1939149
        tenantId:
          type: string
          example: 7991d6c1-8488-406e-acf6-f07e7d1399e8
        positionId:
          type: string
          example: '10000'
        positionName:
          type: string
          example: Senior Developer
        isSCIMProvisioned:
          type: boolean
          example: false
        externalId:
          type: string
          example: EXT-POS-12345
        instanceId:
          type: string
          example: db036aaa-14fe-454a-bc23-a722e4106925
        status:
          type: string
          enum:
            - ACTIVE
            - INACTIVE
          example: ACTIVE
        isDeleted:
          type: boolean
          example: false
        createdOn:
          format: date-time
          type: string
          example: '2025-01-13T12:34:59.300Z'
        updatedOn:
          format: date-time
          type: string
          example: '2025-01-13T12:34:59.300Z'
        groups:
          type: array
          items:
            $ref: '#/components/schemas/PositionGroupDto'
        delegationsReceived:
          type: number
          example: 1
          description: Delegations received by the user
          nullable: true
        delegationsIssued:
          type: number
          example: 1
          description: Delegations issued by the user
          nullable: true
      required:
        - id
        - tenantId
        - positionId
        - positionName
        - isSCIMProvisioned
        - status
        - isDeleted
        - createdOn
        - updatedOn
        - groups
        - delegationsReceived
        - delegationsIssued
    PositionGroupDto:
      type: object
      properties:
        groupName:
          type: string
          example: Engineering Team
        displayName:
          type: string
          nullable: true
          example: Engineering Team Display
        groupTypeName:
          type: string
          example: Organizations
        groupId:
          type: string
          example: 9fbe4911-1eae-499e-9190-a447a7134fe7
        groupTypeId:
          type: string
          example: a51e8d10-388f-4042-b8a8-578b7ace6992
        parentId:
          type: string
          nullable: true
          example: 2
        parentName:
          type: string
          nullable: true
          example: Technology Division
        createdAt:
          format: date-time
          type: string
          example: '2025-01-13T12:34:59.303Z'
        updatedAt:
          format: date-time
          type: string
          example: '2025-01-13T12:34:59.303Z'
      required:
        - groupName
        - displayName
        - groupTypeName
        - groupId
        - groupTypeId
        - parentId
        - parentName
        - createdAt
        - updatedAt
  securitySchemes:
    accessToken:
      scheme: bearer
      bearerFormat: JWT
      type: http

````