Skip to content

Getting Started with the Data API

This tutorial introduces you to the Data API, which provides access to your measurement data, alarms, device information, and executed tasks. Rather than simply listing API calls, we'll explore real-world scenarios that demonstrate when and why to use different endpoints.

The tutorial is tructured by typical customer use cases and each tutorial is independent. You can simply select a tutorial that best fits your current use case. You see all use cases in the right nav bar.

Overview

The Data API serves as your window into historical data across your monitoring system. Whether you need temperature measurements from last week, a record of all alarms from the past month, or an overview of your device status - the Data API provides these insights through both synchronous and asynchronous methods.

Before proceeding, ensure you're familiar with the concepts presented in the Authentication & Security and General Concepts documentation.

Requirements

To follow this tutorial, you'll need:


Introduction

The Data API offers two approaches for retrieving data, each designed for different scenarios:

When to Use Synchronous Endpoints

Synchronous endpoints are ideal when you need immediate access to small amounts of data. When you make a request to these endpoints, the API responds immediately with the requested information in the response body.

These endpoints work well for:

  • Quick status checks of your devices
  • Retrieving basic tenant information
  • Checking metadata for a small set of equipment
  • Any request where the expected response is less than 6MB

For example, if you want to check the current status of your devices, a synchronous endpoint gives you this information without additional steps.

When to Use Asynchronous Endpoints

Asynchronous endpoints are designed for retrieving larger datasets that might take time to prepare. Instead of waiting for all data to be gathered, these endpoints work in two steps:

First, you make a request to start the data preparation process. The API responds with a request identifier. Then, you periodically check whether your data is ready using that identifier. Once ready, you can download the results as files.

Asynchronous endpoints are the right choice when:

  • Retrieving larger data coverring a time period more than a few seconds
  • Working with sites that have many devices
  • Needing to download data in specific file formats for analysis (CSV, PARQUET)
  • You've received a "413 Payload too large" error from a synchronous endpoint

For instance, if you need all temperature measurements from your cold storage for the past month, an asynchronous endpoint can handle this volume of data efficiently.


Monitoring Device Health Status ( Synchronous Request Example )

Device status information helps you ensure all your devices are operating correctly. This information includes battery levels, connection status, and last communication times. If you only operate a handful of loggers, the result data is very small. This makes it a good use case to demonstrate the usage of synchronous API endpoints.

Caution

If you want to scale too many loggers in the future, you should still use the async API to avoid problems later on!

To check the current status of your devices, create a GET request to the device status endpoint in Postman:

GET https://data-api.<region>.<environment>.savr.saveris.net/v2/devices/status-sync

When you send this request, you'll receive a response with details about each device:

{
    "devices_status": [
        {
            "device_uuid": "1de598c3-fafa-4a80-a4fa-bd128796e925",
            "tenant_uuid": "f9a86182-3b41-4964-965a-149f083b11d6",
            "customer_site": "f9a86182-3b41-4964-965a-149f083b11d6",
            "serial_no": "55600762",
            "model_code": "0572 2622",
            "connection_type": "",
            "battery_level_percent": 90,
            "radio_level_percent": 100,
            "fw_version": "v01.70",
            "is_powersupply_on": "",
            "last_communication": "2024-03-28T09:42:33Z",
            "next_communication": "2024-03-28T09:56:20Z",
            "last_measurement_time": "2024-03-28T09:42:24Z",
            "processed_at": "2024-03-28T10:07:14Z"
        },

        ...

        {
            "device_uuid": "ff925f46-8ed9-4340-b78a-f4d7c90525c8",
            "tenant_uuid": "f9a86182-3b41-4964-965a-149f083b11d6",
            "customer_site": "f9a86182-3b41-4964-965a-149f083b11d6",
            "serial_no": "54811682",
            "model_code": "0572 2032",
            "connection_type": "",
            "battery_level_percent": 91,
            "radio_level_percent": 100,
            "fw_version": "v01.70",
            "is_powersupply_on": "",
            "last_communication": "2024-01-17T07:10:06Z",
            "next_communication": "2024-01-17T07:24:54Z",
            "last_measurement_time": "2024-01-17T07:10:00Z",
            "processed_at": "2024-01-17T00:00:00Z"
        }
    ]
}

This information allows you to identify devices with

  • low battery levels
  • poor signal strength
  • communication issues

helping you maintain your monitoring system's reliability.


Retrieving Temperature History for Compliance Reports

When preparing compliance reports or investigating temperature excursions, you'll need historical measurement data. For longer time periods or multiple devices, the asynchronous approach is necessary.

To retrieve historical measurement data:

First, initiate the data preparation with a POST request to the measurements endpoint:

POST https://data-api.<region>.<environment>.savr.saveris.net/v1/measurements

In the request body, specify the time period you're interested in:

{
  "date_time_from": "2025-04-01T00:00:00Z",
  "date_time_until": "2025-04-15T23:59:59Z",
  "options": {
    "result_file_format": "CSV"
  }
}

After sending this request, you'll receive a response containing a unique identifier for your data preparation request:

{
    "status": "Submitted",
    "request_uuid": "5f330649-9cf2-4d3d-8c96-9e4b2d960678"
}

Now, check if your data is ready by creating a GET request with the request UUID from the previous response:

GET https://data-api.<region>.<environment>.savr.saveris.net/v1/measurements/<request_uuid>

Initially, the status will show as "In Progress".

{
    "status": "In Progress"
}

Continue checking periodically until you see:

{
    "status": "Completed",
    "data_urls": [
        "https://tds-eu-i-data-storage-query-results.s3.amazonaws.com/measurements/a699086b-c336-457e-9191-0c825d6efbc8.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUKBNGLMOVJSUKLZM%2F20250423%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20250423T181831Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEGoaDGV1LWNlbnRyYWwtMSJIMEYCIQCr7A5KXZ0fWtoKFehDAMlyvP7C3K%2FsUtZ4TgBE%2FVb09gIhAIj9pVoakx4YTFmi5QbSC9oVMabg%2BLsDz4jm1QHkn2vwKqsDCPP%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQBBoMMjk2NDQ3NTMxODA1IgzjMFzq2P2JfjLBxpMq%2FwJD2r9rIDyd1ZUy6t6OfM9afHSNelJm6vBToGETzqv%2ByDywLzcnX1dUO6KvBCk%2FlxLsznmK6FvPdEiPQfa2gb4GL9dxeYmI8aKFsG%2B1gZwQ17d44AYDR9Sp6XsF9gO65GrAYNEc0xRzuUcqosr%2FE5sjvHoU5Z4b9PebuEJEwWHMby7ZngLjSY8yaewAaYElwSODI8x%2BM3cnKBPdjMz3lGMS6xTHz46CvYwdYQpFVpgBHDKLXy61HoVfdEgVku5vQkv3M2itg6TraBMLu7yFJ6bTF9R34sS1W0xybbE3rVeEqjH%2FfeL4CxQkoaFweSQrwKUhlkGZnXOTSHPC3sPxHjdHLaFgO9S2XWtOMFD6QFIo3WeFJiR6TZF%2BDyYUK1WuSGO%2BLmjXBoQ3%2BSYAJTvHBYTAVxzO7ld8bhM9q6B9kLJo8gO7OTCvbh0wFoVK2%2BKlYd2ZbYykPE3Nju6uTovF8BqRGSncnL%2FIVXhlin%2B7J2EsAfK9AaT8dMBDPznWHZHCpjDd2aTABjqcAQ28%2BM%2FJ%2FI7DjxEkwVMvCuMXJL1903aqZYwLI5XCftcq8kt6KLyEX0O4Jkp5sWgriPXjAn4jTUJglncvjfXCkPprd6zr6mFaez6hsylMiKUo0iigqjiCc%2Bv7fy2tdGVPa8U7%2BHp5MaElvNXaLN0wcGbF2HoGOtdrjaOg6DG7f5h9e7xHKPiPtCy%2BRIzQCGXXBsAf50vVvMciSJT%2Fag%3D%3D&X-Amz-Signature=4a96a10b2deaf7f0ba74bef11048431af58f5043a91873a782f58f9a1f50e68c"
    ],
    "metadata_url": "https://tds-eu-i-data-storage-query-results.s3.amazonaws.com/measurements/a699086b-c336-457e-9191-0c825d6efbc8.csv.metadata?response-content-disposition=attachment%3B%20filename%20%3D%205f330649-9cf2-4d3d-8c96-9e4b2d960677&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUKBNGLMOVJSUKLZM%2F20250423%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20250423T181832Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEGoaDGV1LWNlbnRyYWwtMSJIMEYCIQCr7A5KXZ0fWtoKFehDAMlyvP7C3K%2FsUtZ4TgBE%2FVb09gIhAIj9pVoakx4YTFmi5QbSC9oVMabg%2BLsDz4jm1QHkn2vwKqsDCPP%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEQBBoMMjk2NDQ3NTMxODA1IgzjMFzq2P2JfjLBxpMq%2FwJD2r9rIDyd1ZUy6t6OfM9afHSNelJm6vBToGETzqv%2ByDywLzcnX1dUO6KvBCk%2FlxLsznmK6FvPdEiPQfa2gb4GL9dxeYmI8aKFsG%2B1gZwQ17d44AYDR9Sp6XsF9gO65GrAYNEc0xRzuUcqosr%2FE5sjvHoU5Z4b9PebuEJEwWHMby7ZngLjSY8yaewAaYElwSODI8x%2BM3cnKBPdjMz3lGMS6xTHz46CvYwdYQpFVpgBHDKLXy61HoVfdEgVku5vQkv3M2itg6TraBMLu7yFJ6bTF9R34sS1W0xybbE3rVeEqjH%2FfeL4CxQkoaFweSQrwKUhlkGZnXOTSHPC3sPxHjdHLaFgO9S2XWtOMFD6QFIo3WeFJiR6TZF%2BDyYUK1WuSGO%2BLmjXBoQ3%2BSYAJTvHBYTAVxzO7ld8bhM9q6B9kLJo8gO7OTCvbh0wFoVK2%2BKlYd2ZbYykPE3Nju6uTovF8BqRGSncnL%2FIVXhlin%2B7J2EsAfK9AaT8dMBDPznWHZHCpjDd2aTABjqcAQ28%2BM%2FJ%2FI7DjxEkwVMvCuMXJL1903aqZYwLI5XCftcq8kt6KLyEX0O4Jkp5sWgriPXjAn4jTUJglncvjfXCkPprd6zr6mFaez6hsylMiKUo0iigqjiCc%2Bv7fy2tdGVPa8U7%2BHp5MaElvNXaLN0wcGbF2HoGOtdrjaOg6DG7f5h9e7xHKPiPtCy%2BRIzQCGXXBsAf50vVvMciSJT%2Fag%3D%3D&X-Amz-Signature=fc99b4b7ac483e94a9373e572e5c2bc7954f8637c1f5a632f0cadaf76cafaf53"
}

Once completed, download the files using the provided URLs. The CSV file will contain all measurements for the specified time period, which you can then use for your compliance reports or analysis.


Reviewing Past Alarm Events for Root Cause Analysis

When investigating incidents or preparing for audits, you may need to review historical alarm events. These records show when values exceeded thresholds or when system issues occurred.

To retrieve alarm history, start a data preparation request for alarm data:

POST https://data-api.<region>.<environment>.savr.saveris.net/v1/alarms

Specify the relevant time period in the body of the request. For example:

{
  "date_time_from": "2025-04-01T00:00:00Z",
  "date_time_until": "2025-04-15T23:59:59Z",
  "options": {
    "result_file_format": "CSV"
  }
}

After sending this request, you'll receive a response containing a unique identifier for your data preparation request:

{
    "status": "Submitted",
    "request_uuid": "fbf29fed-e3e2-46fb-a304-ee099e849044"
}

Now, check if your data is ready by creating a GET request with the request UUID from the previous response:

GET https://data-api.<region>.<environment>.savr.saveris.net/v1/alarms/{request_uuid}

Initially, the status will show as "In Progress". Continue checking periodically until the status changes to "Completed".

When ready, download the data file, which will contain alarm records including:

  • Alarm time and reason
  • Affected device or sensor
  • Alarm severity
  • Measured values that triggered the alarm

This information is valuable for identifying patterns in alarm events or demonstrating compliance with monitoring requirements during audits.


Understanding Your Organization Structure / Mapping Tenants and Sites for Enterprise Deployments

In multi-site deployments, understanding your organization structure is crucial for properly filtering and reconstructing your organization hierarchy. The tenants endpoint provides this structural information.

To retrieve your organization structure:

Make a GET request to the tenants endpoint:

GET https://data-api.<region>.<environment>.savr.saveris.net/v1/tenants

This will return information about your organization hierarchy:

{
  "tenants": [
    {
      "tenant_uuid": "1fg25c7b-06ff-4eed-9fa9-f7ae3drega68",
      "parent_uuid": "8dsefsg4-ede6-49e0-a552-386fadfa66ed",
      "is_operator": true,
      "organisation_name": "E2E Test Dev",
      "organisation_id": "",
      "organisation_email": "team-test-dev1@gmail.com",
      "country": "DE",
      "main_timezone": "Europe/Berlin",
      "main_language": "de_DE",
      "register_time": "2020-05-28 11:46:47.000000 UTC"
    },
    ...
    {
      "tenant_uuid": "f9a86182-3b41-4964-965a-149f83b561d6",
      "parent_uuid": "93743553-05c4-4f98-9f89-5fc29df78bc5",
      "is_operator": true,
      "organisation_name": "Restaurant 6 mit WrLS (direkt unter QA2)",
      "organisation_id": "Das hippe Frischerestaurant mit den günstigen Preisen",
      "organisation_email": "savr+rmrm6@gmail.com",
      "country": "DE",
      "main_timezone": "Europe/Berlin",
      "main_language": "de_DE",
      "register_time": "2022-05-10 06:38:28.000000 UTC"
    },
  ]
}

This information is particularly useful when:

  • Working with equipment or measurements across multiple sites
  • Setting up proper data filtering in your applications
  • Understanding relationships between different parts of your organization

It's also essential for properly working with task execution data, as we'll see in the next section.


Reviewing Quality Management Activities with Tenant and Task Execution Endpoint

The Task Execution API provides information about quality management activities performed in your organization. Unlike other endpoints that primarily deal with device data, this API focuses on quality procedures and checks performed by your staff, such as HACCP checks for food safety or other quality management procedures in the Saveris system.

When a user completes a quality check in a digital quality manual, or when certain system events trigger automated tasks, these records become available through this API.

To request task execution data, make the following asynchronous requests:

POST https://data-api.<region>.<environment>.savr.saveris.net/v1/tasks

You can set the time range and the desired output format in the body of your request:

{
  "date_time_from": "2025-04-01T00:00:00Z",
  "date_time_until": "2025-04-15T23:59:59Z",
  "options": {
    "result_file_format": "CSV"
  }
}

After sending this request, you'll receive a response containing a request UUID. Use this UUID to check the status until the data is ready:

GET https://data-api.<region>.<environment>.savr.saveris.net/v1/tasks/{request_uuid}

Once you've downloaded the data, you can filter for your specific organization using the tenant_uuid from the tenant endpoint and the tenant_uuid from the task execution endpoint.

To get the tenant data, make a GET request to retrieve tenant information:

GET https://data-api.<region>.<environment>.savr.saveris.net/v1/tenants

This will return information about your organization hierarchy:

{
  "tenants": [
    {
      "tenant_uuid": "1fg25c7b-06ff-4eed-9fa9-f7ae3drega68",
      "parent_uuid": "8dsefsg4-ede6-49e0-a552-386fadfa66ed",
      "is_operator": true,
      "organisation_name": "E2E Test Dev",
      "organisation_id": "",
      "organisation_email": "team-test-dev1@gmail.com",
      "country": "DE",
      "main_timezone": "Europe/Berlin",
      "main_language": "de_DE",
      "register_time": "2020-05-28 11:46:47.000000 UTC"
    },
    ...
    {
      "tenant_uuid": "f9a86182-3b41-4964-965a-149f83b561d6",
      "parent_uuid": "93743553-05c4-4f98-9f89-5fc29df78bc5",
      "is_operator": true,
      "organisation_name": "Restaurant 6 mit WrLS (direkt unter QA2)",
      "organisation_id": "Das hippe Frischerestaurant mit den günstigen Preisen",
      "organisation_email": "savr+rmrm6@gmail.com",
      "country": "DE",
      "main_timezone": "Europe/Berlin",
      "main_language": "de_DE",
      "register_time": "2022-05-10 06:38:28.000000 UTC"
    },
  ]
}

You have to join the data programmatically on your side.

The task execution data provides insights into:

  • Completed quality checks and their results
  • Who performed each check and when
  • Any corrective actions taken
  • The specific process controls and quality manual versions used

This data is valuable for quality management reviews, audit preparation, and demonstrating regulatory compliance.


Reviewing Measurement Points and Equipment Relationships

Understanding your equipment configuration helps you make sense of measurements and alarms. The equipment data shows how devices, sensors, and measurement points relate to physical assets like refrigerators, rooms, or production equipment.

To retrieve equipment configuration, start a data preparation request:

POST https://data-api.<region>.<environment>.savr.saveris.net/v2/equipments

With your desired time range:

{
  "date_time_from": "2025-04-01T00:00:00Z",
  "date_time_until": "2025-04-15T23:59:59Z",
  "options": {
    "result_file_format": "CSV"
  }
}

As a result, you will get a response similar to this one, including the request UUID to retrieve later your result:

{
    "status": "Submitted",
    "request_uuid": "a248ccc8-de45-482b-a00d-49e62e284cdc"
}

Check the status until the data is ready:

GET https://data-api.<region>.<environment>.savr.saveris.net/v2/equipments/{request_uuid}

The response includes a URL to download the prepared result file. A successful response will look like this:

{
    "status": "Completed",
    "data_urls": [
        "https://tds-eu-i-data-storage-query-results.s3.amazonaws.com/equipment/e9525a4f-81a7-4d0f-bc3a-f5e98f0c4f2d.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUKBNGLMOTPP64W5S%2F20250424%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20250424T121138Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHwaDGV1LWNlbnRyYWwtMSJIMEYCIQCnruaAvevYtPaMhbTEaOarHiaCYcPvlS2aA0bqA%2FCn2wIhALeZjuwJfxVs8kFvfUWsa1kksz2A0LHYtpVS649cwEkoKqoDCBUQBBoMMjk2NDQ3NTMxODA1IgwtdmT4KFpGukP5WakqhwO1PCC2q3UqgNyi441U7nXvRdO3aYl85x2EiK8d2z0SUN4O1aqeXAepjpwyN%2FlZgnm%2FNa6hiPbgwNF96nl%2BD%2F3iL7accUDJ4TooUNUx6k6QxA8b%2BR1Be3hfbHpVxMJ%2B%2B9ifTjsmstTP%2BLcoV%2FVIFzDdP0jgHdHxysnS9rwFJ4BWuTrip2ZcOY8V9cv5K0rTn%2BR2aQrVZJbwJph7nMVYd1bg2NmGbNzPDLN6vAfxDQ2adsdsadz6VkxZdEc4B71be6lCLJ6jmfLOIJxRkcj4JJjttnRH0xWI0Tdp8tei84dCbiJyzQy9wZbNpaVyCg1dGhv1sJHkqVfFWhFhzAPbk3oZl8A9UhoEvH16z%2FIE82Ni8wWDbwEHlwbMGpQE5kFkhvME2S95nZO4DIeBppb7s15XAGYj7ZbctZ6cMGad6VaGohY9jkSRR0aKEf10GrkjuKCE4%2BeK%2FGIVtwBbUrgOnrmCIP928HMYOPgXZEvCnABgAuTogj3gRyfQMRC3tXOhkdfi0SzB5lRy9MPLTqMAGOpwB%2FIySoACO5Cw8k6hmOGJ%2FI%2FiZVLBLdZK6iXeMdRRC%2FqyJzPiTXEvubdZo0mecNF%2F9y0kNuiB6cy0%2BrNhN65%2BSyMEmrIOxXe4g1QjqLq1RgdRR14mXei93AzBiN7utZNUCjZhVWdwa0sg9L80QGjcHHrs2GFOX04G2X51B6gGtzLbkrLxNcdBrEU5gd0QGKocDK8NTT6QaUbmYiIvx&X-Amz-Signature=f2c35718f7a6bca289a6430314c3a4d362944c0e31e694626ed0c62f5e1e486c"
    ],
    "metadata_url": "https://tds-eu-i-data-storage-query-results.s3.amazonaws.com/equipment/e9525a4f-81a7-4d0f-bc3a-f5e98f0c4f2d.csv.metadata?response-content-disposition=attachment%3B%20filename%20%3D%20a248ccc8-de45-482b-a00d-49e62e284cdc&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUKBNGLMOTPP64W5S%2F20250424%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20250424T121138Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHwaDGV1LWNlbnRyYWwtMSJIMEYCIQCnruaAvevYtPaMhbTEaOarHiaCYcPvlS2aA0bqA%2FCn2wIhALeZjuwJfxVs8kFvfUWsa1kksz2A0LHYtpVS649cwEkoKqoDCBUQBBoMMjk2NDQ3NTMxODA1IgwtdmT4KFpGukP5WakqhwO1PCC2q3UqgNyi441U7nXvRdO3aYl85x2EiK8d2z0SUN4O1aqeXAepjpwyN%2FlZgnm%2FNa6hiPbgwNF96nl%2BD%2F3iL7accUDJ4TooUNUx6k6QxA8b%2BR1Be3hfbHpVxMJ%2B%2B9ifTjsmstTP%sdfsgs%2FVIFzDdP0jgHdHxysnS9rwFJ4BWuTrip2ZcOY8V9cv5K0rTn%2BR2aQrVZJbwJph7nMVYd1bg2NmGbNzPDLN6vAfxDQ2LgQ8fIz6VkxZdEc4B71be6lCLJ6jmfLOIJxRkcj4JJjttnRH0xWI0Tdp8tei84dCbiJyzQy9wZbNpaVyCg1dGhv1sJHkqVfFWhFhzAPbk3oZl8A9UhoEvH16z%2FIE82Ni8wWDbwEHlwbMGpQE5kFkhvME2S95nZO4DIeBppb7s15XAGYj7ZbctZ6cMGad6VaGohY9jkSRR0aKEf10GrkjuKCE4%2BeK%2FGIVtwBbUrgOnrmCIP928HMYOPgXZEvCnABgAuTogj3gRyfQMRC3tXOhkdfi0SzB5lRy9MPLTqMAGOpwB%2FIySoACO5Cw8k6hmOGJ%2FI%2FiZVLBLdZK6iXeMdRRC%2FqyJzPiTXEvubdZo0mecNF%2F9y0kNuiB6cy0%2BrNhN65%2BSyMEmrIOxXe4g1QjqLq1RgdRR14mXei93AzBiN7utZNUCjZhVWdwa0sg9L80QGjcHHrs2GFOX04G2X51B6gGtzLbkrLxNcdBrEU5gd0QGKocDK8NTT6QaUbmYiIvx&X-Amz-Signature=0739bb18dcca91108d3110bfdce994758c1013ed8bcacb89edb5145037e80dda"
}

The resulting data will show how your equipment is structured, including:

  • Equipment hierarchies and relationships
  • Which sensors are attached to which equipment
  • Measurement thresholds and warning levels
  • Equipment types and purposes

This information provides context for your measurement data and helps you understand the physical meaning behind device and sensor identifiers.


Monitoring Sensor Battery and Connection Status

For proactive maintenance of your monitoring system, it's important to track the health of your sensors. The sensor status endpoint provides this information.

To retrieve sensor status information make a request to start data preparation:

POST https://data-api.<region>.<environment>.savr.saveris.net/v2/sensors/status

With your desired time range:

{
  "date_time_from": "2025-04-01T00:00:00Z",
  "date_time_until": "2025-04-15T23:59:59Z",
  "options": {
    "result_file_format": "CSV"
  }
}

As a result, you will get a response similar to this one, including the request UUID to retrieve later your result:

{
    "status": "Submitted",
    "request_uuid": "87c8ead1-d65c-44cc-a483-f6575d9d6574"
}

Check the status endpoint until the data is ready:

GET https://data-api.<region>.<environment>.savr.saveris.net/v2/sensors/status/{request_uuid}

The response includes a URL to download the prepared result file. A successful response will look like this:

{
    "status": "Completed",
    "data_urls": [
        "https://tds-eu-i-data-storage-query-results.s3.amazonaws.com/sensor-status/12032fc1-fefa-4a6e-b4ec-00889c1050db.csv?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUKBNGLMOVG63I2YS%2F20250424%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20250424T121344Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHwaDGV1LWNlbnRyYWwtMSJIMEYCIQDLeMakWjYijNQDx6W%2FvR9LdUfL93ttgJC9ZKQr9fEwgQIhAN1GhNGUGmXNSiz0pPmybnCynP4lRFmGYaG%2B%2BCLCJNmuKrIDCBUQBBoMMjk2NDQ3NTMxODA1IgzDor8oLCj89wi%2BjUIqjwPJx%2FkyjsTOomYIjLT2V9aPAdd65TRZM3PzfTzl1hlRgO%2BiF8ruJPj7I%2F3%2F%2BRQP7yUULhmaCa0U9kTN79bQhtq9O8F3lOJEc8P7FVVhcMAZQZlzruY1yCkwPcD517bR8hQHTM5OPLyBLL%2B7CbPephPxlP%2F53WJtozLCqsmYx1836%2BVt5Vdx%2FSBZWn2R3Ed6Ep%2FVeFFLFv2llcdXK2xyLVEQOPqDbHQSGPSno1QlB%2BXqpmzc9DSSr3i%2FieKwEM7jpDoh8%2BrrO416RVFiN30eOnt9KakJdxI1Z1m7whIo0E2rIB2AEtU18LQduQnhxYfw%2BFetvrpAWINMR22eW4JsajyX4T33MBP7rHm1v%2BN5d1ps5lhsFRNGppJdcxzRLXFHnAtNXa3Z3u19kzL3sNBcxqT6gR3ovNJf%2B%2F0T932NtXVj5fw3Q7no98joQtVboRp6LfvY%2BgbHldDp4x8IRCXgYcc%2FDPOXI0L56oXLrBmJJ%2F7ICNa1NOPAj0Nwc%2BowGU7J2ZixaaMg7OcPdkdnRJwoao4wg9SowAY6nQH60UuUQKTjP6LzL%2Fi2EUzuRULyCQnwzDgwtHLPUHPZsSXUE1dtiAjQG5%2FYxkwuPcEzJ45OcqBxA8PNa3Ysr9%2BDKHZGkKMFS9MN3FvQIX5XrnncHDI7wfPhgxTLR%2F5LQO2ixwCcwxBkMbXOKxbVLaSEurCT0qgA82gnEcZ3fzbY8zd3ke3L%2FchincgNsvw35O%2Bp%2FkkmRZU1PKGWGVGC&X-Amz-Signature=88f8a1176c713f84306b543c2024d737ae944c837c0071b485e07f7ecbab5f91"
    ],
    "metadata_url": "https://tds-eu-i-data-storage-query-results.s3.amazonaws.com/sensor-status/12032fc1-fefa-4a6e-b4ec-00889c1050db.csv.metadata?response-content-disposition=attachment%3B%20filename%20%3D%2087c8ead1-d65c-44cc-a483-f6575d9d6574&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUKBNGLMOVG63I2YS%2F20250424%2Feu-central-1%2Fs3%2Faws4_request&X-Amz-Date=20250424T121344Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEHwaDGV1LWNlbnRyYWwtMSJIMEYCIQDLeMakWjYijNQDx6W%2FvR9LdUfL93ttgJC9ZKQr9fEwgQIhAN1GhNGUGmXNSiz0pPmybnCynP4lRFmGYaG%2B%2BCLCJNmuKrIDCBUQBBoMMjk2NDQ3NTMxODA1IgzDor8oLCj89wi%2BjUIqjwPJx%2FkyjsTOomYIjLT2V9aPAdd65TRZM3PzfTzl1hlRgO%2BiF8ruJPj7I%2F3%2F%2BRQP7yUULhmaCa0U9kTN79bQhtq9O8F3lOJEc8P7FVVhcMAZQZlzruY1yCkwPcD517bR8hQHTM5OPLyBLL%2B7CbPephPxlP%2F53WJtozLCqsmYx1836%2BVt5Vdx%2FSBZWn2R3Ed6Ep%2FVeFFLFv2llcdXK2xyLVEQOPqDbHQSGPSno1QlB%2BXqpmzc9DSSr3i%2FieKwEM7jpDoh8%2BrrO416RVFiN30eOnt9KakJdxI1Z1m7whIo0E2rIB2AEtU18LQduQnhxYfw%2BFetvrpAWINMR22eW4JsajyX4T33MBP7rHm1v%2BN5d1ps5lhsFRNGppJdcxzRLXFHnAtNXa3Z3u19kzL3sNBcxqT6gR3ovNJf%2B%2F0T932NtXVj5fw3Q7no98joQtVboRp6LfvY%2BgbHldDp4x8IRCXgYcc%2FDPOXI0L56oXLrBmJJ%2F7ICNa1NOPAj0Nwc%2BowGU7J2ZixaaMg7OcPdkdnRJwoao4wg9SowAY6nQH60UuUQKTjP6LzL%2Fi2EUzuRULyCQnwzDgwtHLPUHPZsSXUE1dtiAjQG5%2FYxkwuPcEzJ45OcqBxA8PNa3Ysr9%2BDKHZGkKMFS9MN3FvQIX5XrnncHDI7wfPhgxTLR%2F5LQO2ixwCcwxBkMbXOKxbVLaSEurCT0qgA82gnEcZ3fzbY8zd3ke3L%2FchincgNsvw35O%2Bp%2FkkmRZU1PKGWGVGC&X-Amz-Signature=01e5b98da3083e070bbf1ce60c51a91e9bf8f1fee59e2231555f2d0b407a07fd"
}

The resulting data will provide details about each sensor, including:

  • Battery level
  • Signal strength
  • Last communication time
  • Firmware version
  • Serial number and model

With this information, you can identify sensors that need battery replacement or are experiencing communication issues before they impact your monitoring capabilities


Understanding Device Properties

For a comprehensive understanding of your devices' capabilities and settings, the device properties endpoint provides detailed metadata. To retrieve this information:

To retrieve this information initiate a data preparation request:

POST https://data-api.<region>.<environment>.savr.saveris.net/v1/devices/properties-async

With your desired time range:

{
  "date_time_from": "2025-04-01T00:00:00Z",
  "date_time_until": "2025-04-15T23:59:59Z",
  "options": {
    "result_file_format": "CSV"
  }
}

Check the status until the data is ready:

GET https://data-api.<region>.<environment>.savr.saveris.net/v1/devices/properties-async/{request_uuid}

The device properties data includes:

  • Detailed information about each device and its sensors
  • Channel configurations and measurement capabilities
  • Physical units and measurement types
  • Calibration status and possibilities
  • Relationships to equipme

This information is valuable for documentation purposes and for understanding the full capabilities of your monitoring system


What's Next?

Now that you understand how to retrieve various types of data using the Data API, you might consider:

  • Creating automated reports based on measurement data
  • Setting up dashboards to visualize device health
  • Establishing regular compliance reporting workflows
  • Performing in-depth analysis of quality management activities

Remember that while this tutorial focuses on manual interaction with the API using Postman, these same principles apply when integrating the API into your applications or scripts.


Troubleshooting

API Request Returns 401 Unauthorized

If you encounter a 401 Unauthorized error, check that:

  • Your token is valid and hasn't expired
  • The authorization type in Postman is set to "Bearer Token"
  • The token is correctly copied without extra spaces or characters

Response Shows 413 Payload Too Large

If you receive a 413 error, the response exceeds the 6MB limit for synchronous endpoints:

  • Switch to the corresponding asynchronous endpoint
  • Consider narrowing your time range
  • Apply more specific filters if available

Asynchronous Request Taking Too Long

For asynchronous requests that seem to take too long:

  • Verify your network connection is stable
  • Consider requesting smaller time ranges
  • Allow more time for processing large datasets
  • Check that your bearer token hasn't expired during processing