Complete API documentation for InverterZone solar inverter monitoring system.
| Property | Value |
|---|---|
| Base URL | https://inverterzone.com |
| Protocol | HTTPS |
| Content Types | application/json, application/x-www-form-urlencoded |
All authenticated endpoints require a JWT token passed in the request body.
POST /api/login
Content-Type: application/jsonRequest:
{
"email": "user@example.com",
"password": "password",
"deviceId": "unique-device-id",
"deviceName": "Device Name"
}Response:
{
"code": "Y",
"msg": "Login Successful",
"token": "eyJhbGciOiJIUzI1NiJ9..."
}Notes:
- Store the
tokensecurely and include it in all subsequent requests - Token expires after a period (check
expclaim in JWT) - Session is also tracked via
JSESSIONIDcookie in web browser
POST /api/devicesMore
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN",
"pageNumber": "1"
}Response:
{
"pageNumber": 2,
"data": [
{
"id": 286,
"response": null,
"name": "VEYRON 6KW",
"mac": "F4CFA2735003",
"accessDevice": null,
"version": "9.6",
"phone": "03468382058",
"online": "Y",
"production": 0,
"load": 511,
"email": "user@example.com",
"location": null,
"installedPv": null,
"shared": "N"
}
]
}Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | JWT authentication token |
pageNumber |
string | Yes | Page number for pagination |
POST /api/getRealtimeData
Content-Type: application/x-www-form-urlencodedRequest:
deviceId=F4CFA2735003
Response:
{
"dataDTO": {
"deviceId": "F4CFA2735003",
"signal": "-74",
"localIp": "192.168.1.100",
"type": "L",
"gridV": 224.5,
"gridHz": 50.0,
"gridW": 0,
"acOutV": 230.0,
"acOutHz": 50.0,
"acOutVa": 437,
"acOutW": 417,
"acOutPercent": 7,
"busV": 363.0,
"heatSinkDegC": "52",
"inverterTemp": "0",
"battV": 52.3,
"battPercent": 49,
"battChargeA": 0.0,
"battDischargeA": 9.0,
"solarW": 0,
"solarV": 0.0,
"solarA": 0.0,
"solarW1": 0,
"solarV1": 0.0,
"solarA1": 0.0,
"solarW2": 0,
"solarV2": 0.0,
"solarA2": 0.0,
"solarW3": 0,
"solarV3": 0.0,
"solarA3": 0.0,
"iv_mode": "B",
"protocol": "PI30",
"chargingStatus": "30",
"acOutRatingW": "6000",
"acOutRatingV": 230,
"acOutRatungVA": "6000",
"battRatingV": "48.0",
"backToGridV": 48.0,
"backToDisV": 54.0,
"battBulkV": 56.5,
"battFloatV": 56.5,
"acOutRatingHz": 50.0,
"cutOffVolts": 42.0,
"battType": "LIB",
"battMaxAcChrgA": "30",
"battMaxChrgA": "50",
"inputVoltType": "APL",
"outputSource": "SBU",
"chargeSource": "OSO",
"inverterType": "Grid tie",
"time": "0",
"realTime": "10-03-2026 00:46",
"serverTime": "10-03-2026 00:47",
"currentVersion": "9.6",
"dongleType": "regular",
"freeHeap": "24048",
"jsonMemUsage": "1960",
"heapFrag": "1",
"chargingType": "",
"fanSpeed": "0",
"grid": true,
"gridFeeding": 0,
"heavyLoadBattery": false,
"lowSolar": false,
"heavyLoad": false,
"inverterSoftware": "VERFW:00060.01",
"inverterBuzzer": "1",
"powerSaving": "0",
"overloadRestart": "1",
"temperatureRestart": "1",
"lcdBacklight": "0",
"alarmInterrupt": "1",
"faultRecord": "1",
"overloadBypass": "0",
"defaultLcdPage": "1",
"fault": "NO",
"solarBatteryWatts": 0,
"gridBatteryWatts": 0,
"name": "Veyron 6kw 48.0V 6000W",
"pvInstalled": 6540,
"peakSolar": 0,
"netMetering": "Y",
"peakLoad": 511,
"eqStatus": 0,
"eqTime": 60,
"eqInterval": 30,
"eqMaxCharge": 50,
"eq24Charge": 30.0,
"eqVolatge": 58.4,
"eqOutTime": 120,
"eqActivate": 0,
"eqElapsetime": 0,
"dualOutput": 1
},
"type": "L"
}Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
deviceId |
string | Yes | Device MAC address (e.g., F4CFA2735003) |
Key Fields:
| Field | Description |
|---|---|
gridV, gridHz, gridW |
Grid voltage (V), frequency (Hz), power (W) |
acOutV, acOutW, acOutPercent |
AC output voltage, power, load percentage |
battV, battPercent, battChargeA, battDischargeA |
Battery voltage, percentage, charge/discharge amps |
solarW, solarV, solarA |
Solar input power (W), voltage (V), amps (A) |
outputSource |
Current mode: SBU (Solar-Battery-Utility), SUB (Solar-Utility-Battery) |
chargeSource |
Charging mode: OSO (Only Solar Charging) |
fault |
Fault status: NO = no fault |
POST /api/getEnergy
Content-Type: application/x-www-form-urlencodedRequest:
value=T&device=F4CFA2735003
Response:
{
"id": null,
"response": null,
"todaySolar": 0.0,
"todayGrid": 0.0,
"todayNetGrid": 0.0,
"todayNetSolar": 0.0,
"todayBattery": 0.3,
"todaySolarBattery": 0.0,
"todayGridBattery": 0.0,
"todayTotal": 0.4,
"todayLoad": 0.3,
"rate": 42,
"time": null,
"graphData": null,
"monthChart": null
}Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
value |
string | Yes | Time period: T (Today), TM (This Month), LM (Last Month) |
device |
string | Yes | Device MAC address |
Value Options:
| Value | Description |
|---|---|
T |
Today |
TM |
This Month |
LM |
Last Month |
Energy Fields (kWh):
| Field | Description |
|---|---|
todaySolar |
Solar energy generated |
todayGrid |
Energy from grid |
todayNetGrid |
Net grid energy (export - import) |
todayBattery |
Battery energy used |
todayLoad |
Total load consumption |
rate |
Electricity rate (currency per kWh) |
POST /api/realtimeChart
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN",
"deviceId": "F4CFA2735003"
}Response:
{
"chart": [...],
"chart24": [...],
"chartMonth": null,
"monthStats": null
}Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | JWT authentication token |
deviceId |
string | Yes | Device MAC address |
Response Structure:
| Field | Description |
|---|---|
chart |
Array of recent data points (minute-by-minute) |
chart24 |
Array of 24-hour aggregated data points |
chartMonth |
Monthly chart data (null in this endpoint) |
monthStats |
Monthly statistics (null in this endpoint) |
POST /api/realtimeChartData
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN",
"deviceId": "F4CFA2735003",
"value": "TM"
}Response:
{
"chart": null,
"chart24": null,
"chartMonth": [
{
"deviceId": "F4CFA2735003",
"gridV": 241.1,
"gridW": -4226,
"solarW": 4494,
"battV": 56.4,
"battPercent": 0,
"time": "05-03-2026 11:40",
"timeDate": 1772692811.682,
"realTime": "05-03-2026 11:40"
}
],
"monthStats": [
{
"todaySolar": 23.8,
"todayGrid": 3.3,
"todayNetGrid": 12.1,
"todayBattery": 2.4,
"todayLoad": 8.6,
"rate": 0,
"time": "2026-03-09"
}
]
}Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | JWT authentication token |
deviceId |
string | Yes | Device MAC address |
value |
string | Yes | Time period: TM (This Month), LM (Last Month) |
POST /api/getNotificationsCount
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN",
"deviceId": "F4CFA2735003"
}Response:
0
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | JWT authentication token |
deviceId |
string | Yes | Device MAC address |
POST /api/readNotifications
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN",
"deviceId": "F4CFA2735003"
}Response:
(empty - 200 OK)
POST /api/getNotificationsMore
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN",
"deviceId": "F4CFA2735003",
"pageNumber": "1"
}Response:
{
"pageNumber": 2,
"data": [
{
"id": null,
"response": null,
"msg": "Timer set Mode to Solar Battery Sharing (SBU)",
"status": "Y",
"type": "T",
"time": "12:00 AM | 10-03-2026"
},
{
"id": null,
"response": null,
"msg": "Battery Under Heavy Load 2120W",
"status": "Y",
"type": "B",
"time": "03:53 PM | 09-03-2026"
}
]
}Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | JWT authentication token |
deviceId |
string | Yes | Device MAC address |
pageNumber |
string | Yes | Page number for pagination |
Notification Types:
| Type | Description |
|---|---|
T |
Timer event |
B |
Battery event (low/high/heavy load) |
POST /api/getSettingsData
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN",
"deviceId": "F4CFA2735003"
}Response:
{
"outputMode": "SBU",
"batteryChargeMode": "OSO",
"floatCharge": 56.5,
"bulkCharge": 56.5,
"backDichargeVolt": 54.0,
"cutOffVolt": 42.0,
"backToGrid": 48.0,
"acOutRatingHz": 50.0,
"acChargeA": "30",
"solarChargeA": "50",
"acOutRatingW": "6000",
"acInputRange": "APL",
"batteryType": "PYL",
"batteryRatingV": "48.0",
"notification": "Y",
"emailNotification": "N",
"signal": "-73",
"firmware": "9.6",
"inverterType": "Grid tie",
"netMetering": "Y",
"pvCapacity": 6540,
"batAlert": 1900,
"outputV": 230,
"packageDate": "Expired",
"inverterSoftware": "VERFW:00060.01",
"inverterBuzzer": "1",
"powerSaving": "0",
"powerPriority": null,
"overloadRestart": "1",
"temperatureRestart": "0",
"lcdBacklight": "0",
"alarmInterrupt": "1",
"faultRecord": "1",
"overloadBypass": "0",
"defaultLcdPage": "1",
"brandName": "inverex",
"modelName": "VEYRON II",
"protocol": "PI30",
"rate": 42,
"eqStatus": 0,
"eqTime": 60,
"eqInterval": 30,
"eqMaxCharge": null,
"eq24Charge": null,
"eqVolatge": 58.4,
"eqOutTime": null,
"eqActivate": 0,
"eqElapsetime": null,
"dualOutput": 1,
"location": "Y",
"dualOutputVolts": null
}Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | JWT authentication token |
deviceId |
string | Yes | Device MAC address |
Key Settings:
| Field | Description |
|---|---|
outputMode |
Output mode: SBU, SUB, etc. |
batteryChargeMode |
Charging mode: OSO (Only Solar) |
floatCharge, bulkCharge |
Battery charging voltages |
cutOffVolt |
Battery cut-off voltage |
batteryType |
Battery type: PYL (LiFePO4), LIB (Lithium), etc. |
firmware |
Device firmware version |
pvCapacity |
Installed PV capacity (W) |
POST /api/getTimerDevices
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN"
}Response:
[
{
"id": 286,
"response": null,
"name": "VEYRON 6KW",
"mac": "F4CFA2735003",
"accessDevice": null,
"version": "9.6",
"phone": null,
"online": null,
"production": null,
"load": null,
"email": null,
"location": null,
"installedPv": null,
"shared": null
}
]POST /api/getTimerData
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN",
"deviceId": "286"
}Response:
[
{
"id": 1524,
"response": null,
"name": "Veyron 6kw",
"setting": "Mode",
"value": "SBU",
"time": "17:59:00",
"working": "Y",
"schedule": "D",
"deviceId": null,
"protocol": null
},
{
"id": 5941,
"setting": "Mode",
"value": "SUB",
"time": "22:05:00",
"working": "Y",
"schedule": "D"
}
]Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | JWT authentication token |
deviceId |
string | Yes | Device numeric ID (e.g., 286) |
Schedule Values:
| Value | Description |
|---|---|
D |
Daily |
POST /api/getTimerSettingDropdown
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN"
}Response:
[
{"label": "Mode", "value": "Mode"},
{"label": "Charging Mode", "value": "Charging"},
{"label": "Battery Type", "value": "BatteryType"},
{"label": "Grid Charging", "value": "GridCharging"},
{"label": "Solar Charging", "value": "SolarCharging"},
{"label": "Cutt Of Volts", "value": "CuttOfVolts"},
{"label": "Back to Grid Volts", "value": "BackToGrid"},
{"label": "Float Volts", "value": "FloatVolts"}
]POST /api/checkAccess
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN",
"deviceId": "F4CFA2735003"
}Response:
{
"code": "Y",
"msg": "Y",
"devicesCount": null,
"timerCount": null,
"accessCount": null
}POST /api/checkOwnerAccess
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN"
}Response:
{
"code": "N",
"msg": "N",
"devicesCount": null,
"timerCount": null,
"accessCount": null
}Response Codes:
| Code | Description |
|---|---|
Y |
User has owner access |
N |
User does not have owner access |
POST /api/accessShareDevices
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN"
}Response:
[]POST /api/getAccessDeviceDropDown
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN"
}Response:
[
{"label": "VEYRON 6KW-F4CFA2735003", "value": "286"}
]POST /api/dashboard
Content-Type: application/jsonRequest:
{
"token": "JWT_TOKEN"
}Response:
{
"devicesCount": 1,
"timerCount": 6,
"accessCount": 0,
"nearByCount": 14104,
"favCount": 1,
"userEmail": "user@example.com",
"userName": "User Name"
}Response Fields:
| Field | Description |
|---|---|
devicesCount |
Number of devices owned by user |
timerCount |
Number of active timers |
accessCount |
Number of shared access grants |
nearByCount |
Number of nearby devices (for discovery) |
favCount |
Number of favorited devices |
userEmail |
User's email address |
userName |
User's display name |
| HTTP Code | Description | Action |
|---|---|---|
| 200 | Success | Request completed successfully |
| 401 | Unauthorized | Invalid or expired token - re-authenticate |
| 403 | Forbidden | User lacks permission for this resource |
| 404 | Not Found | Resource or endpoint not found |
| 500 | Internal Server Error | Server error - retry later |
| 503 | Service Unavailable | Server temporarily unavailable |
- Token Storage: Store JWT tokens securely (Keychain/Keystore for mobile apps)
- Token Expiry: Check token expiration and refresh before expiry
- Session Cookie: Web app also uses
JSESSIONIDcookie for session management
| Endpoint | Content-Type |
|---|---|
/api/getRealtimeData |
application/x-www-form-urlencoded |
/api/getEnergy |
application/x-www-form-urlencoded |
| All other endpoints | application/json |
Some endpoints accept different device ID formats:
| Format | Example | Used By |
|---|---|---|
| MAC Address | F4CFA2735003 |
getRealtimeData, getEnergy, checkAccess |
| Numeric ID | 286 |
getTimerData, dropdown endpoints |
| Mode | Description |
|---|---|
SBU |
Solar-Battery-Utility (prioritize solar, then battery, then grid) |
SUB |
Solar-Utility-Battery (prioritize solar, then grid, then battery) |
OSO |
Only Solar Charging |
- API may implement rate limiting
- Handle 429 (Too Many Requests) responses with exponential backoff
- Avoid polling realtime endpoints more than once per minute
Always check response status and handle errors gracefully:
if (response.code === 'Y') {
// Success
} else {
// Handle error
console.error(response.msg);
}| Version | Date | Changes |
|---|---|---|
| 1.0 | 2026-03-10 | Initial documentation from HAR analysis |
Generated from network traffic analysis on 2026-03-10