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

> Retrieves a paginated list of users with optional filtering. By default, responses are paginated with 20 items per page.

**Filter options:**
- `withHiddenUsers` (boolean): Include hidden users in the response
- `withPosition` (boolean): Include user positions in the response
- `createdAt` (string): Filter users created on or after this date (YYYY-MM-DD)
- `updatedAt` (string): Filter users updated on or after this date (YYYY-MM-DD)



## OpenAPI

````yaml /api-reference/openapi.json get /users
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:
  /users:
    get:
      tags:
        - Users
      summary: Get Users
      description: >-
        Retrieves a paginated list of users with optional filtering. By default,
        responses are paginated with 20 items per page.


        **Filter options:**

        - `withHiddenUsers` (boolean): Include hidden users in the response

        - `withPosition` (boolean): Include user positions in the response

        - `createdAt` (string): Filter users created on or after this date
        (YYYY-MM-DD)

        - `updatedAt` (string): Filter users updated on or after this date
        (YYYY-MM-DD)
      parameters:
        - name: page
          in: query
          schema:
            type:
              - integer
              - boolean
            default: 1
          description: 'Page number (default: 1). Set to `false` to disable pagination.'
        - name: perPage
          in: query
          schema:
            type: integer
            default: 20
          description: 'Number of items per page (default: 20).'
        - name: filters
          in: query
          schema:
            type: string
          description: >-
            URL-encoded JSON filters object. Available fields:
            `withHiddenUsers`, `withPosition`, `createdAt`, `updatedAt`.
          example: >-
            {"withHiddenUsers":true, "withPosition":true, "createdAt":
            "2024-01-01", "updatedAt": "2024-01-31"}
      responses:
        '200':
          description: Paginated list of users
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserListResponse'
              example:
                total: '100'
                perPage: 20
                page: 1
                lastPage: 20
                data:
                  - id: 123
                    first_name: Jane
                    picture: >-
                      https://user-images.staging.projectcor.com/local/Upload/ProfilePictures/50x50/user.png
                    last_name: Doe
                    email: jane.doe@example.com
                    cuil: ''
                    remaining_hours: 100
                    user_position_id: 3
                    role_id: 2
                    daily_hours: 0
                    labels: []
                    plan_id: 5
                    plan_name: Capacity Planning
                    hidden: false
                    position_name: null
                    category_id: null
                    category_name: null
                    gmt: '-03:00'
                    leaves: []
                  - id: 456
                    first_name: John
                    picture: >-
                      https://user-images.staging.projectcor.com/local/Upload/ProfilePictures/50x50/user.png
                    last_name: Smith
                    email: john.smith@example.com
                    cuil: ''
                    remaining_hours: 80
                    user_position_id: 2
                    role_id: 4
                    daily_hours: 8
                    labels:
                      - id: 210595
                        lang: es
                        name: Desarrollo web
                    plan_id: 5
                    plan_name: Capacity Planning
                    hidden: false
                    position_name: null
                    category_id: null
                    category_name: null
                    gmt: '-03:00'
                    leaves: []
components:
  schemas:
    UserListResponse:
      type: object
      properties:
        total:
          type: string
        perPage:
          type: integer
        page:
          type: integer
        lastPage:
          type: integer
        data:
          type: array
          items:
            $ref: '#/components/schemas/UserListItem'
    UserListItem:
      description: >-
        User object returned by list endpoints (GET /users, GET
        /users/search-by-name).
      allOf:
        - $ref: '#/components/schemas/UserBase'
        - type: object
          properties:
            labels:
              type: array
              description: Labels assigned to the user.
              items:
                $ref: '#/components/schemas/UserAssignedLabel'
    UserBase:
      type: object
      properties:
        id:
          type: integer
        first_name:
          type: string
        last_name:
          type: string
        picture:
          type: string
          description: URL to user's profile picture
        email:
          type: string
          format: email
        cuil:
          type: string
        remaining_hours:
          type: number
        user_position_id:
          type: integer
        role_id:
          type: integer
          description: >-
            1=C-Level, 2=Director, 3=Project Manager, 4=Collaborator,
            5=Freelancer, 6=Client
        daily_hours:
          type: number
        plan_id:
          type: integer
          description: 4=Project Management, 5=Capacity Planning
        plan_name:
          type: string
        hidden:
          type: boolean
        position_name:
          type: string
          nullable: true
        category_id:
          type: integer
          nullable: true
        category_name:
          type: string
          nullable: true
        gmt:
          type: string
          description: >-
            UTC offset from the user's last login location. Indicates the
            timezone configured at their last login.
          example: '-03:00'
        leaves:
          type: array
          items:
            $ref: '#/components/schemas/Leave'
    UserAssignedLabel:
      type: object
      description: Label assigned to a user, as returned in user list endpoints.
      properties:
        id:
          type: integer
        lang:
          type: string
        name:
          type: string
    Leave:
      type: object
      properties:
        id:
          type: integer
        user_id:
          type: integer
        company_id:
          type: integer
        leave_type_id:
          type: integer
        start:
          type: string
          format: date-time
        end:
          type: string
          format: date-time
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        deleted_at:
          type: string
          format: date-time
          nullable: true
        all_day:
          type: boolean
        leaveType:
          $ref: '#/components/schemas/LeaveType'
    LeaveType:
      type: object
      properties:
        id:
          type: integer
        name:
          type: string
        type_code:
          type: string
        company_id:
          type: integer
          nullable: true
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        deleted_at:
          type: string
          format: date-time
          nullable: true
        icon_name:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````