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

# Edit Worker Permissions

> Updates granular permission flags for a specific worker. Only include the permissions you want to change — omitted permissions remain unchanged. The `admin` and `owner` flags cannot be modified through this endpoint.

<Info>
  This is a partial update — only include the permissions you want to change. Omitted permissions remain unchanged.
</Info>

<Warning>
  The `admin` and `owner` flags cannot be modified through this endpoint. Only the granular permissions within the `permissions` object are updatable.
</Warning>


## OpenAPI

````yaml api-reference/v01.12.00/openapi-v01.12.00.json PATCH /workers/{id}/permissions
openapi: 3.0.0
info:
  title: Roosted
  version: 0.1.12
  contact:
    name: Support
    url: https://support.roostedhr.com/support/home
    email: support@roostedhr.com
  description: |-
    Enterprise API

    Sandbox keys and Production keys are requested from support
servers:
  - url: https://api.roostedhr.com/api/1_12
  - url: https://sandbox.roostedhr.com/api/1_12
security:
  - X-API-KEY: []
tags:
  - name: Announcements
  - name: Areas
  - name: Clients
  - name: Company
  - name: Configuration
  - name: Events
  - name: Locations
  - name: Payroll Groups
  - name: Rate Cards
  - name: Shifts
  - name: Skillsets
  - name: Time Tracking
  - name: Wage Rules
  - name: Workers
paths:
  /workers/{id}/permissions:
    parameters:
      - schema:
          type: string
        name: id
        in: path
        required: true
        description: Worker ID
    patch:
      tags:
        - Workers
      summary: Edit Worker Permissions
      description: >-
        Updates granular permission flags for a specific worker. Only include
        the permissions you want to change — omitted permissions remain
        unchanged. The `admin` and `owner` flags cannot be modified through this
        endpoint.
      operationId: patch-worker-permissions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditWorkerPermissionsRequest'
      responses:
        '200':
          description: Permissions updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkerPermissions'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: Machine-readable error code.
                  error:
                    type: string
                    description: Human-readable error message.
              examples:
                Invalid permission value:
                  value:
                    code: WRK-700
                    error: Invalid permission value
                Invalid permission name:
                  value:
                    code: WRK-700
                    error: 'Invalid permission: unknown_perm'
                Invalid permission value for key:
                  value:
                    code: WRK-700
                    error: 'Invalid permission value for: gridview'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: Machine-readable error code.
                  error:
                    type: string
                    description: Human-readable error message.
              examples:
                Invalid or missing API key:
                  value:
                    code: ATH-100
                    error: Invalid or missing API key
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: Machine-readable error code.
                  error:
                    type: string
                    description: Human-readable error message.
              examples:
                Insufficient permissions:
                  value:
                    code: WRK-800
                    error: Insufficient permissions to manage workers' permissions
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: Machine-readable error code.
                  error:
                    type: string
                    description: Human-readable error message.
              examples:
                Worker not found:
                  value:
                    code: WRK-300
                    error: Worker not found
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    description: Machine-readable error code.
                  error:
                    type: string
                    description: Human-readable error message.
              examples:
                Unexpected error during update:
                  value:
                    code: WRK-600
                    error: An unexpected error occurred while updating the worker
                Failed to update worker:
                  value:
                    code: WRK-310
                    error: Failed to update worker
components:
  schemas:
    EditWorkerPermissionsRequest:
      type: object
      description: >-
        Only the `permissions` object can be updated. Include only the
        permission flags you want to change.
      properties:
        permissions:
          type: object
          description: >-
            Granular module-level permission flags. All values are `1` (enabled)
            or `0` (disabled).
          properties:
            print_timesheets:
              type: integer
              enum:
                - 0
                - 1
              description: Can print timesheets
            create_edit_jobs:
              type: integer
              enum:
                - 0
                - 1
              description: Can create and edit jobs
            create_edit_all_jobs:
              type: integer
              enum:
                - 0
                - 1
              description: Can create and edit all jobs (not just own)
            text_release:
              type: integer
              enum:
                - 0
                - 1
              description: Can send text release notifications
            gridview:
              type: integer
              enum:
                - 0
                - 1
              description: Can access grid view
            configuration:
              type: integer
              enum:
                - 0
                - 1
              description: Can access configuration settings
            reports:
              type: integer
              enum:
                - 0
                - 1
              description: Can access reports
            add_edit_workers:
              type: integer
              enum:
                - 0
                - 1
              description: Can add and edit workers
            view_company_info:
              type: integer
              enum:
                - 0
                - 1
              description: Can view company information
            add_edit_locations:
              type: integer
              enum:
                - 0
                - 1
              description: Can add and edit locations
            time_off_manager:
              type: integer
              enum:
                - 0
                - 1
              description: Can manage time off requests
            request_manager:
              type: integer
              enum:
                - 0
                - 1
              description: Can access the request manager
            modify_skillsets:
              type: integer
              enum:
                - 0
                - 1
              description: Can modify skillsets
            modify_permissions:
              type: integer
              enum:
                - 0
                - 1
              description: Can modify other workers' permissions
            approve_punches:
              type: integer
              enum:
                - 0
                - 1
              description: Can approve time punches
            modify_punches:
              type: integer
              enum:
                - 0
                - 1
              description: Can modify time punches
            timekeeping_manager:
              type: integer
              enum:
                - 0
                - 1
              description: Can access the timekeeping manager
            communications_module:
              type: integer
              enum:
                - 0
                - 1
              description: Can access the communications module
            view_recent_reviews:
              type: integer
              enum:
                - 0
                - 1
              description: Can view recent reviews
            view_edit_wages:
              type: integer
              enum:
                - 0
                - 1
              description: Can view and edit wages
            create_edit_clients:
              type: integer
              enum:
                - 0
                - 1
              description: Can create and edit clients
            create_group_chats:
              type: integer
              enum:
                - 0
                - 1
              description: Can create group chats
            view_edit_all_chats:
              type: integer
              enum:
                - 0
                - 1
              description: Can view and edit all chats
            view_bg_check_results:
              type: integer
              enum:
                - 0
                - 1
              description: Can view background check results
            request_bg_checks:
              type: integer
              enum:
                - 0
                - 1
              description: Can request background checks
            exporting:
              type: integer
              enum:
                - 0
                - 1
              description: Can export data
            add_edit_workers_jobs:
              type: integer
              enum:
                - 0
                - 1
              description: Can add and edit workers on jobs
            create_job:
              type: integer
              enum:
                - 0
                - 1
              description: Can create jobs
            view_worker_profile_dialog:
              type: integer
              enum:
                - 0
                - 1
              description: Can view worker profile dialog
    WorkerPermissions:
      type: object
      description: >-
        Worker permission flags including admin/owner status and granular
        module-level permissions.
      properties:
        admin:
          type: integer
          enum:
            - 0
            - 1
          description: >-
            Whether the worker has admin privileges. `1` = admin, `0` = not
            admin.
        owner:
          type: integer
          enum:
            - 0
            - 1
          description: Whether the worker is an owner. `1` = owner, `0` = not owner.
        permissions:
          type: object
          description: >-
            Granular module-level permission flags. All values are `1` (enabled)
            or `0` (disabled).
          properties:
            print_timesheets:
              type: integer
              enum:
                - 0
                - 1
              description: Can print timesheets
            create_edit_jobs:
              type: integer
              enum:
                - 0
                - 1
              description: Can create and edit jobs
            create_edit_all_jobs:
              type: integer
              enum:
                - 0
                - 1
              description: Can create and edit all jobs (not just own)
            text_release:
              type: integer
              enum:
                - 0
                - 1
              description: Can send text release notifications
            gridview:
              type: integer
              enum:
                - 0
                - 1
              description: Can access grid view
            configuration:
              type: integer
              enum:
                - 0
                - 1
              description: Can access configuration settings
            reports:
              type: integer
              enum:
                - 0
                - 1
              description: Can access reports
            add_edit_workers:
              type: integer
              enum:
                - 0
                - 1
              description: Can add and edit workers
            view_company_info:
              type: integer
              enum:
                - 0
                - 1
              description: Can view company information
            add_edit_locations:
              type: integer
              enum:
                - 0
                - 1
              description: Can add and edit locations
            time_off_manager:
              type: integer
              enum:
                - 0
                - 1
              description: Can manage time off requests
            request_manager:
              type: integer
              enum:
                - 0
                - 1
              description: Can access the request manager
            modify_skillsets:
              type: integer
              enum:
                - 0
                - 1
              description: Can modify skillsets
            modify_permissions:
              type: integer
              enum:
                - 0
                - 1
              description: Can modify other workers' permissions
            approve_punches:
              type: integer
              enum:
                - 0
                - 1
              description: Can approve time punches
            modify_punches:
              type: integer
              enum:
                - 0
                - 1
              description: Can modify time punches
            timekeeping_manager:
              type: integer
              enum:
                - 0
                - 1
              description: Can access the timekeeping manager
            communications_module:
              type: integer
              enum:
                - 0
                - 1
              description: Can access the communications module
            view_recent_reviews:
              type: integer
              enum:
                - 0
                - 1
              description: Can view recent reviews
            view_edit_wages:
              type: integer
              enum:
                - 0
                - 1
              description: Can view and edit wages
            create_edit_clients:
              type: integer
              enum:
                - 0
                - 1
              description: Can create and edit clients
            create_group_chats:
              type: integer
              enum:
                - 0
                - 1
              description: Can create group chats
            view_edit_all_chats:
              type: integer
              enum:
                - 0
                - 1
              description: Can view and edit all chats
            view_bg_check_results:
              type: integer
              enum:
                - 0
                - 1
              description: Can view background check results
            request_bg_checks:
              type: integer
              enum:
                - 0
                - 1
              description: Can request background checks
            exporting:
              type: integer
              enum:
                - 0
                - 1
              description: Can export data
            add_edit_workers_jobs:
              type: integer
              enum:
                - 0
                - 1
              description: Can add and edit workers on jobs
            create_job:
              type: integer
              enum:
                - 0
                - 1
              description: Can create jobs
            view_worker_profile_dialog:
              type: integer
              enum:
                - 0
                - 1
              description: Can view worker profile dialog
  securitySchemes:
    X-API-KEY:
      name: X-API-KEY
      type: apiKey
      in: header

````