GoToAssist Service Desk is a popular, stable, cloud-based application that helps companies manage their professional IT services. Based on the widely accepted ITIL framework of best practices, the Service Desk module covers the full spectrum of managing a service, from dealing with customer issues to implementing changes and mapping your assets and infrastructure.

It provides incident, problem, change, knowledge, release and configuration management. You can also set up a customer portal so that users have a quick, simple way to find answers and get help, access a knowledge base, chat with your team, and manage IT events such as software updates via email.

Service Desk API Gives You Leverage

Developers can use our application programming interface (API) to connect Service Desk with other solutions, such as CRM tools or IT management platforms. Your team can free up time by cutting out repetitive data entry and extra tasks.

You can retrieve a list of incidents, create new ones, show time entries and much more. See the Postman API Collection to test and review the calls.

Authentication

Service Desk API’s are authenticated using OAuth 2.0 through the LogMeIn Account Service.

Structure of API Requests

The API expects HTTP requests with the Content-Type set "application/json". 

  • GET - fetches resources.
  • POST - creates new resources.
  • PUT - update existing resources.

Properties

Properties can be requested for each type of resource that the API is expected to return. For example, when fetching incidents, incident_properties can specified. If in incident_properties a related resource is requested then that resource type can have it's own properties supplied. If no properties are supplied then a default set of properties are returned.

Examples

Fetch just the id and title of all incidents:

GET /incidents?incident_properties=id,title

Fetch id and title of the incident and assigned user properties:

GET /incident/1?incident_properties=id,title&user_properties=name,email

Structure of Response

There are 3 types of response. A single resource response, a list resource response, and an error response.

Single resource response: (i.e single incident call)

 {
 "object": { /* Object resource structure */ },
 "related_objects": { /* Related objects structure */
 }

List resource response: (i.e list of incidents)

 {
 "objects": [
   { /* Object resource structure */ },
  { /* Object resource structure */ }
  ],
 "related_objects": { /* Related objects structure */ }
 }

Error response: This example response will return if a record was not found.

 {
 "code": "E01",
 "error": "Requested record not found"
 }

Structure of Object Resource

This is an example object structure of an incident:

 {
 "id": "/incidents/1",
 "_type": "incident",
 "title": "This is my title",
 "rels": {
  "assigned_user": "/users/4",
  "service": "/services/2",
  "comments": ["/notes/1", "/notes/2"]
  }
 }

Sample Request & Response:

Step 1: Get an oauth2 access token from authentication service

curl -X POST "https://api.getgo.com/oauth/v2/token" -H "Authorization: Basic WW1vVVpKbFdST29heVhWN0dZNXpQdmtoQVVZVmZkYU06YzVScmJsS0VjQ3JJUnhKQQ== -H "Accept:application/json" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=authorization_code&code=cc9355853e23ccbe6b738986199a58e5"

This returns (for example):

 {
 "access_token":"1S0nShGu8vnb6mdG1IqmeHGeVbyf",
 "token_type":"Bearer",
 "refresh_token":"T3O0c6DdDmHYl3it6IuHzqIbo6Ro9Xar",
 "expires_in":3600,
 "account_key":"1231212312",
 "account_type":"",
 "email":"testuser@myco.com",
 "firstName":"Test",
 "lastName":"User",
 "organizer_key":"31231231",
 "version":"3"
 }

Step 2: Make requests to service desk to get account detail using the above access token.

curl -X GET -H "Authorization: Bearer 1S0nShGu8vnb6mdG1IqmeHGeVbyf" -H "Accept:*/*" -H "Content-Type: application/json" https://api.getgo.com/G2ASD/rest/v2/accounts?account_properties=id,name

This returns the following structure:

 {
 "object":{
 "id": "/accounts/12321",
 “name": "Service Desk Support"
 },
 "related_objects: {
   }
 }

Failed response code & errors:

E00: Unimplemented

E01: Requested record not found

E14: Invalid access token or access token not supplied

E15: API client has been disabled

E16: Delete operation not permitted