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

# Get active user positions

> Returns all active user positions for the authenticated user's company. Only active positions and active categories are returned. The company scope always comes from the authenticated user and cannot be set manually.

Results are ordered by category name, then by position name. This endpoint does not paginate.

**Query parameters**

- **`lang`** (optional): Language for localized names. If omitted, uses the authenticated user's configured language; if none is set, defaults to **EN**. Examples: `EN`, `ES`, `BR`, `FR`.
- **`groupedByCategory`** (optional): When present with a **truthy** value, returns positions grouped by category. When omitted or falsy, returns a flat array. For predictable behavior, use `groupedByCategory=true` to group, and omit the parameter for a flat list.



## OpenAPI

````yaml /api-reference/openapi.json get /userPosition/getPositionsOnly
openapi: 3.1.0
info:
  title: COR API
  description: >-
    The COR API lets you integrate with projectcor.com applications using simple
    HTTP methods, in either XML or JSON formats, making this an ideal API for
    developing integrations with other softwares, external clients or mobile
    applications
  version: 1.0.0
servers:
  - url: https://api.projectcor.com/v1
    description: Production server
security:
  - bearerAuth: []
paths:
  /userPosition/getPositionsOnly:
    get:
      tags:
        - User Positions
      summary: Get active user positions
      description: >-
        Returns all active user positions for the authenticated user's company.
        Only active positions and active categories are returned. The company
        scope always comes from the authenticated user and cannot be set
        manually.


        Results are ordered by category name, then by position name. This
        endpoint does not paginate.


        **Query parameters**


        - **`lang`** (optional): Language for localized names. If omitted, uses
        the authenticated user's configured language; if none is set, defaults
        to **EN**. Examples: `EN`, `ES`, `BR`, `FR`.

        - **`groupedByCategory`** (optional): When present with a **truthy**
        value, returns positions grouped by category. When omitted or falsy,
        returns a flat array. For predictable behavior, use
        `groupedByCategory=true` to group, and omit the parameter for a flat
        list.
      parameters:
        - name: lang
          in: query
          required: false
          description: >-
            Language code for position and category names. Defaults to the
            authenticated user's language, or EN if not set.
          schema:
            type: string
            example: ES
        - name: groupedByCategory
          in: query
          required: false
          description: >-
            If truthy, returns positions grouped by category. Omit or use a
            falsy value for a flat list.
          schema:
            type: boolean
            example: true
      responses:
        '200':
          description: >-
            Active positions as a flat list, or grouped by category when
            `groupedByCategory` is truthy
          content:
            application/json:
              schema:
                oneOf:
                  - title: Flat list
                    type: array
                    items:
                      $ref: '#/components/schemas/UserPositionActiveFlatItem'
                  - title: Grouped by category
                    type: array
                    items:
                      $ref: '#/components/schemas/UserPositionsGroupedByCategoryItem'
              examples:
                Flat list:
                  summary: Flat list
                  description: GET /userPosition/getPositionsOnly?lang=ES
                  value:
                    - id: 101
                      name: Diseñador Senior
                      category_id: 10
                      category_name: Diseño
                    - id: 102
                      name: Desarrollador Semi Senior
                      category_id: 11
                      category_name: Desarrollo
                Grouped by category:
                  summary: Grouped by category
                  description: >-
                    GET
                    /userPosition/getPositionsOnly?lang=ES&groupedByCategory=true
                  value:
                    - categoryName: Desarrollo
                      categoryId: 11
                      positions:
                        - id: 102
                          name: Desarrollador Semi Senior
                    - categoryName: Diseño
                      categoryId: 10
                      positions:
                        - id: 101
                          name: Diseñador Senior
        '401':
          description: Unauthorized — missing or invalid access token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: 401
                message: Unauthorized
components:
  schemas:
    UserPositionActiveFlatItem:
      type: object
      description: Active position row in flat list responses
      properties:
        id:
          type: integer
          description: Position ID
        name:
          type: string
          description: Position name (localized when `lang` is used)
        category_id:
          type: integer
          description: Parent category ID
        category_name:
          type: string
          description: Category name (localized when `lang` is used)
    UserPositionsGroupedByCategoryItem:
      type: object
      description: Category bucket when `groupedByCategory` is truthy
      properties:
        categoryName:
          type: string
        categoryId:
          type: integer
        positions:
          type: array
          items:
            $ref: '#/components/schemas/UserPositionActiveInCategory'
    Error:
      type: object
      required:
        - error
        - message
      properties:
        error:
          type: integer
          format: int32
        message:
          type: string
    UserPositionActiveInCategory:
      type: object
      description: Position object inside a category group
      properties:
        id:
          type: integer
        name:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````