All topics
On this page

With Export entire account you download all data of your organisation in one ZIP file. It contains the settings, gateways, Modbus devices, registers, alarms, automations, dashboards, reports, customers and members, plus the readings within the retention period of 365 days. The export is free and uses open formats that software can read (CSV and JSON).

This page also describes how the files are structured. It is the overview of export formats that the European Data Act asks for when you switch to another provider.

Requesting an export

  1. Open the settings

    Open Settings and choose Data export.

  2. Request the export

    Click Request export. The Export entire account window opens.

  3. Choose what goes in

    Choose the File format (CSV for Excel or JSON), the detail of the Readings (every reading, per 15 minutes, per hour or per day) and the Period (everything within the retention period or your own dates). If you have customers, choose the entire account or one customer under Customers.

  4. Start the export

    Click Start export. The file is put together in the background. You get an email as soon as it is ready.

  5. Download the file

    The button in the email opens Data export in the portal. Click Download next to the export there.

RuleValue
WhoOwner and administrator of the organisation
How oftenOne export at a time and at most 5 per day
How long the file stays available30 days
Largest file50 MB. If the export gets larger, choose a shorter period or less detail
One customerOnly the gateways, Modbus devices, registers, alarms, dashboards, reports, tariffs and customer portal of that customer
DemoOnly the readings of the last 7 days

Contents of the ZIP file

PathContents
manifest.jsonFormat and version of the export, the chosen options and every file with the number of rows, the size in bytes and a SHA-256 checksum
README.txtShort explanation in your language
config/organization.jsonDetails of the organisation, branding with references to the logos, timezone, retention periods and notification settings
config/members.jsonMembers with email address, name and role
config/gateways.jsonGateways with their settings, such as RS485 baud rate, parity, stop bits and data bits
config/modbus_devices.jsonModbus devices with slave id, IP address and port for Modbus TCP, and poll interval
config/registers.jsonRegisters with address, function code, data type, byte order, scale, unit and write settings. Removed registers that still have readings are listed with "retired": true
config/alert_rules.json, alerts.json, alert_entries.jsonAlarm rules, alarm history with acknowledgements and the timeline per alarm
config/automations.json, automation_executions.jsonAutomations and their executions
config/commands.jsonLog of control and write commands
config/dashboards.json, shared_dashboards.jsonDashboards with their layout and the share links with settings and expiry
config/reports.json, report_runs.jsonReports and the details of the generated reports
config/customers.json, customer_portals.json, customer_members.json, customer_portal_hidden.jsonCustomers, customer portal settings and who belongs to which customer
config/tariff_schedules.json, tariff_rates.json, tariff_windows.json, tariff_split_daily.json, energy_tariffs.jsonTariff schedules and kWh per rate per day
config/webhooks.json, api_keys.jsonWebhooks and API keys as metadata
config/notification_preferences.json, gateway_alert_subscribers.jsonNotification preferences of the members and who gets alarm email per gateway
config/audit_log.json, activity_log.json, gateway_events.jsonAudit log, activity log and events per gateway
Other config/*.jsonGateway groups and tags, system overviews, own templates, synthetic variables and invitations
timeseries/<serial>/<yyyy-mm>.csv or .jsonReadings per gateway per month, in the timezone of the organisation

Every file in config/ is a JSON array with one object per row. Ids are UUIDs and link the files. device_id refers to a gateway, modbus_dev_id to a Modbus device and register_id to a register.

Not in the export on purpose are secrets (tokens, API keys and their hash, passwords, the webhook secret and the values of custom headers, the codes of share links and invitations), internal data of the automatic monitoring and IP addresses in the audit log.

Readings as CSV

All CSV files are UTF-8 with a BOM, so Excel shows characters such as °C correctly. In Dutch and German a semicolon separates the columns and numbers use a decimal comma. In English a comma separates the columns and numbers use a dot. Times are local time of the organisation as YYYY-MM-DD HH:MM:SS. Values are converted with the scale factor of the register, as the portal shows them.

Every reading

One row per timestamp and one column per register. The column header is Modbus device / Register (unit), with [removed] for a removed register. manifest.json lists for every file which register is in which column. If a register has two readings at the same timestamp, the file holds the first.

Per 15 minutes, hour or day

One row per bucket per register with these columns.

ColumnMeaning
Start, EndStart and end of the bucket, local time
Modbus device, Register, UnitWhere the value comes from
CountNumber of readings in the bucket
Average, Minimum, MaximumOver the readings in the bucket
First, LastFirst and last reading in the bucket
ConsumptionCounters only, see Consumption of counters
Counter resetyes when the counter dropped in this bucket
Register IDThe id from config/registers.json

Buckets of 15 minutes and an hour follow the clock. A day runs from midnight to midnight in the timezone of the organisation, so 23 or 25 hours when daylight saving time changes.

Readings as JSON

JSON files follow the format modbuscloud.readings, version 1. First the details of the export and the registers, then the values. Times in JSON are UTC in ISO 8601.

{
  "format": "modbuscloud.readings",
  "format_version": 1,
  "generated_at": "2026-10-15T09:00:00.000Z",
  "gateway": { "serial": "6008123409", "name": "Cabinet 1" },
  "timezone": "Europe/Amsterdam",
  "resolution": "day",
  "from": "2026-09-30T22:00:00.000Z",
  "to": "2026-10-15T09:00:00.000Z",
  "truncated": false,
  "row_limit": null,
  "complete_from": null,
  "values_scaled": true,
  "registers": [
    { "id": "53e8429e-...", "name": "Energy import", "unit": "kWh", "modbus_device": "kWh meter 1",
      "slave_id": 1, "address": 30001, "data_type": "uint32", "scale_factor": 0.1, "counter": true, "retired": false }
  ],
  "buckets": [
    { "start": "2026-09-30T22:00:00.000Z", "end": "2026-10-01T22:00:00.000Z", "register_id": "53e8429e-...",
      "count": 96, "avg": 1452.3, "min": 1447.1, "max": 1457.6, "first": 1447.1, "last": 1457.6, "delta": 10.5, "delta_reset": false }
  ]
}
FieldMeaning
resolutionraw, 15m, hour or day
truncated, row_limit, complete_fromOnly in Download readings per gateway. If the file was cut off, it is complete from complete_from
values_scaledAlways true. Values are already multiplied by scale_factor
registers[].countertrue for a counter, such as kWh or operating hours
readingsWith raw a list of { "ts", "register_id", "value" }, including duplicate readings at the same timestamp
bucketsWith 15m, hour and day a list of buckets, as in the example
delta, delta_resetConsumption in the bucket and whether the counter dropped. null for a register that is not a counter

Consumption of counters

A register is a counter when it is set up or recognised as one, such as a kWh meter reading, a volume or operating hours. The consumption of a bucket is the last value of that bucket minus the last value of the previous bucket with readings. For the first bucket the last value from the 7 days before counts. If the value drops, because the counter was reset or the meter was replaced, the consumption of that bucket is empty and Counter reset is yes (delta_reset: true in JSON). The bar chart with consumption in a dashboard uses the same rule.

Readings of one gateway

Download readings in the menu of a gateway offers the same formats and the same detail. Such a file holds at most 500,000 readings. If there are more, you get the newest and the first line of the CSV (or complete_from in JSON) says from which moment the file is complete. See Download readings.

Updated on 15 October 2026

Still stuck?

Email or call us. Include the serial number of the gateway, so we can take a look straight away.

Go to support