Workleap Provisioning API

CSV and JSON-based provisioning workflows

OpenAPI Specification

workleap-provisioning-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Workleap Attributes Provisioning API
  description: 'The Workleap REST API provides programmatic access to user and group management, provisioning workflows, engagement scores, pulse survey feedback, GoodVibes recognition data, and organizational attributes across the Workleap platform. It supports both one-time management actions and recurring HRIS-synced provisioning via JSON or CSV-based connections. Authentication uses an API key passed via the workleap-subscription-key header, and API access is available on the Pro and Enterprise subscription plans.

    '
  version: 1.0.0
  contact:
    url: https://docs.api.workleap.com/docs/getting-started
  termsOfService: https://workleap.com/legal/terms-of-service
  license:
    name: Proprietary
servers:
- url: https://api.workleap.com/public
  description: Workleap Production API
security:
- SubscriptionKey: []
tags:
- name: Provisioning
  description: CSV and JSON-based provisioning workflows
paths:
  /provisioning/csv:
    post:
      operationId: processCsvProvisioning
      summary: Schedule a csv provisioning
      description: Process files and schedule a csv provisioning for an organization
      tags:
      - Provisioning
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
                  description: The CSV file containing user provisioning data
              required:
              - file
      responses:
        '202':
          description: CSV provisioning scheduled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProvisioningResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /provisioning/json:
    post:
      operationId: processJsonProvisioning
      summary: Schedule a json provisioning
      description: Process json payload and schedule provisioning for an organization
      tags:
      - Provisioning
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JsonProvisioningRequest'
      responses:
        '202':
          description: JSON provisioning scheduled successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProvisioningResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
components:
  schemas:
    Error:
      type: object
      properties:
        code:
          type: string
          description: Error code
        message:
          type: string
          description: Human-readable error message
        details:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
              message:
                type: string
    CreateUserRequest:
      type: object
      required:
      - email
      - firstName
      - lastName
      properties:
        email:
          type: string
          format: email
          description: The user's email address
        firstName:
          type: string
          description: The user's first name
        lastName:
          type: string
          description: The user's last name
        jobTitle:
          type: string
          description: The user's job title
        department:
          type: string
          description: The user's department
        managerId:
          type: string
          format: uuid
          description: The user ID of the user's manager
    ProvisioningResponse:
      type: object
      properties:
        jobId:
          type: string
          format: uuid
          description: The unique identifier of the provisioning job
        status:
          type: string
          enum:
          - scheduled
          - processing
          - completed
          - failed
          description: The current status of the provisioning job
        scheduledAt:
          type: string
          format: date-time
          description: When the provisioning was scheduled
    JsonProvisioningRequest:
      type: object
      properties:
        users:
          type: array
          items:
            $ref: '#/components/schemas/CreateUserRequest'
          description: List of users to provision
        syncMode:
          type: string
          enum:
          - full
          - incremental
          description: Whether to do a full sync or incremental update
  responses:
    Unauthorized:
      description: Unauthorized - missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request - invalid parameters or request body
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: Forbidden - insufficient permissions or plan restrictions
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    SubscriptionKey:
      type: apiKey
      in: header
      name: workleap-subscription-key
      description: API key for authenticating requests to the Workleap API