The platform REST API is the foundation of programmatic access to Glia and provides a robust set of endpoints that cover all Glia functions - this includes the management and configuration of sites, operators, queues, channels, etc. as well as controlling engagements, getting statistics and many more. It allows for clients to integrate Glia with their existing systems, other tools and automate a lot of tasks.

Current Version

The current API version is v1 and it must be explicitly requested via the Accept header.

Accept: application/vnd.salemove.v1+json


All API access is over HTTPS and accessed from the endpoint. All data is sent and received as JSON. The only supported cryptographic protocol is TLS 1.2.

Blank fields are included as null instead of being omitted.

HTTP/1.1 200 OK
Date: Thu, 29 Jan 2015 11:44:37 GMT
Status: 200 OK
Connection: close
Content-Type: text/html;charset=utf-8
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS, PATCH
Access-Control-Allow-Headers: *, Content-Type, Accept, AUTHORIZATION, Cache-Control, X-Salemove-Visit-Session-Id
Access-Control-Allow-Credentials: true
Access-Control-Max-Age: 1728000
Access-Control-Expose-Headers: Cache-Control, Content-Language, Content-Type, Expires, Last-Modified, Pragma
Content-Length: 0
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN

All timestamps use the ISO 8601 format.



Many API methods take optional parameters. For GET requests, any parameters not specified as part of the path can be passed as an HTTP query string parameter. For POST, PATCH, PUT, and DELETE requests, parameters not included in the URL should be encoded as JSON with a content-type of application/json.

Client Errors

If the request is malformed, then the server responds with an error. The response contains a description of the error. In general, the response includes two attributes: namely, error which contains a short description of the error encountered; and a debug_message which contains a more detailed explanation of the error.

HTTP/1.1 400 Bad Request
"error": "BadRequest",
"message": "Invalid api version used",
"debug_message": "Invalid api version used. Make sure you set the 'Accept' header with API version e.g. 'application/vnd.salemove.v1+json'"

HTTP Verbs

Where possible, the Glia APIs strive to use appropriate HTTP verbs for each action.




Can be issued against any resource to get just the HTTP header info.


Used for retrieving resources.


Used for creating resources.


Used for updating resources with partial JSON data. For instance, an Issue resource has title and body attributes. A PATCH request may accept one or more of the attributes to update the resource.


Used for replacing resources or collections. For PUT requests with no body attribute, be sure to set the Content-Length header to zero.


Used for deleting resources.


Along with the request, the following headers must be sent:




Specifies the response format and the API version. See Accept for more information.


Token for authorization. See Authorization for more information.

curl --request GET \
--header "Authorization: Bearer $access_token" \
--header "Accept: application/vnd.salemove.v1+json" \
type: 'GET',
url: '',
headers: {
Accept: 'application/vnd.salemove.v1+json',
Authorization: `Bearer ${access_token}`
success: function(response) {
ajaxResponse = response;


Operator Authorization

Each operator or other privileged user such as super manager, has an API token (e.g. wSdzZbnJfPEKOBs_D6Fwjw). This API token is provided by Glia success manager, it has a long lifetime and it is only used to obtain a bearer access token. The bearer access token is then used for the actual REST API calls using the Bearer authorization scheme and for security reasons has a short lifetime (one hour).

To obtain the bearer access token:

curl --request POST \
--header "Accept: application/vnd.salemove.v1+json" \
--header "Content-Type: application/json" \
--data '{"api_token": "wSdzZbnJfPEKOBs_D6Fwjw"}' \


{"token": "eyJhbGciOi<truncated>"}

The obtained bearer access token can be then used to send the actual requests to Glia REST API, for example:

curl --request GET \
--header "Authorization: Bearer eyJhbGciOi<truncated>" \
--header "Accept: application/vnd.salemove.v1+json" \

Visitor Authorization

Authorization of REST API calls by visitors, follows similar concept to operators. Each site has an application token (e.g. 6YpHYDxZjj8uSjTy). This application token is provided by Glia success manager and it has a long life time. The application token is used to create a visitor, and as part of it, also return the bearer access token for this visitor. The bearer access token is then used for the actual REST API calls using the Bearer authorization scheme and for security reasons has a short lifetime.

Once the visitor bearer access token is obtained, it can be used to send the actual requests to Glia REST API, for example:

curl --request GET \
--header "Authorization: Bearer eyJ0eXAiOi<truncated>" \
--header "Accept: application/vnd.salemove.v1+json" \

When Glia is integrated into a web page, the visitor is created implicitly by Glia integration script. In that case one should use the Visitor JS SDK to perform any actions as the visitor on the web page. The JS SDK takes care of handling the bearer access token necessary for the underlying REST API calls.


Unless otherwise specified, all endpoints require Accept: application/vnd.salemove.v1+json header.




Specifies the API version for JSON response. For the version 1 of the API the header value is application/vnd.salemove.v1+json


Specifies the returned content type. Possible values for $content_type are described under specific endpoints

Cross Origin Resource Sharing

The API supports Cross Origin Resource Sharing (CORS) for AJAX requests from any origin. More information about CORS is available in the CORS W3C Recommendation and in the intro to the HTML 5 Security Guide.


GET /operators

Generates the output

"next_page": "",
"last_page": "",
"collection": [
"href": "",
"attribute": "value",
"...": "..."
"href": "",
"attribute": "value",
"...": "..."

Some requests that return a large collection of items are paginated. The following parameters are supported:






Requests a specific page.



Sets the quantity of items returned with each page.

  • Minimum value is 1

  • Maximum value is 100

  • Default value is 30



Supported values are asc or desc.

GET /operators?page=2

The responses for collections that are paginated include an attribute next_page that points to the next page of items for the collection. In addition, the response includes a last_page attribute that points to the last page of the collection.