Workleap Attributes API

User and system attribute management

OpenAPI Specification

workleap-attributes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Workleap Attributes 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: Attributes
  description: User and system attribute management
paths:
  /attributes:
    get:
      operationId: getAttributeDefinitions
      summary: Get system attribute values
      description: Get attributes for an organization
      tags:
      - Attributes
      responses:
        '200':
          description: Successful response with system attributes
          content:
            application/json:
              schema:
                type: object
                properties:
                  attributes:
                    type: array
                    items:
                      $ref: '#/components/schemas/AttributeDefinition'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /users/{userId}/attributes:
    get:
      operationId: getUserAttributes
      summary: Get a user system attribute values
      description: Get system attributes for a user
      tags:
      - Attributes
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: The unique identifier of the user
      responses:
        '200':
          description: Successful response with user attributes
          content:
            application/json:
              schema:
                type: object
                properties:
                  attributes:
                    type: array
                    items:
                      $ref: '#/components/schemas/UserAttribute'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    patch:
      operationId: modifyUserAttributes
      summary: Modify user system attributes
      description: Modify a user's system attributes in an organization
      tags:
      - Attributes
      parameters:
      - name: userId
        in: path
        required: true
        schema:
          type: string
          format: uuid
        description: The unique identifier of the user
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                attributes:
                  type: array
                  items:
                    $ref: '#/components/schemas/UserAttributePatch'
      responses:
        '200':
          description: User attributes updated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  attributes:
                    type: array
                    items:
                      $ref: '#/components/schemas/UserAttribute'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
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
    UserAttributePatch:
      type: object
      required:
      - attributeId
      - value
      properties:
        attributeId:
          type: string
          description: The unique identifier of the attribute to update
        value:
          description: The new value for the attribute
    UserAttribute:
      type: object
      properties:
        attributeId:
          type: string
          description: The unique identifier of the attribute
        name:
          type: string
          description: The name of the attribute
        value:
          description: The value of the attribute (type varies)
    AttributeDefinition:
      type: object
      properties:
        attributeId:
          type: string
          description: The unique identifier of the attribute
        name:
          type: string
          description: The name of the attribute
        type:
          type: string
          enum:
          - string
          - number
          - boolean
          - date
          description: The data type of the attribute
        isRequired:
          type: boolean
          description: Whether this attribute is required
  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'
    NotFound:
      description: Not found - the requested resource does not exist
      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