Skip to content

Data Access API (User Auth)

Data Access API provides data query interfaces for inverters, collectors, EPMs, weather stations, ammeters, and plants. This document describes the interfaces using User-level Authorization (Custom HMAC-SHA1 Signature).

ItemDescription
API Base URLhttps://www.soliscloud.com:13333/
AuthenticationCustom HMAC-SHA1 Signature

Rate Limit Reminder

Data Access API rate limit is 10 requests/second. If this cannot meet your needs, consider switching to queue-based data forwarding (Real-time Data Forwarding).

Common Response Format

All interfaces return a unified JSON structure:

json
{
    "success": true,
    "code": "0",
    "msg": "success",
    "data": { }
}
FieldTypeDescription
successbooleantrue for success, false for failure
codestring"0" for success, others for failure (see appendix)
msgstringDescription of the code value
dataobject/arraySpecific business data

Pagination

Data access interfaces use cursor-based pagination:

ItemDescription
OrderingAlways ascending by the interface-specific business primary key id (see the minId description of each interface)
First requestOmit minId to start from the smallest id
Next pagePass minId = last record's id + 1 (the boundary is inclusive; passing the last record's id will return that record again)
Page sizepageSize, default 20, maximum 100
More pages?If the number of returned records equals pageSize, more pages may exist; fewer means you have reached the end
totalAlways 0; the real total is no longer returned

Rate Limits

Interface TypeLimit
Data acquisition interfaces10 times/second
Device data upload frequency5 minutes

TIP

If rate limits cannot meet your business needs, please refer to Real-time Data Forwarding to switch to queue data forwarding.


Authentication

See Authorization for authentication details.

Request headers require Custom HMAC-SHA1 signature:

Header ParameterDescription
Content-MD5MD5 hash of the Body content, Base64 encoded
Content-Typeapplication/json;charset=UTF-8
DateGMT time, format: EEE, d MMM yyyy HH:mm:ss 'GMT'
AuthorizationAPI {apiId}:{sign}

Interface List

Inverter Interfaces

InterfacePathDescription
Inverter List/v1/api/inverterListGet inverter list under account
Inverter Detail/v1/api/inverterDetailGet single inverter detail
Inverter Day Data/v1/api/inverterDayGet single inverter daily real-time data
Inverter Month Data/v1/api/inverterMonthGet single inverter monthly daily data
Inverter Year Data/v1/api/inverterYearGet single inverter yearly monthly data
Inverter All Data/v1/api/inverterAllGet single inverter cumulative data
Inverter Warranty/v1/api/inverter/shelfTimeGet inverter warranty data
Alarm List/v1/api/alarmListGet device alarm list

Collector Interfaces

InterfacePathDescription
Collector List/v1/api/collectorListGet collector list under account
Collector Detail/v1/api/collectorDetailGet single collector detail
Collector Signal/v1/api/collector/dayGet collector signal values

EPM Interfaces

InterfacePathDescription
EPM List/v1/api/epmListGet EPM list under account
EPM Detail/v1/api/epmDetailGet single EPM detail
EPM Day Data/v1/api/epm/dayGet single EPM daily data
EPM Month Data/v1/api/epm/monthGet single EPM monthly data
EPM Year Data/v1/api/epm/yearGet single EPM yearly data
EPM All Data/v1/api/epm/allGet single EPM cumulative data

Weather Station Interfaces

InterfacePathDescription
Weather Station List/v1/api/weatherListGet weather station list
Weather Station Detail/v1/api/weatherDetailGet single weather station detail

Ammeter Interfaces (User-level only)

InterfacePathDescription
Ammeter List/v1/api/ammeterListGet ammeter list under account
Ammeter Detail/v1/api/ammeterDetailGet single ammeter detail

Plant Interfaces

InterfacePathDescription
Plant List/v1/api/userStationListGet plant list under account
Plant Detail/v1/api/stationDetailGet single plant detail
Plant Day Energy List/v1/api/stationDayEnergyListGet multiple plants daily data
Plant Month Energy List/v1/api/stationMonthEnergyListGet multiple plants monthly data
Plant Year Energy List/v1/api/stationYearEnergyListGet multiple plants yearly data
Plant Day Data/v1/api/stationDayGet single plant daily real-time data
Plant Month Data/v1/api/stationMonthGet single plant monthly daily data
Plant Year Data/v1/api/stationYearGet single plant yearly monthly data
Plant All Data/v1/api/stationAllGet single plant cumulative data

Inverter Interface Details

Get Inverter List

Get inverter list under the account, up to 100 devices per call.

Endpoint: POST /v1/api/inverterList

Request Parameters:

ParameterTypeRequiredDescription
stationIdIntegerNoPlant ID. Empty for all inverters
plantIdStringNoPlant code, available from plant list or data forwarding. Same effect as stationId
nmiCodeStringNoNMI code (Australia only)
snListArrayNoBatch SN query. Empty for all inverters
minIdLongNoStarting ID (inclusive); paging is ordered by inverter_id ascending. Omit to start from the smallest ID.

Response Parameters (data):

ParameterTypeDescription
pageObjectPagination result
page.totalIntegerAlways 0 (cursor pagination does not return the real total)
page.recordsArrayInverter list
inverterStatusVoObjectInverter status statistics
inverterStatusVo.allIntegerTotal inverters
inverterStatusVo.normalIntegerNormal count
inverterStatusVo.offlineIntegerOffline count
inverterStatusVo.faultIntegerFault count

records fields:

ParameterTypeDescription
idNumberInverter ID
snStringInverter SN
stationIdIntegerPlant ID
stationNameStringPlant name
powerStringInstalled capacity
powerStrStringCapacity unit
etodayNumberToday's energy
etodayStrNumberEnergy unit
etotalNumberTotal energy
etotalStrNumberTotal energy unit
fullHourNumberFull load hours
pacNumberPower
pacStrNumberPower unit
stateIntegerStatus: 1=online, 2=offline, 3=alarm
dataTimestampIntegerUpdate time
collectorSnStringCollector SN
productModelStringInverter type
dcInputTypeIntegerDC input channels (value+1=actual)
acOutputTypeIntegerAC output type: 0=single phase, other=three phase
inverterMeterModelIntegerInverter meter type, see Appendix 3

Get Inverter Detail

Endpoint: POST /v1/api/inverterDetail

Request Parameters:

ParameterTypeRequiredDescription
idNumberNoInverter ID, id and sn cannot both be empty
snStringNoInverter SN

Response Parameters (data): Includes all list fields plus:

ParameterTypeDescription
eToday/eMonth/eYear/eTotalNumberToday/Month/Year/Total energy
facNumberGrid frequency
pacNumberReal-time power
iAc1/iAc2/iAc3NumberAC current R/S/T
uAc1/uAc2/uAc3NumberAC voltage R/S/T
iPv1~iPv32NumberDC current 1~32
uPv1~uPv32NumberDC voltage 1~32
batteryCapacitySocNumberBattery SOC
batteryPowerNumberBattery power
batteryCapacityNumberBattery capacity
gridPurchasedTodayEnergyNumberToday's grid purchased energy
gridSellTodayEnergyNumberToday's grid sold energy
familyLoadPowerNumberHome load power
pSumNumberGrid total active power
inverterMeterModelIntegerMeter type, see Appendix 3
typeIntegerInverter type: 1=grid-tied, 2=energy storage
hmiVersionAllStringFull HMI version

Inverter Day/Month/Year/All Data

Inverter Day Data

Endpoint: POST /v1/api/inverterDay

ParameterTypeRequiredDescription
idNumberNoInverter ID
snStringNoInverter SN
moneyStringYesCurrency unit, e.g. CNY
timeStringYesDate, format yyyy-MM-dd
timeZoneIntegerYesPlant timezone

Response Parameters (data array):

ParameterTypeDescription
dataTimestampIntegerUpdate time
timeStrStringTime string
pacNumberPower
eTodayNumberToday's energy
eTotalNumberTotal energy
uPv1~uPv4NumberDC voltage 1~4
iPv1~iPv4NumberDC current 1~4
batteryCapacitySocNumberBattery SOC
batteryPowerNumberBattery power

Inverter Month Data

Endpoint: POST /v1/api/inverterMonth

ParameterTypeRequiredDescription
id/sn-NoInverter ID or SN
moneyStringYesCurrency unit
monthStringYesMonth, format yyyy-MM

Response Parameters (data array):

ParameterTypeDescription
energyNumberEnergy
energyStrStringEnergy unit
dateStringDate
moneyNumberRevenue
moneyStrStringRevenue unit
batteryDischargeEnergyNumberBattery discharge energy
batteryChargeEnergyNumberBattery charge energy
gridPurchasedEnergyNumberGrid purchased energy
gridSellEnergyNumberGrid sold energy

Inverter Year Data

Endpoint: POST /v1/api/inverterYear

ParameterTypeRequiredDescription
id/sn-NoInverter ID or SN
moneyStringYesCurrency unit
yearStringYesYear, format yyyy

Response Parameters (data array): Same as month data.

Inverter All Data

Endpoint: POST /v1/api/inverterAll

ParameterTypeRequiredDescription
id/sn-NoInverter ID or SN
moneyStringYesCurrency unit

Response Parameters (data array):

ParameterTypeDescription
yearStringYear
energyNumberEnergy
batteryDischargeEnergyNumberBattery discharge energy
batteryChargeEnergyNumberBattery charge energy
gridPurchasedEnergyNumberGrid purchased energy
gridSellEnergyNumberGrid sold energy

Get Inverter Warranty Data

Endpoint: POST /v1/api/inverter/shelfTime

ParameterTypeRequiredDescription
snStringNoSingle or multiple SNs, comma-separated, max 1000
minIdLongNoStarting ID (inclusive); paging is ordered by id ascending. Omit to start from the smallest ID.

Response Parameters (data.page.records):

ParameterTypeDescription
idNumberInverter ID
snStringInverter SN
shelfBeginTimeStringWarranty start time
shelfEndTimeStringWarranty end time
shelfTimeStringWarranty duration
shelfStateIntegerWarranty state: 0=warranty, 1=expired

Get Alarm List

Endpoint: POST /v1/api/alarmList

ParameterTypeRequiredDescription
stationIdIntegerNoPlant ID
plantIdStringNoPlant code, same effect as stationId
alarmDeviceSnStringNoInverter SN
alarmBeginTimeStringNoStart date, yyyy-MM-dd
alarmEndTimeStringNoEnd date, yyyy-MM-dd
nmiCodeStringNoNMI code
StateIntegerNo0=unprocessed, 1=processed, 2=recovered
minIdLongNoStarting ID (inclusive); paging is ordered by alarmId ascending. Omit to start from the smallest ID.

Response Parameters (data.page.records):

ParameterTypeDescription
stationIdIntegerPlant ID
stationNameStringPlant name
alarmDeviceSnStringAlarm device SN
alarmCodeStringAlarm code
alarmLevelIntegerAlarm level: 1=info, 2=normal, 3=urgent
alarmBeginTimeStringAlarm start time
alarmEndTimeStringAlarm end time
alarmMsgStringAlarm message
adviceStringHandling advice
stateIntegerState: 0=unhandled, 1=handled, 2=recovered
warningInfoDataObjectAlarm extended data

Collector Interface Details

Get Collector List

Retrieve the list of collectors under the account. Maximum 100 devices per call.

Endpoint: POST /v1/api/collectorList

Request Parameters:

ParameterTypeRequiredDescription
stationIdIntegerNoPlant ID
plantIdStringNoPlant code, same effect as stationId
nmiCodeStringNoNMI code (Australia only)
minIdLongNoStarting ID (inclusive); paging is ordered by collector_id ascending. Omit to start from the smallest ID.

Response Parameters (data):

ParameterTypeDescription
pageObjectPagination result
page.totalIntegerAlways 0 (cursor pagination does not return the real total)
page.recordsArrayCollector list
collectionStatusVoObjectCollector status summary
collectionStatusVo.allIntegerTotal count
collectionStatusVo.normalIntegerNormal count
collectionStatusVo.offlineIntegerOffline count
collectionStatusVo.faultIntegerFault count

records fields:

ParameterTypeDescription
idNumberCollector ID
snStringCollector SN
stationIdIntegerPlant ID
stationNameStringPlant name
modelStringCollector model
nameStringCollector name
rssiLevelIntegerSignal strength level
stateIntegerStatus: 1=online, 2=offline, 3=alarm
dataTimestampIntegerData update timestamp
contractTimeStringExpiry time

Get Collector Detail

Endpoint: POST /v1/api/collectorDetail

Request Parameters:

ParameterTypeRequiredDescription
idNumberNoCollector ID, id and sn cannot both be empty
snStringNoCollector SN

Response Parameters (data): Contains all list fields, plus:

ParameterTypeDescription
maximumNumberIntegerMax connected devices
actualNumberIntegerActual connected devices
currentWorkingTimeIntegerCurrent session uptime
totalWorkingTimeIntegerCumulative uptime
dataUploadCycleIntegerData upload interval (seconds)
factoryTimeStringManufacturing date

Get Collector Signal Values

Endpoint: POST /v1/api/collector/day

Request Parameters:

ParameterTypeRequiredDescription
snStringYesCollector SN
timeStringYesDate, format yyyy-MM-dd
timeZoneIntegerYesPlant timezone

Response Parameters (data array):

ParameterTypeDescription
collectorIdNumberCollector ID
collectorSnStringCollector SN
dataTimestampIntegerData timestamp
timeStrStringTime string
pecNumberSignal quality (%)
rssiNumberReceived signal strength
rssiLevelIntegerSignal level

EPM Interface Details

Get EPM List

Retrieve the list of EPM devices under the account. Maximum 100 devices per call.

Endpoint: POST /v1/api/epmList

Request Parameters:

ParameterTypeRequiredDescription
stationIdIntegerNoPlant ID
plantIdStringNoPlant code, same effect as stationId
nmiCodeStringNoNMI code (Australia only)
minIdLongNoStarting ID (inclusive); paging is ordered by epm_id ascending. Omit to start from the smallest ID.

Response Parameters (data.page.records):

ParameterTypeDescription
idNumberEPM ID
snStringEPM SN
collectorIdNumberCollector ID
collectorSnStringCollector SN
stationIdIntegerPlant ID
stateIntegerStatus: 1=online, 2=offline, 3=alarm
dataTimestampIntegerData update timestamp
failSafeIntegerFail-safe status
pEpmTotalNumberEPM total power
pEpmTotalStrStringPower unit
eTotalBuyNumberTotal grid purchase energy
eTotalBuyStrStringPurchase energy unit
eTotalSellNumberTotal grid sell energy
eTotalSellStrStringSell energy unit

Get EPM Detail

Endpoint: POST /v1/api/epmDetail

Request Parameters:

ParameterTypeRequiredDescription
snStringYesEPM SN

Response Parameters (data): Contains all list fields, plus:

ParameterTypeDescription
empSoftwareVersionStringEPM firmware version
pLimitNumberPower limit
ctRatioNumberCT ratio
pSetNumberPower setpoint
pInverterTotalNumberTotal inverter power
eToaalInverterNumberTotal inverter energy
pLoadNumberLoad power
eTotalLoadNumberTotal load energy
iAc1 / iAc2 / iAc3NumberAC current U/V/W (A)
uAc1 / uAc2 / uAc3NumberAC voltage U/V/W (V)
pAc1 / pAc2 / pAc3NumberActive power U/V/W (W)
powerFactorNumberGrid power factor
facMeterNumberGrid frequency (Hz)

Get EPM Day Data

Endpoint: POST /v1/api/epm/day

ParameterTypeRequiredDescription
snStringYesEPM SN
searchinfoStringYesQuery fields, comma-separated
timeStringYesDate, yyyy-MM-dd
timeZoneNumberYesPlant timezone

searchinfo field mapping:

searchinfoResponse fieldDescription
u_ac1/u_ac2/u_ac3uAc1/uAc2/uAc3AC voltage U/V/W
i_ac1/i_ac2/i_ac3iAc1/iAc2/iAc3AC current U/V/W
p_ac1/p_ac2/p_ac3pAc1/pAc2/pAc3Active power U/V/W
power_factorpowerFactorGrid power factor
fac_meterfacMeterGrid frequency
p_loadpLoadTotal load power
e_epm_totalpEpmTotalEPM total power
e_total_buyeTotalBuyGrid purchased energy
e_total_selleTotalSellGrid sold energy

EPM Month Data

Endpoint: POST /v1/api/epm/month

ParameterTypeRequiredDescription
snStringYesEPM SN
monthStringYesMonth, format yyyy-MM

Response Parameters (data array):

ParameterTypeDescription
dateStringDate
energyNumberEnergy
epmSellEnergyNumberSell energy
epmBuyEnergyNumberPurchase energy

EPM Year Data

Endpoint: POST /v1/api/epm/year

ParameterTypeRequiredDescription
snStringYesEPM SN
yearStringYesYear, format yyyy

Response Parameters (data array): Same fields as month data.

EPM All Data

Endpoint: POST /v1/api/epm/all

ParameterTypeRequiredDescription
snStringYesEPM SN

Response Parameters (data):

ParameterTypeDescription
energyNumberCumulative energy
epmSellEnergyNumberCumulative sell energy
epmBuyEnergyNumberCumulative purchase energy

Weather Station Interface Details

Get Weather Station List

Retrieve the list of weather stations under the account.

Endpoint: POST /v1/api/weatherList

Request Parameters:

ParameterTypeRequiredDescription
stationIdIntegerNoPlant ID
plantIdStringNoPlant code, same effect as stationId
nmiCodeStringNoNMI code (Australia only)
minIdLongNoStarting ID (inclusive); paging is ordered by weather_id ascending. Omit to start from the smallest ID.

Response Parameters (data.page.records):

ParameterTypeDescription
idNumberWeather station ID
collectorSnStringCollector SN
nameStringWeather station name
weatherModelIntegerModel: 1=Jinzhou Yangguang, 2=Jinzhou Licheng
stationIdIntegerPlant ID
stateIntegerStatus: 1=online, 2=offline
dataTimestampIntegerData update timestamp
totalRNumberTotal radiation (W/㎡)
directRNumberDirect radiation
scatteredRNumberScattered radiation
sunshineTimNumberSunshine duration (minutes)
totalRdayNumberDaily total radiation (MJ/㎡)
tempNumberAmbient temperature
temperatureUnitStringTemperature unit
humidityNumberHumidity (%RH)
windDirectionStringWind direction
windSpeedNumberWind speed (m/s)
airPressureNumberAir pressure (Pa)
rainfallNumberRainfall (mm)
pvTempNumberModule temperature

Get Weather Station Detail

Endpoint: POST /v1/api/weatherDetail

Request Parameters:

ParameterTypeRequiredDescription
snStringYesWeather station SN

Response Parameters (data): Same fields as list.


Ammeter Interface Details (User-level only)

Get Ammeter List

Retrieve the list of ammeters under the account.

Endpoint: POST /v1/api/ammeterList

Request Parameters:

ParameterTypeRequiredDescription
stationIdIntegerNoPlant ID
plantIdStringNoPlant code, same effect as stationId
nmiCodeStringNoNMI code (Australia only)
minIdLongNoStarting ID (inclusive); paging is ordered by ammeter_id ascending. Omit to start from the smallest ID.

Response Parameters (data.page.records):

ParameterTypeDescription
idNumberAmmeter ID
snStringAmmeter SN
collectorIdNumberCollector ID
collectorSnStringCollector SN
nameStringAmmeter name
stationIdIntegerPlant ID
stateIntegerStatus: 1=online, 2=offline
dataTimestampIntegerData update timestamp
psumNumberTotal active power
psumStrStringPower unit
eTodayPositiveActiveNumberToday's positive active energy
eTodayReverseActiveNumberToday's reverse active energy
eTotalPositiveActiveNumberCumulative positive active energy
eTotalReverseActiveNumberCumulative reverse active energy

Get Ammeter Detail

Endpoint: POST /v1/api/ammeterDetail

Request Parameters:

ParameterTypeRequiredDescription
snStringYesAmmeter SN

Response Parameters (data): Contains all list fields, plus:

ParameterTypeDescription
currentTransformerNumberCT ratio
electricMeterIntegerMeter type: 0=single-phase, other=three-phase
pA / pB / pCNumberPhase A/B/C active power (W)
aReactivePower / bReactivePower / cReactivePowerNumberPhase A/B/C reactive power (Var)
aLookedPower / bLookedPower / cLookedPowerNumberPhase A/B/C apparent power (VA)
uA / uB / uCNumberPhase A/B/C voltage (V)
iA / iB / iCNumberPhase A/B/C current (A)
totalReactivePowerNumberTotal reactive power
totalViewPowerNumberTotal apparent power
fAcNumberGrid frequency (Hz)
averagePowerFactorNumberAverage power factor

Plant Interface Details

Get Plant List

Retrieve the list of plants under the account.

Endpoint: POST /v1/api/userStationList

Request Parameters:

ParameterTypeRequiredDescription
plantIdStringNoPlant code
nmiCodeStringNoNMI code (Australia only)
idListArrayNoPlant ID list for batch query
minIdLongNoStarting ID (inclusive); paging is ordered by station_id ascending. Omit to start from the smallest ID.

Response Parameters (data.page.records):

ParameterTypeDescription
idNumberPlant ID
stationNameStringPlant name
addrStringPlant address
userIdNumberUser ID
userNameStringUser name
capacityNumberInstalled capacity
capacityStrStringCapacity unit
fullHourNumberFull-power hours
latitudeStringLatitude
longitudeStringLongitude
timeZoneIntegerTimezone
timeZoneStrStringTimezone description
moneyStringCurrency unit
priceNumberElectricity price
powerNumberReal-time power
powerStrStringPower unit
dayEnergyNumberToday's energy
monthEnergyNumberThis month's energy
yearEnergyNumberThis year's energy
allEnergyNumberCumulative energy
stateIntegerStatus
dataTimestampIntegerData update timestamp
stationTypeNewIntegerPlant type, see Appendix 2
nmiCodeStringNMI code
inverterPowerNumberInverter power
synchronizationTypeIntegerGrid connection type
daylightSwitchIntegerDaylight switch
timeZoneStandardIdStringStandard timezone, e.g. Asia/Shanghai

Get Plant Detail

Endpoint: POST /v1/api/stationDetail

Request Parameters:

ParameterTypeRequiredDescription
idNumberNoPlant ID, one of id/plantId/nmiCode required
plantIdStringNoPlant code
nmiCodeStringNoNMI code

Response Parameters (data): Contains all list fields, plus:

ParameterTypeDescription
dayInComeNumberToday's revenue
monthInComeNumberThis month's revenue
yearInComeNumberThis year's revenue
allInComeNumberCumulative revenue
batteryPowerNumberBattery power
batteryDischargeEnergyNumberBattery discharge energy
batteryChargeEnergyNumberBattery charge energy
batteryPercentNumberBattery SOC (%)
psumNumberTotal grid power
gridPurchasedDayEnergyNumberToday's grid purchase energy
gridSellDayEnergyNumberToday's grid sell energy
familyLoadPowerNumberHome load power
homeLoadEnergyNumberHome load energy
inverterBatteryCapacityNumberBattery capacity
batteryCapacityNumberBattery capacity
timeZoneStandardIdStringStandard timezone, e.g. Asia/Shanghai

Plant Day Energy List

Retrieve daily energy data for multiple plants.

Endpoint: POST /v1/api/stationDayEnergyList

Request Parameters:

ParameterTypeRequiredDescription
timeStringYesDate, format yyyy-MM-dd
stationIdsStringNoPlant IDs, comma-separated
plantIdStringNoPlant code
idListArrayNoPlant ID list
minIdLongNoStarting ID (inclusive); paging is ordered by station_id ascending. Omit to start from the smallest ID.
beginTimeStringNoStart time, format: yyyy-MM-dd, default: 30 days ago
endTimeStringNoEnd time, format: yyyy-MM-dd, default: today

Response Parameters (data.page.records):

ParameterTypeDescription
idNumberPlant ID
energyNumberEnergy
energyStrStringEnergy unit
dateStringDate
moneyNumberRevenue
batteryDischargeEnergyNumberBattery discharge energy
batteryChargeEnergyNumberBattery charge energy
gridPurchasedEnergyNumberGrid purchase energy
gridSellEnergyNumberGrid sell energy
totalRKwhNumberRadiation per area (kWh/㎡)

Plant Month Energy List

Retrieve monthly energy data for multiple plants. Rate limit: 10 times/sec.

Endpoint: POST /v1/api/stationMonthEnergyList

Request Parameters:

ParameterTypeRequiredDescription
timeStringYesMonth, format yyyy-MM
stationIdsStringNoPlant IDs, comma-separated
plantIdStringNoPlant code
nmiCodeStringNoNMI code
idListArrayNoPlant ID list
minIdLongNoStarting ID (inclusive); paging is ordered by station_id ascending. Omit to start from the smallest ID.

Response Parameters: Same fields as day energy list.

Plant Year Energy List

Retrieve yearly energy data for multiple plants. Rate limit: 10 times/sec.

Endpoint: POST /v1/api/stationYearEnergyList

Request Parameters:

ParameterTypeRequiredDescription
timeStringYesYear, format yyyy
stationIdsStringNoPlant IDs, comma-separated
plantIdStringNoPlant code
nmiCodeStringNoNMI code
idListArrayNoPlant ID list
minIdLongNoStarting ID (inclusive); paging is ordered by station_id ascending. Omit to start from the smallest ID.

Response Parameters: Same fields as day energy list.

Plant Day Data

Retrieve real-time data for a single plant on a specific day.

Endpoint: POST /v1/api/stationDay

Request Parameters:

ParameterTypeRequiredDescription
idNumberNoPlant ID, one of id/plantId/nmiCode required
plantIdStringNoPlant code
nmiCodeStringNoNMI code
moneyStringYesCurrency unit, e.g. CNY
timeStringYesDate, format yyyy-MM-dd
timeZoneIntegerYesPlant timezone

Response Parameters (data array):

ParameterTypeDescription
powerNumberPower
timeStringTime point
totalRNumberInstantaneous radiation
batteryCapacitySocNumberBattery SOC (%)
familyLoadPowerNumberHome load power
batteryPowerNumberBattery power
psumNumberTotal grid power

Plant Month Data

Endpoint: POST /v1/api/stationMonth

Request Parameters:

ParameterTypeRequiredDescription
idNumberNoPlant ID, one of three required
plantIdStringNoPlant code
nmiCodeStringNoNMI code
moneyStringYesCurrency unit
monthStringYesMonth, format yyyy-MM
timeZoneIntegerYesPlant timezone

Response Parameters (data array):

ParameterTypeDescription
energyNumberEnergy
dateStringDate
moneyNumberRevenue
batteryDischargeEnergyNumberBattery discharge energy
batteryChargeEnergyNumberBattery charge energy
gridPurchasedEnergyNumberGrid purchase energy
gridSellEnergyNumberGrid sell energy
totalRKwhNumberRadiation per area (kWh/㎡)

Plant Year Data

Same parameters as month data, using year (format yyyy) instead of month. Same response fields.

Endpoint: POST /v1/api/stationYear

Plant All Data

Endpoint: POST /v1/api/stationAll

Request Parameters:

ParameterTypeRequiredDescription
idNumberNoPlant ID, one of three required
plantIdStringNoPlant code
nmiCodeStringNoNMI code
moneyStringYesCurrency unit
timeZoneIntegerYesPlant timezone

Response Parameters (data):

ParameterTypeDescription
yearStringYear
energyNumberCumulative energy
moneyNumberCumulative revenue
batteryDischargeEnergyNumberCumulative battery discharge
batteryChargeEnergyNumberCumulative battery charge
gridPurchasedEnergyNumberCumulative grid purchase
gridSellEnergyNumberCumulative grid sell
totalRKwhNumberCumulative radiation per area (kWh/㎡)

Appendix

Appendix 1: Error Codes

CodeDescription
R0000No permission
B0001Already bound to another user
I0003Please enter SN
B0049Collector does not exist or no permission
I0000Required parameter is empty
B0011User does not exist
I0012Account or password error

Appendix 2: Plant Types

CodeDescription
0Grid-tied plant
1Energy storage plant
2AC Couple plant
3EPM plant (grid-tied + meter)
4Built-in meter (grid-tied + meter)
5External meter
6S5 Off-grid parallel storage
7S5 Grid-tied parallel storage
8Grid-tied + AC Couple plant
9Off-grid storage
10S6 Grid-tied parallel storage
11S6 Off-grid parallel storage

Appendix 3: Inverter Meter Types

CodeDescription
1Grid-tied
2Grid-tied + load-side meter
3Grid-tied + grid-side meter
4Storage + load-side meter
5Storage + grid-side meter
7Off-grid storage
8Grid-tied storage dual meter
1001AC Couple (without CT)
1002AC Couple (with CT)