WorkBoard User API

The User API from WorkBoard — 2 operation(s) for user.

OpenAPI Specification

workboard-user-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: WorkBoard External Public Activity (Action Items) Activity (Action Items) User API
  description: <h4>This is the API documentation for WorkBoard's version 1 REST API.</h4><p>WorkBoard's API provides resources to allow developers to interact with user, goal, and metric data in WorkBoard. All resources can be accessed via REST with GET, POST, PUT, PATCH and DELETE requests. For GET requests, query parameters can be passed as part of the request URL. All GET, POST, PUT, PATCH and DELETE requests must include the Bearer Token authorization header with the provided token you generate.</p><p>Click here to view the [changelog](./changes.html).<p>Click here to view the [Open API JSON file](./openapi.json).</p><p><strong>If you are interested in working in a demo instance, please contact your WorkBoard representative.<br/>WorkBoard's production server API root is https://www.myworkboard.com/wb/apis.</strong></p>
  version: 1.0.0
servers:
- url: https://demo.biz.wobo-int.com/wb/apis
  description: Demo Server
tags:
- name: User
paths:
  /user:
    get:
      summary: Get an individual user, or all users with a Data-Admin token.
      description: '**Without any parameters, this will return the user profile associated with the token. If the token is a ''Data-Admin'' token, some parameters will return a different result.**'
      tags:
      - User
      parameters:
      - name: user_id
        description: '**Data-Admin:** Pass the user_id OR email address for the user.'
        in: query
        schema:
          oneOf:
          - type: integer
          - type: string
      - name: custom_attributes
        description: Return the custom attributes for a specific user. Use `custom_attributes=1` to return the values.
        in: query
        required: false
        schema:
          type: integer
      - name: opt_filters
        in: query
        schema:
          type: string
        description: 'If you have provisioned your users with a unique identifier generated by your system, then you can query them with this attribute. opt_filters can be set to a JSON with the following format: opt_filters={"external_id": ["externalids"]} — where "externalids" is an array of the external ids. Example: opt_filters={"external_id": ["a123bc", "ax123b"]}'
      - name: include
        description: <ul><li><b>Data-Admin:</b> Add include=org_members to return an array of all users of the organization. See `limit` and `offset` for pagination.</li><li>Add include=team_members to return an array of members from teams to which the current user has access.</li><li>Add include=org_reports to return an array of reports for the given `user_id`.</li></ul>
        in: query
        schema:
          type: string
          enum:
          - org_members
          - team_members
          - org_reports
      - name: limit
        description: <ul><li><b>Data-Admin:</b> Use in combination with `include=org_members` and `offset` to return a paginated list of users of the organization. `limit` is the number of results to return.</li></ul>
        in: query
        schema:
          type: integer
      - name: offset
        description: <ul><li><b>Data-Admin:</b> Use in combination with `include=org_members` and `limit` to return a paginated list of users of the organization. `offset` is the number of results to skip before returning a result.</li></ul>
        in: query
        schema:
          type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    readOnly: true
                  message:
                    type: string
                    readOnly: true
                  data:
                    type: object
                    readOnly: true
                    properties:
                      totalCount:
                        type: integer
                      user:
                        oneOf:
                        - type: object
                          properties:
                            user_id:
                              type: string
                            user_name:
                              type: string
                            email:
                              type: string
                            first_name:
                              type: string
                            last_name:
                              type: string
                            wb_email:
                              type: string
                            cell_num:
                              type: string
                              nullable: true
                            create_at:
                              description: The timestamp for when the user was created. Is a `string` when `include=org_members` is used.
                              oneOf:
                              - type: string
                              - type: integer
                            last_visited_at:
                              type: string
                            picture:
                              type: string
                              description: The url for the image.
                            time_zone:
                              type: string
                            external_id:
                              type: string
                            created_from:
                              type: string
                            org_id:
                              type: string
                            status:
                              type: string
                            org_user_roles:
                              description: 'When `include=org_members` is used on the `GET /wb/apis/user` endpoint, returns a comma separated numerical list of `org_roles`.<br>Roles are: 6 = Org Member, 7 = Org Admin, 8 = Org Root, 9 = Org Accountant, 10 = Org Data-Admin, 11 = Org HR, 12 = Org Results, 13 = Engagement Metrics, 14 = Org IT Admin, 15 = Org WorkBoard Coach'
                              nullable: true
                              type: string
                            manager:
                              oneOf:
                              - type: boolean
                                description: Returns false if user does not have a manager.
                              - type: array
                                items:
                                  type: object
                                  properties:
                                    user_id:
                                      type: string
                                    email:
                                      type: string
                                    first_name:
                                      type: string
                                    last_name:
                                      type: string
                                    picture:
                                      type: string
                                    external_id:
                                      type: string
                                    role:
                                      description: '1: Direct Manager, 2: Dotted Manager'
                                      type: string
                            user_reports_to_me:
                              description: Returned on the `GET /wb/apis/user` request when `user_id` is set and `include=org_reports` is set.
                              nullable: true
                              type: array
                              items:
                                type: object
                                properties:
                                  user_id:
                                    type: string
                                  org_role:
                                    description: Either `direct` or `dotted`
                                    type: string
                            is_read_only:
                              type: boolean
                              description: Whether the user is read-only for those tenants with read-only enabled. If true, the user is a read-only user. If false, the user is a full user.
                            profile:
                              properties:
                                title:
                                  type: string
                                company:
                                  type: string
                                custom_attributes:
                                  type: array
                                  description: Returned when `custom_attributes=1` is passed in the query string.
                                  nullable: true
                                  items:
                                    properties:
                                      id:
                                        description: The unique ID for the custom attribute
                                        type: string
                                      name:
                                        description: The unique name for the custom attribute
                                        type: string
                                      value:
                                        description: The value for the custom attribute
                                        type: string
                        - type: array
                          items:
                            type: object
                            properties:
                              user_id:
                                type: string
                              user_name:
                                type: string
                              email:
                                type: string
                              first_name:
                                type: string
                              last_name:
                                type: string
                              wb_email:
                                type: string
                              cell_num:
                                type: string
                                nullable: true
                              create_at:
                                description: The timestamp for when the user was created. Is a `string` when `include=org_members` is used.
                                oneOf:
                                - type: string
                                - type: integer
                              last_visited_at:
                                type: string
                              picture:
                                type: string
                                description: The url for the image.
                              time_zone:
                                type: string
                              external_id:
                                type: string
                              created_from:
                                type: string
                              org_id:
                                type: string
                              status:
                                type: string
                              org_user_roles:
                                description: 'When `include=org_members` is used on the `GET /wb/apis/user` endpoint, returns a comma separated numerical list of `org_roles`.<br>Roles are: 6 = Org Member, 7 = Org Admin, 8 = Org Root, 9 = Org Accountant, 10 = Org Data-Admin, 11 = Org HR, 12 = Org Results, 13 = Engagement Metrics, 14 = Org IT Admin, 15 = Org WorkBoard Coach'
                                nullable: true
                                type: string
                              manager:
                                oneOf:
                                - type: boolean
                                  description: Returns false if user does not have a manager.
                                - type: array
                                  items:
                                    type: object
                                    properties:
                                      user_id:
                                        type: string
                                      email:
                                        type: string
                                      first_name:
                                        type: string
                                      last_name:
                                        type: string
                                      picture:
                                        type: string
                                      external_id:
                                        type: string
                                      role:
                                        description: '1: Direct Manager, 2: Dotted Manager'
                                        type: string
                              user_reports_to_me:
                                description: Returned on the `GET /wb/apis/user` request when `user_id` is set and `include=org_reports` is set.
                                nullable: true
                                type: array
                                items:
                                  type: object
                                  properties:
                                    user_id:
                                      type: string
                                    org_role:
                                      description: Either `direct` or `dotted`
                                      type: string
                              is_read_only:
                                type: boolean
                                description: Whether the user is read-only for those tenants with read-only enabled. If true, the user is a read-only user. If false, the user is a full user.
                              profile:
                                properties:
                                  title:
                                    type: string
                                  company:
                                    type: string
                                  custom_attributes:
                                    type: array
                                    description: Returned when `custom_attributes=1` is passed in the query string.
                                    nullable: true
                                    items:
                                      properties:
                                        id:
                                          description: The unique ID for the custom attribute
                                          type: string
                                        name:
                                          description: The unique name for the custom attribute
                                          type: string
                                        value:
                                          description: The value for the custom attribute
                                          type: string
        '400':
          description: Unauthorized / Invalid
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    description: 'false'
                  error:
                    type: string
                  error_description:
                    type: string
                example:
                  success: false
                  error: ''
                  error_description: ''
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    description: 'false'
                  error:
                    type: string
                  error_description:
                    type: string
                example:
                  success: false
                  error: ''
                  error_description: ''
      security:
      - bearerAuth: []
    post:
      summary: 'Data-Admin: Create a user'
      description: '`Data-Admin` token can create a user.'
      tags:
      - User
      requestBody:
        content:
          application/json:
            schema:
              required:
              - email
              - first_name
              - last_name
              properties:
                email:
                  type: string
                first_name:
                  type: string
                last_name:
                  type: string
                cell_num:
                  type: string
                manager_id:
                  type: string
                  description: The numerical user_id OR email for this user's manager.
                external_id:
                  type: string
                  description: The external ID for the user. Typically used to associate back to a source system.
                read_only:
                  type: boolean
                  description: Whether the user is read-only for those tenants with read-only enabled. If true, the user will be a read-only user. By default, this is false.
                profile:
                  properties:
                    title:
                      type: string
                    company:
                      type: string
                    custom_attributes:
                      description: A user with "Governance" role can create custom user attributes. The attribute must be created before it can used in the API. The attributes can be viewed in the Administrator Tools for users.
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            description: The ID of the custom attribute. Can be used in-place of the name attribute.
                            type: string
                          name:
                            description: The name of the custom attribute. Can be used in-place of the id attribute.
                            type: string
                          value:
                            type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    readOnly: true
                  message:
                    type: string
                    readOnly: true
                  data:
                    type: object
                    readOnly: true
                    properties:
                      totalCount:
                        type: integer
                      user:
                        type: object
                        properties:
                          user_id:
                            type: string
                          user_name:
                            type: string
                          email:
                            type: string
                          first_name:
                            type: string
                          last_name:
                            type: string
                          wb_email:
                            type: string
                          cell_num:
                            type: string
                            nullable: true
                          create_at:
                            description: The timestamp for when the user was created. Is a `string` when `include=org_members` is used.
                            oneOf:
                            - type: string
                            - type: integer
                          last_visited_at:
                            type: string
                          picture:
                            type: string
                            description: The url for the image.
                          time_zone:
                            type: string
                          external_id:
                            type: string
                          created_from:
                            type: string
                          org_id:
                            type: string
                          status:
                            type: string
                          org_user_roles:
                            description: 'When `include=org_members` is used on the `GET /wb/apis/user` endpoint, returns a comma separated numerical list of `org_roles`.<br>Roles are: 6 = Org Member, 7 = Org Admin, 8 = Org Root, 9 = Org Accountant, 10 = Org Data-Admin, 11 = Org HR, 12 = Org Results, 13 = Engagement Metrics, 14 = Org IT Admin, 15 = Org WorkBoard Coach'
                            nullable: true
                            type: string
                          manager:
                            oneOf:
                            - type: boolean
                              description: Returns false if user does not have a manager.
                            - type: array
                              items:
                                type: object
                                properties:
                                  user_id:
                                    type: string
                                  email:
                                    type: string
                                  first_name:
                                    type: string
                                  last_name:
                                    type: string
                                  picture:
                                    type: string
                                  external_id:
                                    type: string
                                  role:
                                    description: '1: Direct Manager, 2: Dotted Manager'
                                    type: string
                          user_reports_to_me:
                            description: Returned on the `GET /wb/apis/user` request when `user_id` is set and `include=org_reports` is set.
                            nullable: true
                            type: array
                            items:
                              type: object
                              properties:
                                user_id:
                                  type: string
                                org_role:
                                  description: Either `direct` or `dotted`
                                  type: string
                          is_read_only:
                            type: boolean
                            description: Whether the user is read-only for those tenants with read-only enabled. If true, the user is a read-only user. If false, the user is a full user.
                          profile:
                            properties:
                              title:
                                type: string
                              company:
                                type: string
                              custom_attributes:
                                type: array
                                description: Returned when `custom_attributes=1` is passed in the query string.
                                nullable: true
                                items:
                                  properties:
                                    id:
                                      description: The unique ID for the custom attribute
                                      type: string
                                    name:
                                      description: The unique name for the custom attribute
                                      type: string
                                    value:
                                      description: The value for the custom attribute
                                      type: string
        '400':
          description: Unauthorized / Invalid
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    description: 'false'
                  error:
                    type: string
                  error_description:
                    type: string
                example:
                  success: false
                  error: ''
                  error_description: ''
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    description: 'false'
                  error:
                    type: string
                  error_description:
                    type: string
                example:
                  success: false
                  error: ''
                  error_description: ''
      security:
      - bearerAuth: []
    patch:
      summary: Deactivate a user
      tags:
      - User
      parameters:
      - name: user_id
        description: '**Data-Admin:** Pass the user_id OR email address for the user.'
        in: query
        schema:
          oneOf:
          - type: integer
          - type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                action:
                  type: string
                  description: Only value is `disable`.
              required:
              - action
      responses:
        '204':
          description: Success returns a 204 header.
        '400':
          description: Unauthorized / Invalid
          content:
            application/json:
              schema:
                properties:
                  success:
                    type: boolean
                    description: 'false'
                  error:
                    type: string
                  error_description:
                    type: string
                example:
                  success: false
                  error: ''
                  error_description: ''
      security:
      - bearerAuth: []
  /user/{user_id_path}:
    get:
      summary: 'Data-Admin: Get user by `user_id_path`'
      description: '**`Data-Admin` tokens can get an individual user with the `user_id_path` parameter.**'
      tags:
      - User
      parameters:
      - name: user_id_path
        description: The unique numerical identifier for a user in WorkBoard.
        in: path
        required: true
        schema:
          type: integer
      - name: custom_attributes
        description: Return the custom attributes for a specific user. Use `custom_attributes=1` to return the values.
        in: query
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    readOnly: true
                  message:
                    type: string
                    readOnly: true
                  data:
                    type: object
                    readOnly: true
                    properties:
                      totalCount:
                        type: integer
                      user:
                        type: object
                        properties:
                          user_id:
                            type: string
                          user_name:
                            type: string
                          email:
                            type: string
                          first_name:
                            type: string
                          last_name:
                            type: string
                          wb_email:
                            type: string
                          cell_num:
                            type: string
                            nullable: true
                          create_at:
                            description: The timestamp for when the user was created. Is a `string` when `include=org_members` is used.
                            oneOf:
                            - type: string
                            - type: integer
                          last_visited_at:
                            type: string
                          picture:
                            type: string
                            description: The url for the image.
                          time_zone:
                            type: string
                          external_id:
                            type: string
                          created_from:
                            type: string
                          org_id:
                            type: string
                          status:
                            type: string
                          org_user_roles:
                            description: 'When `include=org_members` is used on the `GET /wb/apis/user` endpoint, returns a comma separated numerical list of `org_roles`.<br>Roles are: 6 = Org Member, 7 = Org Admin, 8 = Org Root, 9 = Org Accountant, 10 = Org Data-Admin, 11 = Org HR, 12 = Org Results, 13 = Engagement Metrics, 14 = Org IT Admin, 15 = Org WorkBoard Coach'
                            nullable: true
                            type: string
                          manager:
                            oneOf:
                            - type: boolean
                              description: Returns false if user does not have a manager.
                            - type: array
                              items:
                                type: object
                                properties:
                                  user_id:
                                    type: string
                                  email:
                                    type: string
                                  first_name:
                                    type: string
                                  last_name:
                                    type: string
                                  picture:
                                    type: string
                                  external_id:
                                    type: string
                                  role:
                                    description: '1: Direct Manager, 2: Dotted Manager'
                                    type: string
                          user_reports_to_me:
                            description: Returned on the `GET /wb/apis/user` request when `user_id` is set and `include=org_reports` is set.
                            nullable: true
                            type: array
                            items:
                              type: object
                              properties:
                                user_id:
                                  type: string
                                org_role:
                                  description: Either `direct` or `dotted`
                                  type: string
                          is_read_only:
                            type: boolean
                            description: Whether the user is read-only for those tenants with read-only enabled. If true, the user is a read-only user. If false, the user is a full user.
                          profile:
                            properties:
                              title:
                                type: string
                              company:
                                type: string
                              custom_attributes:
                                type: array
                                description: Returned when `custom_attributes=1` is passed in the query string.
                                nullable: true
                                items:
                                  properties:
                                    id:
                                      description: The unique ID for the custom attribute
                                      type: string
                                    name:
                                      description: The unique name for the custom attribute
                                      type: string
  

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/workboard/refs/heads/main/openapi/workboard-user-api-openapi.yml