MiroxMirox
  • Platform

    • Philosophy
    • Platform Overview
    • Platform Resources
  • Mirox-Cloud

    • Cloud Overview
    • Connected Microservices
  • Mirox-Agent

    • Agent Overview
    • Deployment Options
    • Data Scraper
    • Digital Twin
  • Technical Details

    • Metric Collection
  • Information

    • Supported Plants
  • Plant Types

    • Solar Plants
    • Wind Plants
    • Battery Storage
    • Alarm System
  • Monitoring & Visualization

    • Real-time Monitoring
    • Digital Twin
    • Component States
    • Inverter Status Codes
    • Inverter Events
    • Loss Detection
    • Power Limits & Curtailment
    • Efficiency Detection
    • KPI Dashboard
  • Data Management

    • Events
    • Tickets
    • Forecasts
    • Reports
    • Metrics
  • Integration & Sharing

    • Cooperations
    • API Tokens
    • VPN
    • VPN Address Conflicts
    • Proxy
  • AI

    • AI Assistant & Wizards
    • Agentic Access (MCP)
  • Billing

    • Market & Tariffs
    • Accounting & Billing
  • Collaboration

    • Invitations
  • Security

    • Authentication
    • Account Lockout
    • Permission System
    • Network Segmentation
    • Cooperation Restrictions
    • Access Audit Logging
    • Activity & Audit Trail
  • Nodes

    • mrxnode
  • Application

    • Door Control
    • Generic Relay
  • Edge Cluster

    • Orchestration
  • Getting Started

    • Onboarding
    • Setup
  • Personal

    • Using the VPN
    • Using the Proxy
    • Two-Factor Authentication
    • Sessions
    • API Tokens
    • Notifications
    • Connect Microsoft Teams
  • Per Park

    • Contacts
    • Network Devices
    • Data Loggers
    • Components
    • Direct VPN (per Agent)
    • Data Volume
    • History Import
  • Organization

    • Member Permissions
    • Cooperations
    • File Storage
    • VPN Services
    • Working with Reports
  • Data Export

    • Metric Export
    • Metric Export API
    • Migrating to the Metric Export
    • Legacy Export API
    • External Report Generation
    • Grafana
    • Grafana Dashboards
    • API Overview
    • MiroxQL Formulas (API)
  • Support

    • Request an Integration
  • mrxnode

    • Overview
    • How-To Guide
    • Container Deployment
    • Command Cheatsheet
    • Troubleshooting
  • Reporting

    • External Report Generator
    • Metric Export for Excel
  • Remote Access
  • AI in Mirox
  • History Import
  • Reports
  • Data Export
  • English
  • Deutsch
  • Español
  • Français
  • Português
  • Italiano
  • English
  • Platform

    • Philosophy
    • Platform Overview
    • Platform Resources
  • Mirox-Cloud

    • Cloud Overview
    • Connected Microservices
  • Mirox-Agent

    • Agent Overview
    • Deployment Options
    • Data Scraper
    • Digital Twin
  • Technical Details

    • Metric Collection
  • Information

    • Supported Plants
  • Plant Types

    • Solar Plants
    • Wind Plants
    • Battery Storage
    • Alarm System
  • Monitoring & Visualization

    • Real-time Monitoring
    • Digital Twin
    • Component States
    • Inverter Status Codes
    • Inverter Events
    • Loss Detection
    • Power Limits & Curtailment
    • Efficiency Detection
    • KPI Dashboard
  • Data Management

    • Events
    • Tickets
    • Forecasts
    • Reports
    • Metrics
  • Integration & Sharing

    • Cooperations
    • API Tokens
    • VPN
    • VPN Address Conflicts
    • Proxy
  • AI

    • AI Assistant & Wizards
    • Agentic Access (MCP)
  • Billing

    • Market & Tariffs
    • Accounting & Billing
  • Collaboration

    • Invitations
  • Security

    • Authentication
    • Account Lockout
    • Permission System
    • Network Segmentation
    • Cooperation Restrictions
    • Access Audit Logging
    • Activity & Audit Trail
  • Nodes

    • mrxnode
  • Application

    • Door Control
    • Generic Relay
  • Edge Cluster

    • Orchestration
  • Getting Started

    • Onboarding
    • Setup
  • Personal

    • Using the VPN
    • Using the Proxy
    • Two-Factor Authentication
    • Sessions
    • API Tokens
    • Notifications
    • Connect Microsoft Teams
  • Per Park

    • Contacts
    • Network Devices
    • Data Loggers
    • Components
    • Direct VPN (per Agent)
    • Data Volume
    • History Import
  • Organization

    • Member Permissions
    • Cooperations
    • File Storage
    • VPN Services
    • Working with Reports
  • Data Export

    • Metric Export
    • Metric Export API
    • Migrating to the Metric Export
    • Legacy Export API
    • External Report Generation
    • Grafana
    • Grafana Dashboards
    • API Overview
    • MiroxQL Formulas (API)
  • Support

    • Request an Integration
  • mrxnode

    • Overview
    • How-To Guide
    • Container Deployment
    • Command Cheatsheet
    • Troubleshooting
  • Reporting

    • External Report Generator
    • Metric Export for Excel
  • Remote Access
  • AI in Mirox
  • History Import
  • Reports
  • Data Export
  • English
  • Deutsch
  • Español
  • Français
  • Português
  • Italiano
  • English
  • Getting Started

    • Onboarding
    • Setup
  • Personal

    • Using the VPN
    • Using the Proxy
    • Setting Up Two-Factor Authentication
    • Managing Your Sessions
    • API Tokens
    • Notifications
    • Connect Microsoft Teams
  • Per Park

    • Managing Plant Contacts
    • Managing Network Devices
    • Configuring Data Loggers
    • Configuring Components
    • Configuring VPN Servers per Agent (Direct VPN)
    • Data Volume per Plant
    • Importing a Plant's History
  • Organization

    • Managing Member Permissions
    • Creating Cooperations
    • Using File Storage
    • Organization VPN Services
    • Working with Reports
  • Data Export

    • Metric Export
    • Metric Export API
    • Migrating to the Metric Export
    • Legacy Export API
    • External Report Generation
    • Using Grafana as an External Read Platform
    • Building Your Own Grafana Dashboards
    • API Overview
    • MiroxQL Formulas (API Reference)
  • Support

    • Request an Integration
  • mrxnode

    • mrxnode Overview
    • mrxnode How-To Guide
    • Container Deployment
    • mrxnode Command Cheatsheet
    • Troubleshooting

Legacy Export API

This page describes the export links that existed before the Metric Export. They are legacy: they are served unchanged, with the same parameters, metric ids and columns, and they are no longer extended.

Existing Workbooks and Scripts Keep Working

The legacy links have no removal date. Nothing you built on them has to change. For new work use the Metric Export API; the migration guide maps every legacy id to its metric.

Routes

All paths follow https://service.mirox.io/api. An API token of the group Metric Export reads all of them.

RouteAnswerStatus
GET /v1/export/metrics/template/{template_uid}CSVlegacy — Template export
GET /v1/export/metrics/queryCSVlegacy — Metric-id export
GET /v1/export/raw/queryCSVlegacy — Raw time series export
GET /v1/export/raw/component/queryCSVlegacy — Component raw export
GET /v1/metrics/rawJSONlegacy — the list of raw metric ids
GET /v1/metrics/componentsJSONlegacy — the list of component metric ids per component type
GET /v1/export/report/{park_uid}/infoJSONcurrent — Plant information
GET /v1/export/report/{park_uid}/events.csvCSVcurrent — Events
GET /v1/export/report/{park_uid}/data/template/{template_uid}/metrics.csvCSVdeprecated
POST /v1/export/metrics/query, POST /v1/export/raw/query, POST /v1/export/raw/component/queryJSONdeprecated
GET /v1/export/template/metricsJSONdeprecated

What Is Deprecated

A deprecated route still answers, but it may be removed in a later release, and the interactive API reference marks it as deprecated.

  • The single-plant template route under /v1/export/report/{park_uid}/data/template/…. Use the template export instead; it takes the same templates.
  • The three POST routes that answered the exports as JSON. The Metric Export API answers JSON with format=json.
  • GET /v1/export/template/metrics, the list of legacy metric ids for the template editor. The metric catalog replaces it.

Everything else on this page is legacy but not deprecated.

Several Plants: Merge or Split

All four exports accept comma-separated park and portfolio parameters. When both are given, the plants of each portfolio are added to the plants listed.

multi_park_agg decides how several plants are represented. It is available on the template, metric-id and raw export; the component export has multi_component_agg instead.

ValueResult
merge (default)One column per metric. The plants are combined with the operator that metric declares — energy and power are summed, voltages, temperatures and ratios averaged.
splitOne column per plant per metric, named <plant name> - <metric name>. All of a plant's metrics stand together, plants ordered by name.

With a single plant the two are identical and the parameter is ignored.

Template Export

GET /v1/export/metrics/template/{template_uid}
ParameterPurpose
park / portfolioComma-separated UIDs that scope the export
resolutiondaily, weekly, monthly, quarterly or yearly; default monthly
year + quarter / month / week / dayThe calendar period (day requires month); year must be 2020 or later
full_weekWeekly resolution only: extend the range to whole ISO weeks
multi_park_aggmerge (default) or split
separator_csv / separator_decimal / datetime_format / languageCSV formatting and translated column names
curl "https://service.mirox.io/api/v1/export/metrics/template/ABCD12340001?park=ABC123DEF456&resolution=monthly" \
  -H "Authorization: Bearer YOUR_API_TOKEN"

Legacy System Templates

TemplateUIDSuccessor
Standard Export v1CAFE0000CAFECAFE1000CAFE
Extended Export v1CAFE0001CAFECAFE1001CAFE
Extended Export v2CAFE0002CAFECAFE1002CAFE
Energy Availability ExportCAFE0003CAFECAFE1003CAFE
Report Technical v1ABCD12340001ABCD12340002

In the app, these five are replaced by their successors on the Templates tab. Their links keep answering as before.

Report Technical v1 (ABCD12340001) holds:

Time Series Metrics:

  1. Energy Production (kWh) - energy_grid_daily
  2. Energy Radiation Total (kWh) - energy_radiation_daily
  3. GTI Sensor (kWh/m²) - gti_sensor_daily
  4. GTI Weather (kWh/m²) - gti_weather_daily
  5. Sunhours (h) - sunhours_daily
  6. Availability Inverter (%) - availability_inverter
  7. Availability Energy (%) - availability_energy
  8. Availability Data (%) - availability_data
  9. Availability Sensor (%) - availability_sensor
  10. Energy Shutdown by Grid (kWh) - energy_shutdown_grid_daily
  11. Energy Shutdown by External (kWh) - energy_shutdown_external_daily

Report Configuration Metrics:

  • Energy Report (kWh) - energy_report
  • GTI Report Incident (kWh/m²) - gti_report
  • GTI Report Effective (kWh/m²) - gti_report_eff
  • PR Report Target (%) - pr_report

Calculated Metrics (using MiroxQL):

  • Irradiance Analysis (actual, weather usage, sensor-weather difference)
  • Production Targets (weather-based, sensor-based, actual, corrected)
  • Performance Ratios (weather, sensor, actual, corrected)
  • Specific Yield (Wh/W)
  • Loss Analysis (non-compensable losses)

Templates of the Metric Export on This Route

The template export also accepts the id of a template of the Metric Export, for example CAFE1000CAFE. It then answers the Metric Export of that template: the calendar parameters select the time range, resolution selects the step, and the file follows the conventions of the Metric Export. It has no "Days in Month" or "Calendar Week" column, and errors are answered with a code. Without resolution, the step of the template applies.

The deprecated single-plant route does not accept such a template and answers 400 with the link to use.

CSV Output

The files carry a header row with metric names and units. The structure follows the resolution:

  • Daily — one row per day.
  • Weekly — a "Date" column in ISO week format and a "Calendar Week" column with the week number.
  • Monthly — a "Days in Month" column for normalization.

Values are aggregated per day and then rolled up: energy and hours are summed, everything else is averaged. A day is a UTC day. A missing value is written as 0.

Metric-Id Export

GET /v1/export/metrics/query exports a set of legacy metric ids without a template, with the period parameters and the CSV format of the template export.

ParameterPurpose
metricsComma-separated metric ids (1-20), e.g. energy_grid_daily,energy_ac_daily
park / portfolioComma-separated UIDs that scope the export
year + quarter / month / week / dayThe calendar period (day requires month)
resolutiondaily, weekly, monthly, quarterly or yearly
full_weekWeekly resolution only: extend the range to whole ISO weeks
multi_park_aggmerge (default) or split
separator_csv / separator_decimal / datetime_format / languageCSV formatting and translated column names

Raw Time Series Export

GET /v1/export/raw/query returns raw time series at plant level. GET /v1/metrics/raw lists every raw id with its name, unit, category and the operator it applies across series (sum, avg, min or max).

ParameterPurpose
metricsComma-separated raw metric ids (1-20), e.g. raw_grid_energy_total,raw_power_ac
start / end / stepAny ISO 8601 range at any step (5m, 15m, 1h, 1d)
valueplain (as recorded), start_at_zero (first value becomes 0) or use_delta (change per interval instead of the running total). One choice for all metrics.
multi_park_aggWith more than one plant: merge or split
park / portfolioComma-separated UIDs that scope the export
separator_csv / separator_decimal / languageCSV formatting and translated column names
curl --compressed "https://service.mirox.io/api/v1/export/raw/query?metrics=raw_grid_energy_total&park=ABC123DEF456&start=2026-07-01T00:00:00Z&end=2026-07-08T00:00:00Z&step=15m&value=use_delta" \
  -H "Authorization: Bearer YOUR_API_TOKEN" -o production_week.csv
Date;Grid Production (Wh)
2026-07-01 00:00;0,00
2026-07-01 06:15;1250,50
...

Energy is in Wh, and the time is in UTC.

Component Raw Export

GET /v1/export/raw/component/query exports the raw time series of individual components — inverters, combiner boxes or single strings — of exactly one plant. Component metric ids carry the prefix comp_raw_ and are listed, per component type, at GET /v1/metrics/components.

ParameterPurpose
metricsComma-separated component raw metric ids (1-20), e.g. comp_raw_inverter_energy_ac — every id must match the chosen component_type
parkExactly one plant UID
component_typeinverter, gak, or string
componentsOptional comma-separated component ids — exactly those, in order
page / limitWithout components: page through all components of the type (up to 50 per page)
multi_component_aggsplit (default — one column per component per metric, named <component name> - <metric name>) or merge (the sum or average over the components)
start / end / step / value / separators / languageAs for the raw time series export

Limits

Both raw exports refuse anything larger with 400:

LimitValue
Metric ids per request20
Data points per series, plant-level export180,000 — 5 years at 15-minute resolution
Total samples, plant-level export1,800,000 (series × data points per series)
Data points per series, component-level export36,000 — a full year at 15-minute resolution
Series in a plant split export50 (metrics × plants)
Explicitly selected components50
Columns in a component split export100 (metrics × components)

Answers beyond about 1 MB are compressed when the request carries Accept-Encoding: gzip.

Legacy Metric Ids

The daily metrics of the template and metric-id export. Each can be aggregated to weekly, monthly, quarterly or yearly values. The formula column shows in simplified form how a value is derived. The metric that answers for each id in the Metric Export is in the id mapping.

Energy Production Metrics

Metric IDNameUnitDescriptionFormula
energy_grid_dailyEnergy ProductionkWhDaily energy fed into the gridsum(delta(grid_energy_total)) per component
energy_ac_dailyAC ProductionkWhDaily AC energy productionsum(delta(ac_energy_total)) per component
energy_inverter_dailyInverter ProductionkWhDaily energy production from inverterssum(delta(inverter_ac_energy_total)) per inverter
energy_radiation_dailyEnergy Radiation TotalkWhDaily total energy radiationsum(delta(radiation_energy_total)) per component

Shutdown and Loss Metrics

Metric IDNameUnitDescriptionFormula
energy_shutdown_grid_dailyEnergy Shutdown by GridkWhDaily energy loss due to grid constraintssum(delta(energy_loss_total)) where type='grid', per component
energy_shutdown_external_dailyEnergy Shutdown by ExternalkWhDaily energy loss due to external controlsum(delta(energy_loss_total)) where type='external', per component

Irradiance Metrics

Metric IDNameUnitDescriptionFormula
gti_sensor_dailyGTI SensorkWh/m²Daily global tilted irradiation from sensorsavg(delta(irradiation_total)) where position='module-level' or fallback
gti_weather_dailyGTI WeatherkWh/m²Daily global tilted irradiation from weather forecastsum(weather_gti) / 4, sampling: 15min intervals
gti_reportGTI ReportkWh/m²GTI target from the plant configurationvalue from the plant configuration

Weather Metrics

Metric IDNameUnitDescriptionFormula
solar_radiation_dailySolar RadiationWhAverage daily solar radiationavg(solar_radiation) over 24h
sunhours_dailySunhourshDaily hours of sunshinecount(weather_gti > 0) / 4, sampling: 15min

Environmental Metrics

Metric IDNameUnitDescriptionFormula
temperature_ambient_avgAmbient Temperature°CAverage daily ambient temperatureavg(ambient_temperature) over 24h
temperature_module_avgModule Temperature°CAverage daily module temperatureavg(module_temperature) over 24h
wind_speed_avgWind Speedm/sAverage daily wind speedavg(wind_speed) over 24h
humidity_avgHumidity%Average daily humidityavg(humidity) over 24h

Availability Metrics

Metric IDNameUnitDescriptionFormula
availability_inverterAvailability Inverter%Inverter availability based on power output and GTI conditionsavg(1 - count(inverter_power ≤ 0 AND weather_gti > 100)), sampling: 15min
availability_technicalAvailability Technical%Technical availability of the systemavg(sum(scraper_health == 1) / count(scraper_health)) per source, sampling: 15min
availability_dataAvailability Data%Data availability from the plant1 - avg(count(grid_energy_total)) where absent, sampling: 15min
availability_sensorAvailability Sensor%Sensor availability1 - avg(count(solar_radiation)) where absent, sampling: 15min
availability_energyAvailability Energy%Energy-based availability approximation1 - (sum(energy_loss_total) / (sum(grid_energy_total) + sum(energy_loss_total)))

Battery Metrics

Metric IDNameUnitDescriptionFormula
battery_energy_in_dailyBattery Energy ChargedkWhDaily DC energy charged into the batterysum(delta(battery_box_energy_dc_in_total)) per box
battery_energy_out_dailyBattery Energy DischargedkWhDaily DC energy discharged from the batterysum(delta(battery_box_energy_dc_out_total)) per box
battery_soc_avgBattery State of Charge%Average daily box-level state of chargeavg(battery_box_soc) over 24h
battery_soh_avgBattery State of Health%Average daily box-level state of healthavg(battery_box_soh) over 24h
battery_energy_charged_avgBattery Stored EnergykWhAverage daily energy currently storedavg(sum(battery_box_energy_charged)) over 24h
temperature_battery_avgBattery Temperature°CAverage daily box-level battery temperatureavg(battery_box_temperature) over 24h

Report Metrics

Metric IDNameUnitDescriptionFormula
energy_reportEnergy ReportkWhEnergy target from the plant configurationvalue from the plant configuration

The raw and component ids are listed by GET /v1/metrics/raw and GET /v1/metrics/components, and in the id mapping.

Known Behaviour That Stays As It Is

The numbers of the legacy exports are kept as they are, so that a workbook shows tomorrow what it showed yesterday. This includes three readings the Metric Export does differently:

Legacy id or optionWhat the legacy export doesIn the Metric Export
raw_irradiation_energy_total, irradiation_energy_dailyAdds up the irradiation of all sensors of a plant. A plant with three sensors shows about three times the irradiation.sensor.irradiation gives one column per sensor; plant.rad_pyranometer gives the plant value.
raw_solar_radiationAverages all irradiance sensors of a plant, horizontal and module-plane sensors together.sensor.irradiance gives one column per sensor.
multi_component_agg=merge with status codes or alarm statesAdds the codes of the components up.Status codes and states are exported per component.

Corrections

Two groups of columns of the raw time series export were empty and now carry values. A workbook that reads them shows numbers where it showed empty cells.

ColumnsWhat changed
raw_availability_technical, raw_availability_data, raw_availability_sensor, raw_availability_network, raw_availability_inverter, raw_availability_gridThe columns carry values. Each row is the availability over a period as long as the exported range, ending at that row. The last row is therefore the availability of the exported range, the same figure the availability tiles show; earlier rows reach back before the start of the range.
raw_curtailment_grid_nacelle, raw_curtailment_grid_windref, raw_curtailment_grid_windfixed, the same with marketer, and each with _energyThe wind curtailment columns carry the settled curtailment of wind plants.

Plant Information

GET /v1/export/report/{park_uid}/info

Answers the core data of a plant as JSON: name, type and description, location and time zone, peak power, organization and portfolio, address and commissioning dates. An example is in the External Report Generator.

Events

GET /v1/export/report/{park_uid}/events.csv
ParameterPurpose
year, quarter, monthThe period. Without any of them, the export covers the current year.
separator_csv / separator_decimal / datetime_formatCSV formatting; defaults ;, , and %Y-%m-%d %H:%M

The columns are Event ID, Start Date, End Date, Duration (hours), Type, Creator, Description and Priority. The end date of an event that is still open is Ongoing. A priority of 1000 or more marks an important event.

Related Features

  • Metric Export API — the current export
  • Migrating to the Metric Export — what changes, and the id mapping
  • MiroxQL Formulas — the formula API behind the calculated columns
  • External Report Generator — plant information and events in a Python example
  • API Tokens — the Metric Export token
Prev
Migrating to the Metric Export
Next
External Report Generation
© 2026 Mirox Verwaltungs GmbH. All rights reserved. | Privacy Policy