Skip to Content

API List

This is a list of available APIs that are currently being used by the GivEnergy domain

For users unfamiliar with APIs. Please follow the link for using Postman

Working solutions have been found for integration outside of postman - JSoup, Node-RED. These are examples of backend based API tools for integration with your appliances

Base URL - http://www.givenergy.cloud/GivManage/api/

The login is session based, meaning the connection will persist as long as the user does not log out. This is the first API that the user will need to send. Expected endpoint format will output in JSON


Login API

POST - login

Parameters
account - Your Username
password - Your Password

Return
{"success":true}

Plant API

A plant is the user's homepage out of the following: Distributor, Company, Engineer and End User. The plant has information on the number of inverters  you have and the daily, monthly, yearly and total generation made by your inverters.

POST - plant/getPlantList

Returns a list of all plants.

Return
"total": 999,
"success": true,
"rows": [

"country": "UNITED_KINGDOM",
"energyTotal": "4350.40",
"energyTodayText": "0.00 kWh",
"timezone": 0,
"timezoneText": "GMT 0",
"energyToday": "0.00",
"energyTotalText": "4.35 MWh",
"plantId": 1,
"nominalPower": 0,
"currentPower": "0.00",
"name": "givenergy user",
"currentPowerText": "0 W",
"countryText": "England",
"createDate": "2018-03-14"
} ... ]

POST - plant/getPlantInfo

Returns the information of one plant page. 

Parameters
plantId Found from API get all plant list.

Return
An individual plant with the same output JSON as the above API call

POST - plant/getPlantSummary

Returns a list of your own plant information

Return
{
"exportEnergyTodayText": "0.00 kWh",
"importEnergyTodayText": "0.00 kWh",
"importEnergyToday": "0.00",
"soc": 0,
"exportEnergyTotal": "4340.30",
"importEnergyTotal": "2775.10",
"exportEnergyToday": "0.00",
"totalGenerationText": "5.96 MWh",
"batPower": "0.00",
"consumptionEnergyTotalText": "3994.30 kWh",
"batteryCapacity": 5,
"loadPowerkW": "0.00",
"consumptionEnergyToday": "0.00",
"gridPower": "0.00",
"energyTodayText": "0.00 kWh",
"activeInverterCount": "0/1",
"averageHomeSelfConsumptionToday": 0,
"exportEnergyTotalText": "4340.30 kWh",
"importEnergyTotalText": "2775.10 kWh",
"pvPower": "0.00",
"gridPowerkW": "0.00",
"success": true,
"totalGeneration": "5955.20",
"averageHomeSelfConsumptionTotal": "27.12",
"bttTotalText": "3.71 MWh",
"loadPower": 0,
"dischargeEnergyToday": "0.00",
"totalCo2Saved": "5.937",
"btMonth": "1.60",
"bttTotal": "3709.70",
"selfConsumptionTotalText": "1614.90 kWh",
"chargeEnergyToday": "0.00",
"selfConsumptionTodayText": "0.00 kWh",
"pInv": 0,
"pvPowerText": "0 W",
"selfConsumptionToday": "0.00",
"savingsToday": "0.00",
"savingsTotal": "20396.19",
"selfConsumptionTotal": "1614.90",
"consumptionEnergyTotal": "3994.30",
"gridRelianceToday": 0,
"gridEnergyOutToday": "0.00",
"gridRelianceTotal": 69,
"consumptionEnergyTodayText": "0.00 kWh",
"energyToday": "0.00",
"gridEnergyOutTotal": "22743.17",
"btToday": "0.10",
"feedInTariffToday": "0.00",
"feedInTariffTotal": "80216.55",
"batteryCapacityText": "5.00 kWh",
"loadPowerText": "0 W",
"monthCo2Saved": "0.000",
"todayCo2Saved": "0.000",
"dailyAlarmCount": 0,
"pvPowerkW": "0.00"
}

POST - plant/getPlantRuntime

Get a summary of your energy data for the inverters you own

Parameters
plantId
-  Found from API get all plant list.

Return
{
"normalInverterCount": 0,
"energyTotal": "4350.40",
"energyTodayText": "0.00 kWh",
"energyToday": "0.00",
"energyTotalText": "4.35 MWh",
"plantId": 1,
"unknownInverterCount": 0,
"errorInverterCount": 0,
"lostDatalogCount": 0,
"nominalPower": 0,
"normalDatalogCount": 0,
"currentPower": "0.00",
"load": "\ufffd",
"energyTree": "39.08",
"success": true,
"waitingInverterCount": 0,
"currentPowerText": "0 W",
"lostInverterCount": 0,
"energyCo2": "4.337"
}

POST - plant/getPlantDevices 

Get Plant's Inverter

Parameters
plantId
-  Found from API get all plant list.

Return
{
"datalogs": [ {
"deviceType": "DATALOG",
"serialNum": "WF...",
"hasInverter": true,
"lost": false,
"datalogType": "GPRS",
"inverters": [
{
"deviceType": "STORAGE",
"productModel": "Giv-HY5.0",
"serialNum": "SD..." ,
"address": "ST1" ,
"batPercent": "85%",
"energyTodayText": "0.70 kWh",
"energyTotalText": "2.24 MWh",
"currentPowerText": "601 W",
"nominalCapacity": 102,
"alias": "SD...",
"batteryType": "Lithium battery",
"status": "NORMAL"
}
],
"alias": "WF..."
} ],
"success": true,
"plantId": 1
}

POST - plant/getPlantEnergy

Get Plant Energy Output by Date, Month, Year, or Total

Parameters
Type - 
0: Daily, 1: Monthly, 2: Yearly, 3: Total. Pre-set endpoints will be available for each type
dateText - Format dependent on the Type input parameter
0 - YYYY-MM-DD
1 - YYYY-MM
2 - YYYY
3 - No dateText input

Return
{
"success": true,
"energyText": "0.00 kWh",
"plantId": 1,
"energy": "0.00"
}

POST - plant/event/getPlantEvents

Get Plant Event. Currently, the endpoint retrieves the past 10 events

Parameters
plantId -  Found from API get all plant list.

Return
{
"total": 257,
"success": true,
"plantId": "1",
"rows": [
{
"customEventTypeText": "Event",
"serialNum": "SD...",
"recordId": 2319,
"customEventType": "EVENT",
"endUser": "givenergy user",
"eventText": "BMS Under Voltage",
"renormal": true,
"alias": "SD...",
"datalogSn": "WF...",
"company": "Givenergy02",
"startTime": "2019-09-27 09:46:54",
"renormalTime": "2019-09-27 09:51:12",
"endTime": "2019-09-27 09:46:54",
"event": "STORAGE_WARN_BMS_UNDER_VOLTAGE",
"clearedTime": "2019-09-27 09:51:12",
"status": "Cleared"
}, ... ]
}


Plant Chart API

The graphing portion of the user's homepage. Lists output in chartable JSON

POST - plantChart/dayLine

Get Plant Energy Output of the time between 5:30am - 8:30pm on an hourly basis

Parameter
plantId -  Found from API get all plant list.
dateText - YYYY-MM-DD

Return
{
"data": [
{
"pac": "0",
"month": 8,
"hour": 5,
"year": 2020,
"time": "2020-09-18 05:30:00",
"day": 18,
"minute": 30,
"second": 0
}, ... ]
}

POST - plantChart/monthColumn

Get Plant Energy Output by one specified Month. Output displayed per day basis

Parameters
plantId -  Found from API get all plant list.
Year - YYYY
Month - MM or M

Return
{
"data": [
{
"exportEnergy": "0.00",
"importEnergy": "0.00",
"consumptionEnergy": "1.00",
"day": 1,
"energy": "1.00"
}, ... ]
}

POST - plantChart/yearColumn 

Get Plant Energy Output by the Year per monthly basis

Parameters
plantId Found from API get all plant list.
Year - YYYY

Return
{
"data": [
{
"exportEnergy": "0.00",
"importEnergy": "0.00",
"consumptionEnergy": "0.00",
"month": 1,
"energy": "0.00"
}, ... ]
}

POST - plantChart/totalColumn

Get Plant Energy Output Total by Yearly Basis

Parameters
plantId
-  Found from API get all plant list.

Return
{
"data": [
{
"exportEnergy": "0.00",
"importEnergy": "0.00",
"consumptionEnergy": "0.00",
"year": 2014,
"energy": "0.00"
},


Inverter API

The inverter is owned by an End user, distributed by a company, and commissioned by an Engineer. The inverter states the amount of energy generated

POST - inverter/getInverterInfo 

Get Inverter Information

Parameters
serialNum
- The hybrid number of your inverter

Return
{
"deviceType": "STORAGE",
"productModel": "Giv-HY3.6",
"serialNum": "SA...",
"address": 17,
"batPercent": "30.00%",
"endUserPostcode": "YO8",
"nominalCapacity": "102.0",
"nominalPower": 3600,
"endUser": "",
"success": true,
"companyAddress": ",",
"alias": "SA...",
"datalogSn": "WF...",
"commissionDate": "2020-07-13",
"company": "",
"endUserAddress": "",
"batteryType": "Lithium battery",
"companyPostcode": ""
}

POST - inverter/getInverterRuntime

Get Inverter power snapshot

Parameters
serialNum
- The hybrid number of your inverter

Return
{
"pGridText": "-180 W",
"pacText": "1.0 W",
"ppv2": 0,
"ppv2Text": "0.0 W",
"ppv1": 2623,
"pLoadText": "181 W",
"pac": 1,
"success": true,
"lost": false,
"statusText": "Normal",
"pLoad": 181,
"pGrid": -180,
"ppv1Text": "2623.0 W",
"status": "NORMAL"
}

POST - inverter/getInverterEnergy 

Get Inverter Generation by Date, Month, Year or Total

Parameters
serialNum
- The hybrid number of your inverter
Type - 0: Daily, 1: Monthly, 2: Yearly, 3: Total. Pre-set endpoints will be available for each type
dateText - Format dependent on the Type input parameter
0 - YYYY-MM-DD
1 - YYYY-MM
2 - YYYY
3 - No dateText input

Return
{
"serialNum": "SA...",
"success": true,
"energyText": "1.08 MWh",
"energy": "1075.10"
}

POST - pcs/batCell/getBatCellData

Return the battery data of an inverter

Parameters
serialNum -
The hybrid number of your inverter

Return
{
"success": true,
"lost": false,
"maxVoltModule": 1,
"minVoltModule": 1,
"modules": [
{
"cellVoltage8": 3382,
"cellVoltage9": 3382,
"cellVoltage4": 3377,
"moduleVoltage": 542,
"cellVoltage5": 3375,
"cellVoltage6": 3377,
"cellVoltage7": 3378,
"moduleSoc": 43,
"cellVoltage10": 3378,
"cellVoltage1": 3378,
"cellVoltage2": 3375,
"cellVoltage3": 3374,
"cellVoltage14": 3382,
"hasBmsCellModuleInfo": true,
"cellVoltage13": 3385,
"cellVoltage12": 3378,
"cellTempreture2Text": "19.9",
"cellVoltage11": 3382,
"minVoltItem": 3,
"maxVoltDiffValue": 11,
"cellTempreture3Text": "18.4",
"module": 1,
"charging": 1,
"maxVoltItem": 13,
"cellTempreture4Text": "17.4",
"cellVoltage16": 3383,
"cellVoltage15": 3383,
"discharging": 1,
"moduleTempretureText": "33.1",
"cellTempreture1Text": "19.7"
} ]
}

POST - inverter/getInverterRuntime

Parameters
serialNum -
The hybrid number of your inverter

Return
{
"pGridText": "576 W",
"pacText": "1076.0 W",
"ppv2": 0,
"ppv2Text": "0.0 W",
"ppv1": 2615,
"pLoadText": "500 W",
"pac": 1076,
"success": true,
"lost": false,
"statusText": "Normal",
"pLoad": 500,
"pGrid": 576,
"ppv1Text": "2615.0 W",
"status": "NORMAL"
}


Inverter Chart

Graphing portion of the Inverter's homepage

POST - invChart/DayLine 

Graphing portion of the Inverter's homepage. Lists output in chartable JSON

Parameters
serialNum -
The hybrid number of your inverter
attr - The attribute is the selectable parameter you want to display over time. Available values: pac, ppv, vpv1, ipv1, vpv2, ipv2, pacr, pacs, pact, temperature
dateText - YYYY-MM-DD

Return
{
"avgValue": 356.11865234375,
"minValueText": "-3024.00",
"yAxis": "pac",
"xAxis": "time",
"data": [
{
"month": 8,
"hour": 0,
"year": 2020,
"time": "2020-09-18 00:01:34",
"day": 18,
"value": 18,
"minute": 1,
"second": 34
},

POST - invChart/monthColumn

Get Inverter Chart Data by specified month

Parameters
serialNum - The hybrid number of your inverter
Year - YYYY
Month - MM or M

Return
{
"data": [
{
"exportEnergy": 15.2,
"importEnergy": 15.2,
"consumptionEnergy": 15.2,
"day": 1,
"energy": 15.2
}, ... ]
}

POST - invChart/yearColumn 

Get Inverter Chart Data by Year

Parameters
serialNum - The hybrid number of your inverter
Year - YYYY

Return

{
"data": [
{
"exportEnergy": "0.00",
"importEnergy": "0.00",
"consumptionEnergy": "0.00",
"month": 1,
"energy": "0.00"
}, ... ]
}

POST - invChart/totalColumn 

Get Inverter Chart Data Total

Parameters
serialNum - The hybrid number of your inverter

Return
{
"data": [
{
"importEnergy": 0,
"consumptionEnergy": 0,
"year": 2014,
"ExportEnergy": 0,
"energy": 0
},


Miscenllaneous APIs

POST - givenergy.cloud/GivManage/invData/
Returns datatable information of the inverter. This data can be shown on the system data page of your inverter

Parameters
page - Set to 1 
row - 
Number of datarows that are returned

Return
{
"total": 356,
"rows": [
{
"vpv2": "0.00",
"vpv1": "245.20",
"loadPower": "230.00",
"moduleVoltage": "53.70",
"importEnergyToday": "7.30",
"ppv2": "0.00",
"exportEnergyToday": "0.30",
"fac": "50.00",
"invImportEnergyToday": "0.30",
"invImportEnergyTotal": "37.60",
"batPower": "0.00",
"ppv1": "0.00",
"ipv2": "0.00",
"ipv1": "0.00",
"pac": "-230.00",
"pacr": "0.00",
"meter2ActivePower": "-230.00",
"pacs": "0.00",
"pact": "0.00",
"invVoltage": "246.30",
"temperature": "28.00",
"batCurrent": "0.00",
"batPercent": "100.00",
"meter2PowerFactor": "2370.00",
"meter1ActivePower": "0.00",
"runtime": "26.00",
"invFrequency": "49.99",
"vact": "54.60",
"eacTotal": "15.80",
"vacs": "0.00",
"eacToday": "0.20",
"vacr": "247.50",
"gridExportEnergyTotal": "14.30",
"meter2ApparentPower": "301.00",
"batVoltage": "53.61",
"iacr": "0.00",
"ppv": "0.00",
"iact": "20.50",
"iacs": "0.00",
"time": "2020-10-27 23:54:36",
"chgTemperature": "27.80",
"batTemperature": "17.00",
"gridImportEnergyTotal": "47.00",
"status": "WAITING"
}, ..]
}

POST - givenergy.cloud/GivManage/invMeter/

Returns Meter data. This data can be shown on the meter data page of your inverter

Parameter
Page - Set to 1
Rows - Number of data rows that are returned

Return
{
"total": 287,
"rows": [
{
"acChargeToday": "0.10",
"acChargeTotal": "9.10",
"consumptionToday": "16.20",
"chargeEnergyToday"0.00"
"chargeEnergyTotal": "2567.80",
"combinedToday": "3.90",
"combinedTotal"13.10"
"consumptionToday"2.70"
"consumptionTotal"52.60",
"dischargeEnergy": "0.00"
"dischargeEnergyTotal": "2567.80",
"exportToday": "0.10",
"exportTotal": "2.30",
"importToday": "10.80",
"importTotal": "25.40",
"pvGenerationToday": "1.70",
"pvGenerationTotal": "3.50",
"selfConsumptionToday": "1.60",
"selfConsumptionTotal": "1.20"
"time": "2020-10-27 23:56:18",

},

POST - givenergy.cloud/GivManage/cellData/

Returns battery cell data. This data can be shown on the battery cell data page of your inverter

Parameter
Page - Set to 1
Rows - Number of data rows that are returned

Return
{
"total": 114,
"rows": [
{
"capacity": "10200.00",
"cellVoltage0": "-0.001",
"cellVoltage1": "3.282",
"cellVoltage2": "3.283",
"cellVoltage3": "3.282",
"cellVoltage4": "3.283",
"cellVoltage5": "3.285",
"cellVoltage6": "3.283",
"cellVoltage7": "3.283",
"cellVoltage8": "3.285",
"cellVoltage9": "3.285",
"cellVoltage10": "3.287",
"cellVoltage11": "3.287",
"cellVoltage12": "3.287",
"cellVoltage13": "3.287",
"cellVoltage14": "3.287",
"cellVoltage15": "3.290",
"cellVoltage16": "3.290",
"cellTempreture4": "8.3",
"cellTempreture3": "8.3",
"cellTempreture2": "8.3",
"cellTempreture1": "8.3",
"fullCap": "100.54",
"module": 1,
"moduleTempreture": "9.8",
"moduleVoltage": "52.5",
"soc": 11,
"time": "2020-12-24 10:15:20"
}, ...
]