Download OpenAPI specification:
REST API for the EMS smart-meter platform: read system data, browse the configuration (Devices → Loads → Signals) and get realtime / historical measurements.
meterBus, tcp, rtu, virtual, P1).Every endpoint except GET /ver and POST /v1/auth/login requires a Bearer
JWT obtained from the login endpoint. Tokens expire 30 minutes after issue.
Pass the token in the Authorization header:
Authorization: Bearer <token>
Create a POST request with JSON body with username and password of
a API role account. The returned token expires 30 minutes after issue
and must be sent as Authorization: Bearer <token> on every protected endpoint.
| username required | string |
| password required | string <password> |
{- "username": "admin",
- "password": "s3cret!"
}{- "token": "eyJhbGciOi…<jwt>…"
}| uids | string Example: uids=1,2,59 Comma-separated list of UIDs to filter by. |
| protocol | string Enum: "rtu" "tcp" "meterBus" "virtual" "P1" Filter by protocol. Accepted values: |
{- "devices": {
- "1": {
- "uid": 1,
- "label": "Main meter",
- "partNumber": "EMS10AV5S1X",
- "system": "1P"
}, - "59": {
- "uid": 59,
- "label": "EM1",
- "partNumber": "EM24_E1",
- "system": "1P"
}
}
}| uids | string Example: uids=1,2,59 Comma-separated list of UIDs to filter by. |
| protocol | string Enum: "rtu" "tcp" "meterBus" "virtual" "P1" Filter by protocol. Accepted values: |
{- "loads": {
- "2": {
- "uid": 2,
- "label": "Main",
- "enable": true,
- "index": 1,
- "type": 0,
- "did": 1,
- "meterBus": {
- "main": true,
- "system": 0,
- "ct": 10,
- "currentDirections": 0,
- "digitalInputMode": 0,
- "digitalOutputMode": 0,
- "digitalOutputModeNcNo": 0,
- "measureType": 0,
- "startUpCurrentRH": 10
}
}
}
}| uid required | integer Example: 1 Resource UID |
{- "loads": {
- "2": {
- "uid": 2,
- "label": "Main",
- "enable": true,
- "index": 1,
- "type": 0,
- "did": 1,
- "meterBus": {
- "main": true,
- "system": 0,
- "ct": 10,
- "currentDirections": 0,
- "digitalInputMode": 0,
- "digitalOutputMode": 0,
- "digitalOutputModeNcNo": 0,
- "measureType": 0,
- "startUpCurrentRH": 10
}
}
}
}| uids | string Example: uids=1,2,59 Comma-separated list of UIDs to filter by. |
| limit | integer Default: 1000 Example: limit=100 Maximum number of records to return. Default 1000. |
| page | integer Default: 1 Example: page=1 1-based page number. Default 1. |
{- "signals": {
- "100": {
- "uid": 100,
- "si": 29,
- "sir": 29,
- "enable": true,
- "lid": 83,
- "did": 82
}, - "101": {
- "uid": 101,
- "si": 30,
- "sir": 30,
- "enable": true,
- "lid": 83,
- "did": 82
}
}
}| uid required | integer Example: 1 Resource UID |
{- "signals": {
- "100": {
- "uid": 100,
- "si": 29,
- "sir": 29,
- "enable": true,
- "lid": 83,
- "did": 82
}, - "101": {
- "uid": 101,
- "si": 30,
- "sir": 30,
- "enable": true,
- "lid": 83,
- "did": 82
}
}
}| uid required | integer Example: 1 Resource UID |
{- "signals": {
- "100": {
- "uid": 100,
- "si": 29,
- "sir": 29,
- "enable": true,
- "lid": 83,
- "did": 82
}, - "101": {
- "uid": 101,
- "si": 30,
- "sir": 30,
- "enable": true,
- "lid": 83,
- "did": 82
}
}
}| uids | string Example: uids=1,2,59 Comma-separated list of UIDs to filter by. |
| limit | integer Default: 1000 Example: limit=100 Maximum number of records to return. Default 1000. |
| page | integer Default: 1 Example: page=1 1-based page number. Default 1. |
{- "realtime": {
- "100": {
- "uid": 100,
- "si": 29,
- "v": 230.4,
- "t": 1752493029975,
- "r": 0,
- "s": 1
}, - "101": {
- "uid": 101,
- "si": 30,
- "v": 2.5,
- "t": 1752493029975,
- "r": 0,
- "s": 1
}
}
}| uid required | integer Example: 1 Resource UID |
{- "realtime": {
- "100": {
- "uid": 100,
- "si": 29,
- "v": 230.4,
- "t": 1752493029975,
- "r": 0,
- "s": 1
}, - "101": {
- "uid": 101,
- "si": 30,
- "v": 2.5,
- "t": 1752493029975,
- "r": 0,
- "s": 1
}
}
}| uid required | integer Example: 1 Resource UID |
{- "realtime": {
- "100": {
- "uid": 100,
- "si": 29,
- "v": 230.4,
- "t": 1752493029975,
- "r": 0,
- "s": 1
}, - "101": {
- "uid": 101,
- "si": 30,
- "v": 2.5,
- "t": 1752493029975,
- "r": 0,
- "s": 1
}
}
}| uids | string Example: uids=1,2,59 Comma-separated list of UIDs to filter by. |
| start | string Example: start=1735689600000 Start of the time range — Unix timestamp in milliseconds. |
| end | string Example: end=1735776000000 End of the time range — Unix timestamp in milliseconds. |
| limit | integer Default: 1000 Example: limit=100 Maximum number of records to return. Default 1000. |
| page | integer Default: 1 Example: page=1 1-based page number. Default 1. |
{- "history": {
- "3": [
- {
- "uid": 3,
- "t": 1735689659,
- "p": 1735689660,
- "v": 10.5,
- "d": 0,
- "max": 100,
- "min": 0
}, - {
- "uid": 3,
- "t": 1735689719,
- "p": 1735689720,
- "v": 9.3,
- "d": 0,
- "max": 100,
- "min": 0
}
], - "4": [
- {
- "uid": 4,
- "t": 1735689659,
- "p": 1735689660,
- "v": -93.4,
- "d": 0,
- "max": 100,
- "min": -100
}
]
}
}| uid required | integer Example: 1 Resource UID |
| start | string Example: start=1735689600000 Start of the time range — Unix timestamp in milliseconds. |
| end | string Example: end=1735776000000 End of the time range — Unix timestamp in milliseconds. |
| limit | integer Default: 1000 Example: limit=100 Maximum number of records to return. Default 1000. |
| page | integer Default: 1 Example: page=1 1-based page number. Default 1. |
[- {
- "uid": 3,
- "t": 1735689659,
- "p": 1735689660,
- "v": 10.5,
- "d": 0,
- "max": 100,
- "min": 0
}
]| uids | string Example: uids=1,2,59 Comma-separated list of UIDs to filter by. |
| limit | integer Default: 1000 Example: limit=100 Maximum number of records to return. Default 1000. |
| page | integer Default: 1 Example: page=1 1-based page number. Default 1. |
{- "history": {
- "3": {
- "uid": 3,
- "t": 1735689719,
- "p": 1735689720,
- "v": 9.3,
- "d": 0,
- "max": 100,
- "min": 0
}, - "4": {
- "uid": 4,
- "t": 1735689659,
- "p": 1735689660,
- "v": -93.4,
- "d": 0,
- "max": 100,
- "min": -100
}
}
}| uid required | integer Example: 1 Resource UID |
| start | string Example: start=1735689600000 Start of the time range — Unix timestamp in milliseconds. |
| end | string Example: end=1735776000000 End of the time range — Unix timestamp in milliseconds. |
| limit | integer Default: 1000 Example: limit=100 Maximum number of records to return. Default 1000. |
| page | integer Default: 1 Example: page=1 1-based page number. Default 1. |
{- "history": {
- "3": [
- {
- "uid": 3,
- "t": 1735689659,
- "p": 1735689660,
- "v": 10.5,
- "d": 0,
- "max": 100,
- "min": 0
}, - {
- "uid": 3,
- "t": 1735689719,
- "p": 1735689720,
- "v": 9.3,
- "d": 0,
- "max": 100,
- "min": 0
}
], - "4": [
- {
- "uid": 4,
- "t": 1735689659,
- "p": 1735689660,
- "v": -93.4,
- "d": 0,
- "max": 100,
- "min": -100
}
]
}
}| uid required | integer Example: 1 Resource UID |
{- "history": {
- "3": {
- "uid": 3,
- "t": 1735689719,
- "p": 1735689720,
- "v": 9.3,
- "d": 0,
- "max": 100,
- "min": 0
}, - "4": {
- "uid": 4,
- "t": 1735689659,
- "p": 1735689660,
- "v": -93.4,
- "d": 0,
- "max": 100,
- "min": -100
}
}
}| uid required | integer Example: 1 Resource UID |
| start | string Example: start=1735689600000 Start of the time range — Unix timestamp in milliseconds. |
| end | string Example: end=1735776000000 End of the time range — Unix timestamp in milliseconds. |
| limit | integer Default: 1000 Example: limit=100 Maximum number of records to return. Default 1000. |
| page | integer Default: 1 Example: page=1 1-based page number. Default 1. |
{- "history": {
- "3": [
- {
- "uid": 3,
- "t": 1735689659,
- "p": 1735689660,
- "v": 10.5,
- "d": 0,
- "max": 100,
- "min": 0
}, - {
- "uid": 3,
- "t": 1735689719,
- "p": 1735689720,
- "v": 9.3,
- "d": 0,
- "max": 100,
- "min": 0
}
], - "4": [
- {
- "uid": 4,
- "t": 1735689659,
- "p": 1735689660,
- "v": -93.4,
- "d": 0,
- "max": 100,
- "min": -100
}
]
}
}| uid required | integer Example: 1 Resource UID |
{- "history": {
- "3": {
- "uid": 3,
- "t": 1735689719,
- "p": 1735689720,
- "v": 9.3,
- "d": 0,
- "max": 100,
- "min": 0
}, - "4": {
- "uid": 4,
- "t": 1735689659,
- "p": 1735689660,
- "v": -93.4,
- "d": 0,
- "max": 100,
- "min": -100
}
}
}