Engagedly User Attributes API

Retrieve system and custom user attribute definitions

OpenAPI Specification

engagedly-user-attributes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Engagedly Activities User Attributes API
  description: 'REST API for the Engagedly people strategy execution platform. Provides endpoints for managing users, departments, locations, job titles, business units, permissions, user attributes, and employee activities such as praises and recognition. Supports performance review workflows, goal management, and organizational data integration using header-based authentication with ClientKey and SecretKey.

    '
  version: beta
  contact:
    url: https://engagedly.com
  license:
    name: Proprietary
servers:
- url: https://api.engagedly.com/beta
  description: Production API server
security:
- clientKeyAuth: []
  secretKeyAuth: []
tags:
- name: User Attributes
  description: Retrieve system and custom user attribute definitions
paths:
  /user-attributes:
    get:
      operationId: listUserAttributes
      summary: List all user attributes
      description: 'Retrieves all available user attributes including both system attributes (preset: true) and custom attributes (preset: false). Returns field configurations, validation rules, and available options.

        '
      tags:
      - User Attributes
      parameters:
      - $ref: '#/components/parameters/pageParam'
      - $ref: '#/components/parameters/sizeParam'
      responses:
        '200':
          description: List of user attributes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserAttributeListResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    UserAttribute:
      type: object
      properties:
        id:
          type: integer
          example: 865
        name:
          type: string
          example: Department
        attribute_key:
          type: string
          example: custom-attribute-93cbf
        preset:
          type: boolean
          description: True for system attributes, false for custom attributes
        mandatory:
          type: boolean
        data_type:
          type: string
          enum:
          - text
          - number
          - date
          - boolean
          - single-select
          - multiple-select
        attribute_options:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/AttributeOption'
    AttributeOption:
      type: object
      properties:
        id:
          type: integer
        value:
          type: string
    ErrorResponse:
      type: object
      properties:
        error_type:
          type: string
          enum:
          - api_connection_error
          - authentication_error
          - invalid_request_error
          - validation_error
          example: validation_error
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetail'
    ErrorDetail:
      type: object
      properties:
        field:
          type: string
          example: name
        message:
          type: string
          example: Mandatory attribute missing
        code:
          type: string
          example: missing_field
    UserAttributeListResponse:
      type: object
      properties:
        success:
          type: boolean
        data:
          type: array
          items:
            $ref: '#/components/schemas/UserAttribute'
  responses:
    Unauthorized:
      description: Unauthorized — invalid or missing ClientKey/SecretKey
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  parameters:
    pageParam:
      name: page
      in: query
      description: Page number (starts at 1)
      schema:
        type: integer
        minimum: 1
        default: 1
    sizeParam:
      name: size
      in: query
      description: Number of records per page (maximum 50)
      schema:
        type: integer
        minimum: 1
        maximum: 50
        default: 25
  securitySchemes:
    clientKeyAuth:
      type: apiKey
      in: header
      name: ClientKey
      description: Client key obtained from the Engagedly portal under Integrations > Engagedly API
    secretKeyAuth:
      type: apiKey
      in: header
      name: SecretKey
      description: Secret key obtained from the Engagedly portal. Shown only once upon generation.