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

# Create Skillset

> Creates a new skillset.

<Note>
  Only `role_title` is required. All other fields are optional and will use system defaults if omitted.
</Note>

<Tip>
  Set `on_for_new_signups` to `1` to automatically assign this skillset to all new workers when they sign up.
</Tip>


## OpenAPI

````yaml api-reference/v01.12.00/openapi-v01.12.00.json POST /skillsets
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:
  /skillsets:
    parameters: []
    post:
      tags:
        - Skillsets
      summary: Create Skillset
      description: Creates a new skillset.
      operationId: post-skillset
      requestBody:
        description: Skillset data
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SkillsetCreateRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Skillset'
        '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:
                Skillset name is required:
                  value:
                    code: SKL-100
                    error: Skillset name is required
                Skillset name exceeds maximum length:
                  value:
                    code: SKL-200
                    error: Skillset name exceeds maximum length
                Invalid default time format:
                  value:
                    code: SKL-300
                    error: Invalid default time format
                Invalid wage value:
                  value:
                    code: SKL-400
                    error: Invalid wage value
                Invalid boolean flag value:
                  value:
                    code: SKL-500
                    error: Invalid boolean flag value
                Default comments exceeds maximum length:
                  value:
                    code: SKL-600
                    error: Default comments exceeds maximum length
        '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 to manage skillsets:
                  value:
                    code: SKL-800
                    error: Insufficient permissions to manage skillsets
        '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:
                Skillset not found:
                  value:
                    code: SKL-700
                    error: Skillset 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:
                An unexpected error occurred:
                  value:
                    code: SKL-900
                    error: An unexpected error occurred
components:
  schemas:
    SkillsetCreateRequest:
      type: object
      description: Request body for creating a new skillset.
      required:
        - role_title
      properties:
        role_title:
          type: string
          minLength: 1
          maxLength: 75
          description: Skillset name
        on_for_new_signups:
          type: integer
          minimum: 0
          maximum: 1
          description: Auto-assign to new workers (0 = no, 1 = yes)
        default_time:
          type: string
          format: time
          example: '13:00'
          description: Default shift start time (HH:mm)
        default_comments:
          type: string
          maxLength: 65535
          description: Default shift comments
        default_wage:
          type: integer
          minimum: 0
          description: Default wage in cents
        client_portal_access:
          type: integer
          minimum: 0
          maximum: 1
          description: Visible in client portal (0 = no, 1 = yes)
    Skillset:
      type: object
      description: A skillset (role) that can be assigned to workers and shifts.
      properties:
        id:
          type: integer
          description: Skillset identifier
        role_title:
          type: string
          description: Skillset name
        default_time:
          type: string
          example: '13:00'
          description: Default shift start time (HH:mm)
        default_comments:
          type: string
          nullable: true
          description: Default shift comments
        default_payroll_group:
          type: string
          nullable: true
          description: Default payroll group code
        on_for_new_signups:
          type: integer
          minimum: 0
          maximum: 1
          description: >-
            Whether this skillset is auto-assigned to new workers (0 = no, 1 =
            yes)
        client_portal_access:
          type: integer
          minimum: 0
          maximum: 1
          description: >-
            Whether this skillset is visible in the client portal (0 = no, 1 =
            yes)
  securitySchemes:
    X-API-KEY:
      name: X-API-KEY
      type: apiKey
      in: header

````