This API provides simple yet powerful search interface to access IMO content. Information regarding each of the API endpoints as well as Authentication and Recommended Workflows can be found below.
General
Authentication
Authentication can be done using OAuth 2.0.
Authenticating with OAuth 2.0
Once you have your Client ID and Client Secret from IMO, follow these steps to construct the Authorization
header.
Send a POST
request to:
https://api.imohealth.com/oauth/token
with body:
{
"client_id":"Client ID",
"client_secret":"Client Secret",
"audience":"https://api.imohealth.com",
"grant_type":"client_credentials"
}
and header:
content-type: application/json
The response will give you the access_token
. Use that to create the header:
Authorization: "Bearer " + access_token
Please contact IMO Customer Support at [CustomerSupport@imo-online.com](mailto:CustomerSupport@imo-online.com?subject=Portal Web Service) if you do not know your Client ID and Client Secret.
Request Format
The request format must be specified in the Content-Type
header as one of the following:
- JSON:
application/json
- XML:
application/xml
JSON is the recommended format.
Response Format
The response format must be specified in the Accept
header as one of the following:
- JSON:
application/json
- XML:
application/xml
JSON is the recommended format.
HTTP Status Codes
HTTP status codes indicate success or failure. For more on HTTP status codes, please see each endpoint's response section.
Sessions
A session is defined as the time between when a user begins their search and when a search result has been selected, resulting in the capture of the IMO Lexical code and relevant data elements. A new session should be created for each IMO lexical being captured.
Events
Event endpoints track the calling application's interaction with the API. Event tracking allows insight into end user behavior and enables IMO the ability to improve upon existing functionality, which will result in an improved user experience.
resultSelected
A resultSelected event needs to be sent every time a user selects an IMO term from the list of search results.
modifierWorkflowPresented
A modifierWorkflowPresented event needs to be sent every time a user selects an IMO term from the list of search results, which supports post-coordination, and the modifier workflow is triggered.
modifierItemSelected
A modifierItemSelected event needs to be sent every time a user selects a modifier item for a modifier group. There can only be a single modifier item selected for each modifier group, and there may be multiple modifier items selected for a single IMO Lexical term.
modifierResultSelected
A modifierResultSelected event needs to be sent every time a user finishes a modifier workflow, and selects a resulting IMO term.
suggestionSelected
A suggestionSelected event should be sent by the application each time a user selects one of the suggestions from the suggestion list.
Suggest
The suggest endpoint returns search suggestions to the user. The suggestions should be presented to the user for use in a subsequent search. For more information regarding implementing suggestions see the Search section in Implementation Overview.
Session Begins
Create a new session when the User begins a new search or after an IMO Lexical Code has been captured through a result selection.
To create a session perform a POST request to the session endpoint.
POST /api/v2/session
User Search
The user enters characters into the search field and is presented with suggestions based on their current input. The user initiates a search request to the IMO Portal API by pressing the application’s search button.
If suggestions are integrated a request to the suggest endpoint should be performed following a 300 ms keystroke delay after text is entered into the search field:
POST /api/v2/product/{productName}/suggest
The suggest endpoint behaves nearly identically to the search endpoint. The suggest endpoint returns suggestion results based on the input search term and filter criteria. In order to correctly integrate suggestion functionality, the same parameters and filters need to be supplied to the suggest endpoint as what are being applied to the search endpoint.
The suggestions returned from the request should be presented to the user for selection.
Once a user selects a suggestion a POST request to the suggestion selected endpoint should be sent with the details of the selection:
POST /api/v2/event/suggestionSelected
Once the appropriate text is entered into the search field a search request should be sent to the appropriate product's search endpoint:
POST api/v2/product/{productName}/search
The results returned in the search request's response should be presented to the user for selection.
Search Result Selected
The User selects a term that does not support post-coordination from the list of results produced by the search response, and the application captures the IMO Lexical Code.
Once a user has selected a term from the list of search results, make an event request to the result selected endpoint:
POST /api/v2/event/resultSelected
A new session should be created following a result selection.
Modifier Workflow (Problem IT and Problem IT DSM Only)
The user selects a term from the list of results produced by the search payload, which supports post coordination, and triggers the modifier workflow by making a subsequent detail request to the IMO Portal API. The modifier workflow is only available in the Problem IT product for terms that have a POST_COORD_LEX_FLAG value of 3.
Make a detail request to one of the following endpoints (depending on your license and implementation use case) to get all the relevant modifier information needed to present the modifier workflow to the user:
POST /api/v2/problemIT_Professional/detail
POST /api/v2/problemIT_Professional_DSM/detail
Once the necessary information has been collected from the detail payload and the modifier workflow has been presented to the user, make an event request to the modifier workflow presented endpoint:
POST/api/v2/event/modifierWorkflowPresented
Capture the modifier items selected by the User, and the resulting lexical code. There can only be a single modifier item selected for each modifier group, and there may be multiple modifier items selected for a single IMO Lexical term.
For each modifier item selected, make an event request to the modifier item selected endpoint:
POST /api/v2/event/modifierItemSelected
Once modifier items have been selected and the resulting IMO lexical has been captured, make an event request to the modifier result selected endpoint:
POST /api/v2/event/modifierResultSelected
A new session should be created following a result selection.