Skip to content

Samples

We provide an interface to query all samples that are stored for a campaign.
You can utilize the following endpoint to query the samples of a campaign:

GET /samples/{organization_id}/{project_id}/{campaign_id}

This interface essentially gives you a view of all samples that we store.
It does not enable you to access the actual samples. The results are ordered by the date a sample was added in descending order.

Note: Please do not use this interface to perform regular polling of new samples. This would lead to an anti-pattern that would not scale well.
If you expect large volumes of data, please use our notification feature. If samples are expected at a high frequency the organization endpoints should be used in combination with the notify_on_samples flag.
Samples that have not been pushed to a Third-Party-Processor, is stored until the user revokes the consents.

Download Samples

To access the actual sample data you must call another endpoint that you essentially supply with unique sample_id's and in return you will receive URLs that enable the download of the sample data.
You can obtain the sample_id's through our notification feature our through the previous endpoint. Provide you a list of urls that can be used to download the actual sample files. You must use the following endpoint to aquire download urls of samples:

POST /samples/:createDownloadTickets

Decode Samples

Our samples are compressed JSON files. We utilize gzip and lzma+xz to perform sample compression. It is provided by the relevant notifications and the query endpoint.

The actual metric data is stored under the key "data".
Each metric has its own list item. In most cases each metric generates a single output value.
If this is not the case you can understand the "values" by taking a look at the metric definition.
E.g. the current position consists of two values (latitude and longitude) the metric definition specifies the order of the "datafields".
It is fixed and won't change.

The timestamps belong to the individual values. E.g. the first timestamp belongs to the first item in the values list.

Note: Our cars differ from each other. It's possible that a car that was sold in the US and was imported to the EU reports the outside temperature in fahrenheit instead of celsius. It is also possible that our cars report data in varying resolutions. Therefore, we include car specifics into the sample (min_value, max_value, resolution, unit). We won't perform any normalization and report the raw sensor data in combination with meta-data of the sensor (resolution, min_value, max_value, unit).