WorkBoard User API
The User API from WorkBoard — 2 operation(s) for user.
The User API from WorkBoard — 2 operation(s) for user.
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