CloudLocate Service-to-Service access using REST API


Service-to-Service access enables you to leverage the power of CloudLocate sending the GNSS measurements from your application platform, instead of directly using your IoT device. 

This documentation will guide you through the process of setting up your Thingstream account for service-to-service access using the REST API

As an alternative option, you can publish the data using an MQTT client as described in this guide.


The prerequisites to complete the procedure are:

Procedure overview

The mains steps of this procedure are

Create a CloudLocate S2S Thing

The first step is to create a CloudLocate S2S things that provides you all the parameters to send the API:

The Thing let also you to:

Sign-in into the Thingstream portal and select the Location Things item from the Location Services section. Click the button to create a new Location Thing and browse to the CloudLocate section from where you can select the wizard to create CloudLocate S2S Thing.  

During the creation steps you are suggested to assign a price plan. If you skip this step the Thing will not be automatically activated and cannot be used. When you are ready to assign a plan, open the Thing panel and assign the preferred one. 

Get the position estimation

To obtain the position estimation, send the raw measurement generated by the GNSS in the device to CloudLocate service endpoint using a REST API. 

Note: the endpoint is specified in the details panel of the just created CloudLocate S2S thing

API specifications are available at

You can send the raw measurement in one of the two allowed format:

Get the position estimation with a known coarse position

If the use case allows you to know in advance a coarse position of the device with an accuracy of 100 Kms, it can be beneficial for the position estimation because:

You can provide the coarse position in 2 formats:

Note: you do not need necessary a u-blox GNSS to generate the Coarse position information, just a payload formatted as below 

Checksum field generation

The checksum is calculated over the message, starting and including the class field up until, but excluding, the checksum fields (see the figure UBX frame structure). The checksum algorithm used is the 8-bit Fletcher algorithm, which is used in the TCP standard RFC 1145). This algorithm works as follows:

CK_A = 0, CK_B = 0

For (I = 0; I < N; I++)


CK_A = CK_A + Buffer[I]

CK_B = CK_B + CK_A