Endpoints in the BMC Helix Digital Workplace Catalog REST API
Authentication
Within BMC Helix Digital Workplace Catalog, users with the role permissions of asset manager and service catalog admin can see all services. The same users in external systems that link to BMC Helix Digital Workplace Catalog have the same access permissions.
To request an authentication token
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
id | Required | BMC Helix Digital Workplace Catalog user login account. | String | hannah_admin@calbro.com | Locate this parameter in the request body. This parameter is not specified by default. |
password | Required | Password. | String | <your_password> | Locate this parameter in the request body. This parameter is not specified by default. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Application returns an authentication token that is valid for about half an hour. |
Categories
To retrieve a full category list
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
perPage | Optional | Page size. | Integer | 20 | This is a query parameter. Default for non-paginated search -1. |
page | Optional | Page number. | Integer | 1 | This is a query parameter. Default 1. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Returns a category list object array. |
type | application/json | Not applicable. |
Response properties
Name | Description | Type |
---|---|---|
pageSize | Pass through the request parameter. | Integer |
page | Pass through the request parameter. | Integer |
categories | Category object array. | Array |
To retrieve descendants of a given category
This API returns only categories that contain services that are entitled to the requesting user.
Parameters
Name | Required | Description | Type | Example | Notes |
---|---|---|---|---|---|
categoryId | Required | Category ID to retrieve. | String | 1234 | Locate this parameter in the request URL. This parameter is not specified by default. |
depth | Optional | Depth of the category being retrieved. | Integer | 2 | This is a query parameter. Default 1. Allowed values: 1, 2, 3. |
requestedfor | Optional | When a user is specified, the entitlement check is performed against the user. Otherwise, the entitlement check is performed against the current user. | String | "Mary" | This is a query parameter. This parameter is not specified by default. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Returns a category array object. If the requested categoryId does not exist or does not contain descendants, then an empty array is returned. |
type | application/json | Not applicable. |
Response properties
Name | Description | Type | Notes |
---|---|---|---|
id | Category ID used by the application. | String | Not applicable. |
guid | Unique ID used by the platform. | String | Not applicable. |
name | Category name. | String | Not applicable. |
categoryGroupId | Group to which the category belongs. | String | Currently, there is only one category group, referenced as "Type of service". |
parentId | ID of the child's parent category. | String | If the parent ID is not available, null. |
childCount | Number of direct descendant categories. | Integer | Not applicable. |
subCategories | Null | String | Not applicable. |
To retrieve category groups
Parameters
None.
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Application returns the category array. |
type | application/json | Not applicable. |
Response properties
Name | Description | Type |
---|---|---|
id | Category group ID used by the application. | String |
guid | Unique ID used by the platform. | String |
name | Category group name. | String |
description | Description of the category group. | String |
systemId | System ID of the category group. | String |
groupStatus | Status of of the category group. | String |
childCount | Number of direct descendant categories. | Integer |
categories | Null | String |
To retrieve categories of a given category group
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
categoryGroupId | Required | Category group ID to retrieve. | String | 1234 | Locate this parameter in the request URL. This parameter is not specified by default. |
depth | Optional | Depth of the category being retrieved. | Integer | 2 | This is a query parameter. Default 1. Allowed values: 1, 2, 3. |
requestedfor | Optional | When a user is specified, the entitlement check is performed against the user. Otherwise, the entitlement check is performed against the current user. | String | "Mary" | This is a query parameter. This parameter is not specified by default. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns the array of category objects. |
type | application/json | Not applicable. |
Services
To retrieve details of a single service item
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
serviceversionId | Required | Not applicable. | String | 1234 | Locate this parameter in the request URL. |
requestedfor | Optional | When a user is specified, the entitlement check is performed against the user. Otherwise, the entitlement check is performed against the current user. | String | "Mary" | This is a query parameter. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns the array of service details. |
type | application/json | Not applicable. |
To search for services
This API returns only published services. Search criteria can be serviceversionIds, categoryId, or free text for a single service name or tag.
However, multiple search criteria cannot be used in a same call. Only one search criterion must be used in the request body. Wildcards are also not supported.
"title": "Apple"
}
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
perPage | Required | Page size. | Integer | 20 | This is a query parameter. Default for non-paginated search -1. |
page | Required | Page number. | Integer | 1 | This is a query parameter. Default 1. |
serviceversionIds | Required | ID of the service. | String | 456 | Locate this parameter in the request body. |
categoryId | Required | ID of the category. | String | 476 | Locate this parameter in the request body. |
title | Required | Title of the service. | String | "Apple" | Locate this parameter in the request body. |
requestedfor | Required | When a user is specified, the entitlement check is performed against the user. Otherwise, entitlement is checked on the current user. | String | "Mary" | This is a query parameter. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response receives an array of service objects. |
type | application/json | Not applicable. |
To retrieve the full catalog view setting of ON or OFF
Parameters
None
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns a boolean value. True = ON, false = OFF. |
type | application/json | Not applicable. |
Requests and questions
To initiate a request for a service by ID
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
serviceversionId | Required | ID of the service. | String | 456 | Locate this parameter in the request body. |
excludedServiceversionIds | Required | A list of service revision IDs that will be excluded from the request bundle. | String | 457 | Locate this parameter in the request body. |
requestForUserIds | Required | A list of user IDs for which the service is requested. Best practice: We recommend limiting the number of users per request to 20. | List of strings | ["Mary", "Peter"] | Locate this parameter in the request body. By default, the current user is displayed. |
dependencies | Required | Not applicable. | String | {serviceRequestId: string} | Locate this parameter in the request body. |
quantity | Required | The service request quantity. | Integer | 1 | Locate this parameter in the request body. Default 1. |
referenceRequestId | Optional | A prior request ID, if relevant. | String | 5678 | Locate this parameter in the request body. |
myStuffItemId | Required | The My Stuff item ID. | String | 9012 | Locate this parameter in the request body. |
onBehalfOfUserId | Required | The user ID on behalf of which the service request is being made. | String | 9013 | Locate this parameter in the request body. |
questions | Optional | A list of common answers for relevant service request questions. | List of strings | Locate this parameter in the request body. If you choose to include it in the response, you must provide at least the questionId and the associated answer. If your service request is for multiple users, they all must have provided the same answer. Multiple answers for a single question are typically only relevant for the multiple-choice questions string. |
You can obtain the question ID in advance.
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns the array of questions. Important: The structure of the questionnaire may vary between services, see Creating-service-questionnaires. |
type | application/json | Not applicable. |
To get a service request questionnaire
This step is optional if you request a bulk order.
Parameters
Name | Required/Optional | Description | Type | Notes |
---|---|---|---|---|
id | Required | The service request ID of a new request. | String | Locate this parameter in the request URL. |
prefillRequestIds | Optional | A list of completed service request IDs to search for saved answers while re-requesting a service. | String | This a query parameter. |
Response
Response | Value |
---|---|
HTTP code | 200 |
type | application/json |
To send an answer to a question
This step is optional if you request a bulk order. Respond to a question ID from the list returned from the request. Each required question must be answered before the request can be submitted.
Parameters
Name | Required | Description | Type | Notes |
---|---|---|---|---|
serviceversionId | Required | The ID of the service. | String | Locate this parameter in the request URL. |
questionnaireId | Optional | The ID of the questionnaire. | String | Locate this parameter in the request body. |
questionId | Optional | The ID of the question. | String | Locate this parameter in the request body. |
answers | Optional | Answers to the questionnaire. | List of strings | Locate this parameter in the request body. |
serviceRequestId | Optional | The ID of the service request. | String | Locate this parameter in the request body. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response shows the changes of visibility by ID based on answers submitted. |
type | application/json | Not applicable. |
Returned values indicate how the answer being submitted impacts answers, options, and visibilities of other questions by ID.
To submit one or multiple service requests
Parameters
Name | Required/Optional | Description | Type | Where |
---|---|---|---|---|
requests | Required | A list of request IDs representing the requests being placed. | List of strings | Locate this parameter in the request body. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns an empty content body. |
type | application/json | Not applicable. |
To submit a specific service request
Parameters
Name | Where | Required | Description |
---|---|---|---|
serviceId | URL | Yes | ID of the service |
requestId | URL | Yes | ID of the request |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 or 201 Created | Successfully returns an empty content body |
type | application/json | Not applicable |
Error handling
Failed requests return an error object with the following properties.
Argument | Type | Description |
---|---|---|
message | string | Error message with error code |
To create and submit a service request in a single API call
Parameters
Name | Required/Optional | Description | Type | Where |
---|---|---|---|---|
title | Optional | The order title of the new service request. In BMC Helix Digital Workplace, this is displayed as the Order Description. | String | Locate this parameter in the request body. |
collaboratorsEnabled | Optional | If this parameter is true, the new service request is automatically shared with the user's default group of collaborators. If this parameter is false, the new service request is not automatically shared. The default is false. | Boolean | Locate this parameter in the request body. |
serviceRequests | Required | A list of service requests, using the properties described in the following table. | List | Locate this parameter in the request body. |
serviceRequests properties
Name | Required/Optional | Description | Type |
---|---|---|---|
serviceversionId | Optional | The ID of the service to be requested. | String |
requestForUserIds | Optional | A list of user IDs that require the service. | List |
excludedServiceversionIds | Optional | If the request is for a bundle, a list of service IDs in the bundle that should be excluded. | List |
dependencies | Optional | A list of IDs of dependent (child) services that are associated with this service. | List |
quantity | Optional | The order quantity for the request. If this property is not included, the default is 1. | Integer |
referenceRequestId | Optional | The ID of a previously created request that is linked to this request. | String |
myStuffItemId | Optional | The ID of the service request on the user's My Stuff page. | String |
onBehalfOfUserId | Optional | The user ID that the service request is made on behalf of, if any. | String |
requestedByUserId | Optional | The user ID that requests the service. | String |
summary | Optional | A summary of the request. In BMC Helix Digital Workplace, this is displayed as the description at the top of the order page. | String |
externalActivities | Required | A list of external activities from sources such as BMC Helix ITSM, using the properties described in the following table. | List |
externalActivities properties
Name | Required/Optional | Description | Type | Notes |
---|---|---|---|---|
externalActivityId | Required | The unique ID of the external activity. For example, the Instance ID of a BMC Helix ITSM ticket. | String | NA |
externalActivityDisplayId | Optional | The display ID, such as a work order ID, of the external activity. | String | NA |
externalActivityType | Optional | The type of the external activity. | String | NA |
externalSubCatalogId | Optional (but see the Notes column) | The ID of the subcatalog that the external activity uses. | String | At least one of externalSubCatalogId, connectionName, or connectionId must be provided. |
connectionName | Optional (but see the Notes column) | The connection name for the BMC Helix ITSM connector. | String | |
connectionId | Optional (but see the Notes column) | The connection ID for the BMC Helix ITSM connector. | String |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | NA |
type | object | Returned object is of type SubmitServiceOrderResponseDto |
To retrieve all requests of a specific service by the current user
Parameters
Name | Required/Optional | Description | Type | Notes | Example |
---|---|---|---|---|---|
serviceversionId | Required | ID of the service. | String | Locate this parameter in the request URL. | 456 |
perPage | Optional | Page size. | Integer | This is a query parameter. Default 10. | 20 |
page | Optional | Page number. | Integer | This is a query parameter. Default 1. | 1 |
Response
Response | Value |
---|---|
HTTP code | 200 |
type | application/json |
To find requests
Use this endpoint to display a list of service requests on the user's request timeline. If a user is not specified, all requests are displayed.
Parameters
Name | Required/Optional | Description | Type | Notes | Example |
---|---|---|---|---|---|
requestedfor | Required | Filter requests that are requested for the specified user. | String | This is a query parameter. | "Mary" |
requestedby | Required | Filter requests that are requested by the specified user. | String | This is a query parameter. | "Francie" |
since | Required | Filter requests that are updated since the specified date. | String | This is a query parameter. | Tue, 08 Mar 2016 17:49:05 GMT |
max | Required | Maximum amount of requests that will be retrieved. | Integer | This is a query parameter. | 30 |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns a requests object array. |
type | application/json | Not applicable. |
To find requests by IDs
Parameters:
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
serviceRequestIds | Required | Service request ID numbers represented as a list of string values. | String | ["4402", "4302", "4301"] | Locate this parameter in the request body. |
requestedFor | Optional | Filters service request IDs by requestedFor. | String | "Mary" | This is a query parameter. |
requestedBy | Optional | Filters service request IDs by requestedBy. | String | "Francie" | This is a query parameter. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns the array of service request objects. |
type | application/json | Not applicable. |
To find a request by its ID
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
requestId | Required | ID of the request. | String | "4402" | Locate this parameter in the request URL. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns a service request object. |
type | application/json | Not applicable. |
To find all answers submitted for the given request
Parameters
Name | Required/Optional | Description | Type | Notes |
---|---|---|---|---|
requestId | Required | ID of the request. | String | Locate this parameter in the request URL. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns a question object with completed answers. |
type | application/json | Not applicable. |
To retrieve all comments posted to the given request
Parameters
Name | Required/Optional | Description | Type | Notes |
---|---|---|---|---|
requestId | Required | ID of the request. | String | Locate this parameter in the request URL. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns an object with each comment. |
type | application/json | Not applicable. |
To add a comment to the given request
Parameters
Name | Required/ Optional | Description | Type | Notes |
---|---|---|---|---|
requestId | Required | ID of the request. | String | Locate this parameter in the request URL. |
text | Required | Text of the comment. | String | This is a query parameter. |
visibility | Required | PUBLIC for the comment to be visible to users, or INTERNAL for the comment to be visible only to the creator. | String | This is a query parameter. |
broadcast | Required | Whether to notify users subscribed to this request that a comment has been made. | Boolean | This is a query parameter. |
authorLoginID | Optional | The login ID of the user making the comment. | String | This is a query parameter. The default is the currently logged-in user. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns an object with each comment. |
type | application/json | Not applicable. |
To add an attachment to the given request
Parameters
Name | Required/ Optional | Description | Type | Notes |
---|---|---|---|---|
requestId | Required | ID of the request. | String | Locate this parameter in the request URL. |
activityLog | Required | Text of a comment associated with the attachment. | String | This is a query parameter. |
visibility | Required | PUBLIC for the attachment to be visible to users, or INTERNAL for the comment to be visible only to the creator. | String | This is a query parameter. |
broadcast | Required | Whether to notify users subscribed to this request that an attachment has been made. | Boolean | This is a query parameter. |
authorLoginID | Optional | The login ID of the user making the attachment. | String | This is a query parameter. The default is the currently logged-in user. |
file | Required | The file to be attached. | Binary | This is a query parameter. |
attachmentNames | Required | The name of the file to be attached. | String | This is a query parameter. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns an object with each comment. |
type | application/json | Not applicable. |
Reviews
To retrieve all reviews
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
serviceversionId | Optional | Retrieves reviews of a given service. | String | 123 | This is a query parameter. |
userId | Optional | Retrieves reviews of a given user. The platform variable $USER$ can be sent as the userId of the current user. | String | "hannah" | This is a query parameter. |
perPage | Optional | Page size. | Integer | 20 | This is a query parameter. Default -1 for non-paginated search. |
page | Optional | Page number. | Integer | 1 | This is a query parameter. Default 1. |
sortBy | Optional | Sorting criteria. | String | modifiedDate | This is a query parameter. Currently, only "modifiedDate" is available. |
sortDirection | Optional | Sorting direction: either ascending or descending. | String | asc | This is a query parameter. Default asc. |
requestedfor | Optional | When a user is specified, the entitlement check is performed against the user. Otherwise, entitlement is checked on the current user. | String | "Mary" | This is a query parameter. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns the array of reviews objects. |
type | application/json | Not applicable. |
To create a review for a given service
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
serviceversionId | Required | ID of the service. | String | "123" | Locate this parameter in the request body. |
title | Required | Title of the review. | String | "review title1" | Locate this parameter in the request body. |
content | Required | Content of the review. | String | "review content1" | Locate this parameter in the request body. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 201 | Successful response returns no content. |
To retrieve a review by its ID
Parameters
Name | Required/Optional | Description | Example | Notes |
---|---|---|---|---|
reviewId | Required | ID of the review. | 465 | Locate this parameter in the request URL. |
requestedfor | Optional | When a user is specified, the entitlement check is performed against the user. Otherwise, entitlement is checked on the current user. | "Mary" | This is a query parameter. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns a review object. |
type | application/json | Not applicable. |
To update a review
Reviews can be updated only if the review was originally entered under the current user's account. Admin users cannot update reviews submitted by other users.
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
reviewId | Required | ID of the review to be updated. | String | 675 | Locate this parameter in the request URL. |
title | Optional | Updated title. | String | "new title" | Locate this parameter in the request body. If both the title and the content parameters are empty, change will be ignored. |
content | Optional | Updated content. | String | "new content" | Locate this parameter in the request body. If both the title and the content parameters are empty, change will be ignored. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns no content. |
To delete a review
Reviews can be deleted only if the review was originally entered under the current user's account. Admin users cannot delete reviews submitted by other users.
Parameters
Name | Required/Optional | Description | Type | Notes |
---|---|---|---|---|
reviewId | Required | ID of the review to be deleted. | String | Locate this parameter in the request URL. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns no content. |
Ratings
Rating is given as percentage (between 0 and 1).
To retrieve all ratings
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
serviceversionId | Optional | Retrieves ratings of a given service. | String | 123 | Locate this parameter in the request body. |
userId | Optional | Retrieves ratings from a given user. $USER$ can be used for current user. | String | 20 | Locate this parameter in the request body. |
perPage | Optional | Page size. | Integer | 20 | Locate this parameter in the request body. Default -1 for non-paginated search.. |
page | Optional | Page number. | Integer | 1 | Locate this parameter in the request body. Default 1. |
requestedfor | Optional | When a user is specified, the entitlement check is performed against the user. Otherwise, entitlement is checked on the current user. | String | "Hannah" | This is a query parameter. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns an array of ratings objects. |
type | application/json | Not applicable. |
To create a rating for a service
Parameters
Name | Required/Optional | Description | Type | Example | Where |
---|---|---|---|---|---|
serviceversionId | Required | ID of the service to be rated. | String | "123" | Locate this parameter in the request body. |
rating | Required | Rating value submitted as a percentage (number between 0 and 1). | Float | 0.8 | Locate this parameter in the request body. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 201 | Successful response returns no content. |
To retrieve a rating by its ID
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
ratingId | Required | ID of the rating to retrieve. | String | 456 | Locate this parameter in the request URL. |
requestedfor | Required | When a user is specified, the entitlement check is performed against the user. Otherwise, entitlement is checked on the current user. | String | "Mary" | This is query parameter. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns a rating object. |
type | application/json | Not applicable. |
To update a rating
Ratings can be updated only if the rating was originally entered under the current user's account. Admin users cannot update ratings submitted by other users.
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
ratingId | Required | The ID of the rating to update. | String | "4321" | Locate this parameter in the request URL. |
rating | Required | The rating value submitted as a percentage (number between 0 and 1). | Float | 0.6 | Locate this parameter in the request body. |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Successful response returns no content. |
Service migration
To export selected services
This endpoint packages service data and media files into a binary .zip archive that includes full catalog profiles, images, workflows, and questions.
Parameters
Name | Required/Optional | Description | Type | Example | Notes |
---|---|---|---|---|---|
(array list) | Yes | List of the service IDs to be exported. | String | ["000000000012912", "000000000012913"] | Locate this parameter in the request body. |
Response
A .zip file with the exported services.
To import a service .zip file
This endpoint extracts an uploaded binary .zip file and creates services with full catalog profiles, images, workflows, and questions.
Parameters
Name | Required/Optional | Description | Type | Notes |
---|---|---|---|---|
(uploaded file) | Required | The service IDs to be imported. | Binary data (.zip file) | Locate this parameter in the request body.The following form setting is required: Content-Disposition: form-data; name="file"; filename="{file name}" Content-Type: application/x-zip-compressed |
Response
Response | Value | Notes |
---|---|---|
HTTP code | 200 | Import is successful. |
Error handling
Failed authentication requests return an error object with the following properties:
Name | Description | Type |
---|---|---|
message | Error message with the error code. | String |
data | Error message description. | String |
HTTP code | An object with the requested ID is not found. | 404 |