Proprietary Statement

© VisTracks, Inc. All rights reserved. Confidential and proprietary document.

This document and all information contained herein is the sole property of VisTracks, Inc. No intellectual property rights are granted by the delivery of this document or the disclosure of its content. This document shall not be reproduced or disclosed to a third party without the express written consent of VisTracks, Inc. This document and its content shall not be used for any purpose other than that for which it is supplied. The statements made herein are based on the mentioned assumptions and are expressed in good faith. Where the supporting grounds for these statements are not shown, VisTracks, Inc. will be pleased to explain the basis thereof. VisTracks and the VisTracks logo are trademarks of VisTracks, Inc. All rights reserved.

Introduction

The VisTracks Platform provides a set of cloud-resident services that support the receipt, storage, and manipulation of data from a variety of remote devices. Typical applications of this platform include monitoring and analyzing the movements and other characteristics of people and assets over time by receiving streams of data from these devices. The system exposes its key services to external client applications through a set of RESTful APIs. This document outlines the key objects that form the system and the corresponding service URLs that allow them to be accessed programmatically.

Base URL

Authentication

Most of the VisTracks API calls require authentication. These calls make use of “basic authentication” in which a user name and password are combined and encoded as “Base-64”. A typical sequence might include these steps:

  1. Concatenate String literals for username, “:”, and for password in the following format <username:password>, i.e., user:password
  2. Encode the concatenated String using Base64 encoding, i.e., DatatypeConverter.printBase64Binary(“user:password”.getBytes(“UTF-8”))
  3. Prepend the String literal “Basic ” to encoded result, i.e., “Basic ” + DatatypeConverter.printBase64Binary(“user:password”.getBytes(“UTF-8”)) resulting in a value of “Basic am9lOnBhc3N3b3Jk”
  4. Include request header named “Authorization” and give it the String value from step three above.

Required Content Headers

  • Content-Type : application/xml
  • Authorization : <authentication from previous section, i.e., Basic YWRtaW5AdGVzdDEub3JnOmFkbWlu>

Formats

Date and Time

Dates are accepted in multiple formats as follows:

  • June 23, 2014
  • 2014-06-03
  • 2014-06-03T20:00:00Z

All time formats are returned in Coordinated Universal Time (UTC). However, you can submit Date and Times with different time zones. To do this, replace the “Z” format specifier with your added or subtracted hour. Moreover, given that the URL encoded symbol for “+” is “%2B”, appending 2%B06 to a UTC implies UTC + six hours. An example string literal for adding six hours would look like the following: 2014-06-03T20:00:002%B06

Location

For both inputs and outputs, longitude precedes latitude. For example, values (90, 80) imply a longitude of 90 and latitude of 80. Invalid coordinates are as follows:

  • [0, 0]
  • Longitude values outside the range of [-180, 180]
  • Latitude values outside the range of [-90, 90]