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

> Creates a new worker profile. Only the worker name is required — all other fields are optional.

<Info>
  Only `name_first` is required. The `email` and `phone` fields are recommended — they enable account activation emails and SMS notifications respectively.
</Info>

<Tip>
  If `country_id` is omitted, the worker defaults to **United States**. Use the [GET /countries](/api-reference/v01.12.00/configuration/get-countries) endpoint to look up valid country identifiers.
</Tip>


## OpenAPI

````yaml api-reference/v01.12.00/openapi-v01.12.00.json POST /workers
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:
    parameters: []
    post:
      tags:
        - Workers
      summary: Create Worker
      description: >-
        Creates a new worker profile. Only the worker name is required — all
        other fields are optional.
      operationId: post-worker
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkerRequest'
      responses:
        '200':
          description: Worker created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Worker'
        '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:
                Worker name is required:
                  value:
                    code: WRK-100
                    error: Worker name is required
        '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
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: WRK-300
                  error:
                    type: string
                    example: 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:
                Failed to create worker:
                  value:
                    code: WRK-200
                    error: Failed to create worker
components:
  schemas:
    CreateWorkerRequest:
      type: object
      required:
        - name_first
      properties:
        name_first:
          type: string
          description: Worker's full name. This is the only required field.
        email:
          type: string
          description: >-
            Worker's email address. Recommended for account activation and
            notifications.
        phone:
          type: string
          description: >-
            Worker's phone number including country code (e.g. `+12125551234`).
            Recommended for SMS notifications.
        country_id:
          type: number
          description: Country identifier. Defaults to United States if not provided.
        birth_date:
          type: string
          format: date
          description: Worker's date of birth in `YYYY-MM-DD` format.
        address:
          type: string
          description: Street address.
        city:
          type: string
          description: City.
        zip:
          type: string
          description: ZIP or postal code.
        skillsets:
          type: array
          items:
            type: string
          description: List of skillset IDs to assign to the worker.
        custom_fields:
          type: array
          items:
            type: object
          description: Custom field values to set on the worker profile.
        areas:
          type: array
          items:
            type: string
          description: List of area IDs to assign to the worker.
        tags:
          type: array
          items:
            type: string
          description: List of tag IDs to assign to the worker.
    Worker:
      type: object
      description: >-
        A worker profile with personal information, status flags, and assigned
        skillsets/areas.
      properties:
        id:
          type: string
          description: Worker identifier
        reference_id:
          type: string
          description: External reference identifier
        signup_date:
          type: string
          description: Formatted signup date (e.g. "September 28th 2019")
        signup_date_original:
          type: string
          description: Raw signup timestamp (YYYY-MM-DD HH:mm:ss)
        last_login:
          type: string
          nullable: true
          description: Formatted last login date
        last_login_original:
          type: string
          nullable: true
          description: Raw last login timestamp
        next_shift_date:
          type: string
          nullable: true
          description: Formatted next scheduled shift date
        next_shift_date_original:
          type: string
          nullable: true
          description: Raw next shift timestamp
        last_shift_date:
          type: string
          nullable: true
          description: Formatted last shift date
        last_shift_date_original:
          type: string
          nullable: true
          description: Raw last shift timestamp
        account_status:
          type: integer
          enum:
            - 0
            - 2
            - 86
          description: 'Worker account status: `0` = pending, `2` = active, `86` = inactive'
        name_first:
          type: string
          description: Worker's first name
        email:
          type: string
          nullable: true
          description: Worker's email address
        phone:
          type: string
          nullable: true
          description: Worker's phone number
        address:
          type: string
          description: Street address
        city:
          type: string
          description: City
        zip:
          type: string
          description: ZIP/postal code
        country_id:
          type: number
          description: Country identifier
        areas:
          type: array
          items:
            $ref: '#/components/schemas/WorkerArea'
          description: Areas assigned to this worker
        bad_phone_number:
          type: integer
          enum:
            - 0
            - 1
          description: Whether the phone number is flagged as bad
        texting_off:
          type: integer
          nullable: true
          enum:
            - 0
            - 1
          description: Whether texting is disabled for this worker
        latitude:
          type: string
          nullable: true
          description: Worker's latitude coordinate
        longitude:
          type: string
          nullable: true
          description: Worker's longitude coordinate
        multilogin:
          type: integer
          enum:
            - 0
            - 1
          description: Whether multi-login is enabled
        onboarded:
          type: integer
          enum:
            - 0
            - 1
          description: Whether the worker has completed onboarding
        app_notifications_active:
          type: integer
          enum:
            - 0
            - 1
          description: Whether app notifications are active
        app_notifications_preferred:
          type: integer
          nullable: true
          enum:
            - 0
            - 1
          description: Whether app notifications are the preferred method
        current_worker:
          type: integer
          enum:
            - 0
            - 1
          description: Whether this is a current worker
        admin:
          type: integer
          enum:
            - 0
            - 1
          description: Whether the worker has admin privileges
        owner:
          type: integer
          enum:
            - 0
            - 1
          description: Whether the worker is an owner
        selected:
          type: string
          nullable: true
          description: Selection state
        selected_picture_location:
          type: string
          nullable: true
          description: Profile picture path
        pending_document_signing_count:
          type: integer
          description: Number of documents awaiting the worker's signature
        total_shifts:
          type: string
          description: Total number of shifts worked
        last_noshow:
          type: string
          nullable: true
          description: Date of last no-show, if any
        no_id:
          type: boolean
          description: Whether the worker lacks an ID on file
        stars:
          type: integer
          nullable: true
          enum:
            - 1
            - 2
            - 3
            - 4
            - 5
          description: Worker star rating (1–5)
        skillsets:
          type: array
          items:
            $ref: '#/components/schemas/WorkerSkillset'
          description: Skillsets assigned to this worker
        pullTimestamp:
          type: integer
          description: Unix timestamp of when this data was retrieved
    WorkerArea:
      type: object
      description: Area assigned to a worker.
      properties:
        id:
          type: string
          description: Area identifier
        name:
          type: string
          description: Area display name
    WorkerSkillset:
      type: object
      description: Skillset assigned to a worker.
      properties:
        roles_id:
          type: string
          description: Skillset identifier
        role_title:
          type: string
          description: Skillset display name
  securitySchemes:
    X-API-KEY:
      name: X-API-KEY
      type: apiKey
      in: header

````