docs/dlx-data-download-api.md
---
layout: docs
title: DLx Data Download API
---
This document describes the API that can be used to download data from a RESOL DataLogger.
#### Supported Devices
- RESOL Datalogger DL2 (version 2.0 or higher)
- RESOL Datalogger DL3 (version 2.0 or higher)
#### Common parameters
- **sessionAuthUsername**: user name for web interface access.
- **sessionAuthPassword**: password for web interface access.
## Get live data as JSON
GET /dlx/download/live
#### Parameters
- **channel** (optional): only include data from given channel.
- **filter** (optional): the ID of the filter to apply on the data.
- **view** (optional): the ID of the view to apply on the data.
#### Example
curl "http://$HOST/dlx/download/live?sessionAuthUsername=admin&sessionAuthPassword=admin"
#### Success Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"language": "de",
"headers": [{
"id": "00_0010_0053_0100",
"description": "VBus 0: DL3",
"channel": 0,
"destination_address": 16,
"source_address": 83,
"protocol_version": 16,
"command": 256,
"info": 0,
"destination_name": "DFA",
"source_name": "DL3",
"fields": [{
"id": "000_4_0",
"name": "Resistor Sensor 1",
"unit": " Ohm",
"unit_code": "Ohms"
}, {
"id": "004_4_0",
"name": "Resistor Sensor 2",
"unit": " Ohm",
"unit_code": "Ohms"
}, {
"id": "008_4_0",
"name": "Resistor Sensor 3",
"unit": " Ohm",
"unit_code": "Ohms"
}, {
"id": "012_4_0",
"name": "Current Sensor 4",
"unit": " mA",
"unit_code": "Milliamperes"
}, {
"id": "034_2_0",
"name": "Temperature Sensor 1",
"unit": " \u00B0C",
"unit_code": "DegreesCelsius"
}, {
"id": "036_2_0",
"name": "Temperature Sensor 2",
"unit": " \u00B0C",
"unit_code": "DegreesCelsius"
}, {
"id": "038_2_0",
"name": "Temperature Sensor 3",
"unit": " \u00B0C",
"unit_code": "DegreesCelsius"
}]
}],
"headerset_stats": {
"headerset_count": 1,
"min_timestamp": 1385490534.720000,
"max_timestamp": 1385490534.720000
},
"headersets": [{
"timestamp": 1385490534.720000,
"packets": [{
"header_index": 0,
"timestamp": 1385490534.606000,
"field_values": [{
"field_index": 0,
"raw_value": 994.973000,
"value": "994.973"
}, {
"field_index": 1,
"raw_value": 1072.768000,
"value": "1072.768"
}, {
"field_index": 2,
"raw_value": 1078.975000,
"value": "1078.975"
}, {
"field_index": 3,
"raw_value": 3.990000,
"value": "3.990"
}, {
"field_index": 4,
"raw_value": -1.200000,
"value": "-1.2"
}, {
"field_index": 5,
"raw_value": 18.600000,
"value": "18.6"
}, {
"field_index": 6,
"raw_value": 20.200000,
"value": "20.2"
}]
}]
}]
}
#### Failure responses (HTTP status code 500)
- **InvalidFilterID**: the value of the `filter` parameter was invalid.
- **InvalidViewID**: the value of the `view` parameter was invalid.
## Download data
GET /dlx/download/download
#### Parameters
- **source** (default `log`): source of the data (can be `log` for recorded data or `current` for live data).
- **inputType** (default `packets`): type of data to read from the source (can be `packets` for VBus v1 packets).
- **outputType** (default `text-tab-crlf`): output file format of the download. Can be:
- **text-tab-crlf**: Tab separated text file with CR+LF line endings (Windows).
- **text-tab-lf**: Tab separated text file with LF line endings (Linux / OSX).
- **text-csv-crlf**: Semicolon separated text file with CR+LF line endings (Windows).
- **text-csv-lf**: Semicolon separated text file with LF line endings (Linux / OSX).
- **json**: JSON encoded text file.
- **vbus**: Binary file conforming to VBus Recording File Format.
- **sieveInterval** (optional): allows filtering the data to be downloaded by specifying an interval in seconds that should be kept between two data records. For example: the DL2 could be configured to store data every 10 seconds, but you can download a file only containing hourly records by specifying `3600` here.
- **ttl** (optional): time-to-live in seconds. Records that have not been refreshed in this time are no longer included in the output.
- **startDate** (optional): start date in `MM/DD/YYYY` format.
- **endDate** (optional): end date in `MM/DD/YYYY` format.
- **dataLanguage** (optional): language code (ISO 639-1) to use for the text conversion.
- **filter** (optional): the ID of the filter to apply on the data.
#### Example
curl "http://$HOST/dlx/download/live?sessionAuthUsername=admin&sessionAuthPassword=admin&outputType=json&source=current"
#### Sucess Response
HTTP/1.1 200 OK
Content-Type: application/json
{
"language": "de",
"headers": [{
"id": "00_0010_0053_0100",
"description": "VBus 0: DL3",
"channel": 0,
"destination_address": 16,
"source_address": 83,
"protocol_version": 16,
"command": 256,
"info": 0,
"destination_name": "DFA",
"source_name": "DL3",
"fields": [{
"id": "000_4_0",
"name": "Resistor Sensor 1",
"unit": " Ohm",
"unit_code": "Ohms"
}, {
"id": "004_4_0",
"name": "Resistor Sensor 2",
"unit": " Ohm",
"unit_code": "Ohms"
}, {
"id": "008_4_0",
"name": "Resistor Sensor 3",
"unit": " Ohm",
"unit_code": "Ohms"
}, {
"id": "012_4_0",
"name": "Current Sensor 4",
"unit": " mA",
"unit_code": "Milliamperes"
}, {
"id": "034_2_0",
"name": "Temperature Sensor 1",
"unit": " \u00B0C",
"unit_code": "DegreesCelsius"
}, {
"id": "036_2_0",
"name": "Temperature Sensor 2",
"unit": " \u00B0C",
"unit_code": "DegreesCelsius"
}, {
"id": "038_2_0",
"name": "Temperature Sensor 3",
"unit": " \u00B0C",
"unit_code": "DegreesCelsius"
}]
}],
"headerset_stats": {
"headerset_count": 1,
"min_timestamp": 1385490534.720000,
"max_timestamp": 1385490534.720000
},
"headersets": [{
"timestamp": 1385490534.720000,
"packets": [{
"header_index": 0,
"timestamp": 1385490534.606000,
"field_values": [{
"field_index": 0,
"raw_value": 994.973000,
"value": "994.973"
}, {
"field_index": 1,
"raw_value": 1072.768000,
"value": "1072.768"
}, {
"field_index": 2,
"raw_value": 1078.975000,
"value": "1078.975"
}, {
"field_index": 3,
"raw_value": 3.990000,
"value": "3.990"
}, {
"field_index": 4,
"raw_value": -1.200000,
"value": "-1.2"
}, {
"field_index": 5,
"raw_value": 18.600000,
"value": "18.6"
}, {
"field_index": 6,
"raw_value": 20.200000,
"value": "20.2"
}]
}]
}]
}
#### Failure responses (HTTP status code 500)
- **InvalidFilterID**: the value of the `filter` parameter was invalid.