Przejdź do głównej zawartości

API Reference

Ta treść nie jest jeszcze dostępna w Twoim języku.

Overvis provides REST-like HTTP API with request payload and response encoded in JSON format.

Base API URL is https://ocp.overvis.com/api/v1/. Further documentation will list the requests as entrypoints with paths that should be concatenated to the base API URL. E.g. API version retrieval endpoint is /version/, that means, the full URL of the version request should be https://ocp.overvis.com/api/v1/version/.

All API requests require Content-Type: application/json HTTP header set.

All POST requests require HTTP payload to be a UTF-8 encoded plain-text with semantically-correct JSON content. Empty payload is not allowed for POST requests, send null if endpoint requires no data.

All requests except /version/ and /authenticate/ require authorization HTTP header.

Authorization HTTP header has the following format:

Authorization: token <token>

Here <token> is a randomly generated session token (UUID) returned by /authenticate/ request.

Session token expires after 1 hour and is not automatically prolonged when being used.

All requests return HTTP status code 200 if executed correctly.

5xx status codes represent server-side unexpected errors and are automatically reported to the developers.

4xx status codes represent errors that are client’s concern and should be dealt with on the client side. These errors have JSON payload which look like this:

{
"errorCode": "ErrCode",
"errorMessage": "Human-readable error message in english."
}

These errors can be returned by any endpoint:

StatusCodeDescription
400CantDecodePayloadJSONHTTP POST payload can’t be decoded.
400IncorrectRequestInvalid request format (POST payload, querystring, or URL properties are provided incorrectly).
400PayloadIsTooLargeHTTP POST payload is exceeding the limit of 1Mb.
400CantParseAuthTokenIncorrect authentication token format (should be lower-case UUID)
400IncorrectContentTypeHTTP request content type is not application/json
401NoAuthTokenProvidedNo authentication token provided.
401IncorrectAuthTokenProvided authentication token is incorrect. That may also mean that session is expired.
401NotAuthorizedUser is not authorized to make this specific action (no access).
403TooManyRequestsAPI key quota of requests per minute is exceeded. Please repeat request later.
404ObjectNotFoundRequested object (network, device, parameter, template, etc.) doesn’t exist in the database, or user has no access.
404IncorrectEndpointRequested API endpoint doesn’t exist (or method is wrong).

All dates in all API requests and responses use ISO 8601 format with or without microseconds.

All dates returned in responses are in UTC. Example: 2018-05-14T16:28:59.948845Z. Requests can provide dates in any timezone.


POST /activation-code/:code/get-info/ - Get Activation Code Info

Section titled “POST /activation-code/:code/get-info/ - Get Activation Code Info”

Retrieves device information and connection details for a specific activation code.

Endpoint

POST /activation-code/:code/get-info/

Parameters

Path Parameters

  • code (number, required): The activation code.

Authorization

  • Permission: demo (access to connection retrieval)
  • Requires a valid session token in the Authorization header.

Response

Returns either success info or an error code.

Success Response

  • code (number): The activation code.
  • mac (string): Device MAC address.
  • ip (string): Connection IP address.
  • port (number): Connection port.
  • sku (string): Device SKU.

Error Response

  • errorCode (string): Error identifier (e.g., InvalidActivationCode).

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "513cf747-eb5c-4d5f-931f-d22c9872c73c", "password": "DCdcSLmkoZkU5zGI9gpInDbo" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
-d '{}' \
"https://ocp.overvis.com/api/v1/activation-code/123456/get-info/"

Returns full information about an alert’s structure, including conditions, actions, and follow-ups.

Endpoint

GET /alert/:alertId/

Parameters

Path Parameters

  • alertId (number, required): ID of the alert.

Response

Returns an object containing alert configuration.

Response Fields

  • id (number): Alert ID.
  • name (string): Alert name.
  • slug (string): URL-compatible slug.
  • description (string, optional): Description.
  • conditionLogic (string): “all” or “any”.
  • logAs (string): Alert level.
  • conditions (object): Dictionary of conditions keyed by ID.
  • actions (object): Dictionary of actions keyed by ID.
  • followUps (object): Dictionary of follow-up actions keyed by ID.

Example Request

GET /alert/4/

Example Response

{
"id": 4,
"name": "AND Logic Alert",
"logAs": "warning",
"slug": "and-logic-alert",
"conditionLogic": "all",
"conditions": {
"122": {
"paramId": 542,
"kind": "eq",
"param": "542#coil@device-slug@net-slug",
"value": 1
}
},
"actions": {},
"followUps": {}
}

POST /alert/:alertId/change/ - Change Alert

Section titled “POST /alert/:alertId/change/ - Change Alert”

Updates an existing alert’s configuration.

Endpoint

POST /alert/:alertId/change/

Parameters

Path Parameters

  • alertId (number, required): ID of the alert to change.

Body

(Same as Create Alert)

  • name (string, required): Name of the alert.
  • description (string, optional): Description.
  • conditionLogic (string, required): “all” or “any”.
  • logAs (string, required): “none”, “info”, “warning”, “failure”, “critical”.
  • conditions (array, required): Alert conditions.
  • actions (array, required): Alert actions.
  • followUps (array, optional): Alert follow-up actions.

Response

Returns a result object.

Success Response

{
"result": "success",
"errors": {}
}

Error Response

{
"result": "error",
"errors": {
"name": "Name is too short"
}
}

Returns alert log records (journal) for a single alert.

Endpoint

GET /alert/:alertId/log/

Parameters

Path Parameters

  • alertId (number, required): Alert ID.

Query

  • page (number, optional): Page number (default 1).
  • itemsOnPage (number, optional): Items per page (default 25, max 100).

Response

Returns a paginated list of alert log records.

Example Request

GET /alert/123/log/?page=1&itemsOnPage=25

Example Response

{
"records": [
{
"name": "High Temperature",
"startedOn": "2025-01-15T10:22:00.000Z",
"resolvedOn": "2025-01-15T11:05:00.000Z",
"logAs": "warning",
"logAsText": "Warning",
"status": "resolved",
"confirmedOn": "2025-01-15T10:25:00.000Z",
"details": [
{
"date": "2025-01-15T10:22:00.000Z",
"texts": ["Event started.", "Room Temp (Device A > Net A) = 85 C"]
}
]
}
],
"totalRecords": 12,
"currentPage": 1,
"itemsOnPage": 25
}

GET /alert/:alertId/status/ - Get Alert Status Information

Section titled “GET /alert/:alertId/status/ - Get Alert Status Information”

Returns alert status information, including current state (active or not), system ID of the last record, when it was started, confirmed, and resolved.

Endpoint

GET /alert/:alertId/status/

Parameters

Path Parameters

  • alertId (number, required): ID of the alert.

Response

Returns an object containing the alert’s status.

Response Fields

  • id (number): Alert ID.
  • lastRecordId (number, optional): ID of the last alert record.
  • isActive (boolean): Whether the alert is currently active.
  • startedOn (string, optional): ISO timestamp when the alert started.
  • closedOn (string, optional): ISO timestamp when the alert was resolved.
  • confirmed (object, optional): Confirmation details.
  • conditions (object): Status of each condition.

Example Request

GET /alert/4/status/

Example Response

{
"id": 4,
"lastRecordId": 22,
"isActive": true,
"startedOn": "2020-08-17T14:30:12.569Z",
"conditions": {
"122": { "lastValue": 1, "isTriggered": true },
"123": { "lastValue": 1, "isTriggered": true }
}
}

Performs authentication for a given user API key. Returns a session token that should be provided to other API endpoints in the Authorization header.

Endpoint

POST /authenticate/

Authorization

  • Permission: none
  • No authorization header required.

Request Body

  • apiKey (string, required): API key (UUID).
  • password (string, required): API key password.

Response

  • token (string): Session token.
  • expiresOn (string): Expiration time of the provided token (ISO 8601).

Error Codes

  • InvalidKey: API key doesn’t exist.
  • NotAuthorized: Incorrect API key password.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" \
-d '{"apiKey": "513cf747-eb5c-4d5f-931f-d22c9872c73c", "password": "DCdcSLmkoZkU5zGI9gpInDbo" }' \
"https://ocp.overvis.com/api/v1/authenticate/"

Example Response

{
"token": "cdf2923f-c89f-41e5-91af-f139f0c2e7d0",
"expiresOn": "2020-05-07T19:49:34.213Z"
}

GET /connect-code/:code/ - Get Connect Code Info

Section titled “GET /connect-code/:code/ - Get Connect Code Info”

Retrieves device information and connection details for a specific connect code.

Endpoint

GET /connect-code/:code/

Parameters

Path Parameters

  • code (string, required): The connect code (e.g., ABCD).

Authorization

  • Permission: demo (access to connection retrieval)
  • Requires a valid session token in the Authorization header.

Response

Returns either success info or an error code.

Success Response

  • code (string): The normalized connect code.
  • macAddress (string): Device MAC address.
  • devicePasswords (string[]): List of device passwords.
  • sku (string, optional): Device SKU.
  • vpnIpAddress (string, optional): VPN IP address if applicable.
  • port (number, optional): Connection port.
  • modbusId (number, optional): Modbus Unit ID.
  • bindedToNet (object, optional): Info about the network this code is already binded to.

Error Response

  • errorCode (string): Error identifier (e.g., InvalidCode, NotAuthorized).

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/connect-code/ABCD/"

POST /controller/get-template-id/ - Get Controller Template ID

Section titled “POST /controller/get-template-id/ - Get Controller Template ID”

Returns the device template ID associated with a specific controller SKU.

Endpoint

POST /controller/get-template-id/

Parameters

Body

  • sku (string, required): The SKU of the controller (e.g., “em130”, “opcb221”).

Response

Returns an object with the template ID if found.

Example Request

POST /controller/get-template-id/

{
"sku": "em130"
}

Example Response

{
"id": 5
}

GET /device-template/:templateId/ - Get Device Template Data

Section titled “GET /device-template/:templateId/ - Get Device Template Data”

Returns details of a specific device template.

Endpoint

GET /device-template/:templateId/

Parameters

Path Parameters

  • templateId (number, required): ID of the device template.

Response

Returns the device template object including its configuration and parameter templates.

Example Request

GET /device-template/1/

Example Response

{
"id": 1,
"name": "Standard Meter",
"manufacturer": "Overvis",
"version": "1.0",
"readGroupSize": 10,
"writeFunction": "normal",
"paramTemplates": [...]
}

Retrieves basic information about a specific device.

Endpoint

GET /device/:deviceId/

Parameters

Path Parameters

  • deviceId (number, required): The ID of the device.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

  • id (number): Device ID.
  • netId (number): ID of the network this device belongs to.
  • name (string): Device name.
  • slug (string): URL-conformant code.
  • modbusUnitId (number): Modbus Unit ID (0-255).
  • disabledOn (string, optional): Timestamp when disabled.
  • updatePeriodSec (number): Background reading period in seconds.
  • readGroupSize (number): Max Modbus registers to read in one request.
  • writeFunction (string): Modbus write function strategy (normal, always-6, always-16).
  • modbusTimeoutRetriesNum (number): Number of retries on timeout.
  • initializedFromTemplate (number, optional): ID of the template used to initialize this device.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/device/1/"

POST /device/:deviceId/change-disable/ - Change Device Disabled State

Section titled “POST /device/:deviceId/change-disable/ - Change Device Disabled State”

Enables or disables a device. Disabling a device stops background readings for its parameters.

Endpoint

POST /device/:deviceId/change-disable/

Parameters

Path Parameters

  • deviceId (number, required): The ID of the device.

Body

  • enabled (boolean, required): true to enable, false to disable.

Authorization

  • Permission: manager (edit access to org objects)
  • Requires a valid session token in the Authorization header.

Response

  • availableDevicesQuota (number or null): Remaining quota for active devices in the organization.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
-d '{ "enabled": false }' \
"https://ocp.overvis.com/api/v1/device/1/change-disable/"

GET /device/:deviceId/next-read-time/ - Get Device Next Read Time

Section titled “GET /device/:deviceId/next-read-time/ - Get Device Next Read Time”

Returns information about when the device was last read and when it is scheduled to be read next.

Endpoint

GET /device/:deviceId/next-read-time/

Parameters

Path Parameters

  • deviceId (number, required): The ID of the device.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

  • msg (string, optional): Status message (e.g., Currently reading, Network unreachable).
  • nextReadDate (string, optional): Scheduled timestamp for the next reading.
  • lastReadOn (string, optional): Timestamp of the last successful reading.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/device/1/next-read-time/"

GET /device/:deviceId/tracked-params/ - List Device Tracked Parameters

Section titled “GET /device/:deviceId/tracked-params/ - List Device Tracked Parameters”

Returns a list of all parameters of a specific device that are marked as tracked (periodically read in the background).

Endpoint

GET /device/:deviceId/tracked-params/

Parameters

Path Parameters

  • deviceId (number, required): The ID of the device.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

An array of parameter objects:

  • id (number): Parameter ID.
  • name (string): Parameter name.
  • fullName (string): Full name including unit and label.
  • category (string, optional): Parameter category.
  • label (string, optional): Mnemonic label.
  • unitName (string, optional): Unit name.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/device/1/tracked-params/"

GET /device/:deviceId/widgets/ - List Device Widgets

Section titled “GET /device/:deviceId/widgets/ - List Device Widgets”

Returns a list of dashboard-style widgets for all parameters of a specific device.

Endpoint

GET /device/:deviceId/widgets/

Parameters

Path Parameters

  • deviceId (number, required): The ID of the device.

Query Parameters

  • lang (string, required): Locale for formatted values (en, pl, ru, ua).
  • onlyParamsValues (boolean, optional): If true, returns a reduced set of fields (ID and value only).

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

An array of widget objects:

  • id (number): Parameter ID.
  • paramId (number): Parameter ID (same as id).
  • name (string, optional): Parameter name.
  • fullName (string, optional): Full name with unit.
  • lastValue (string, optional): Raw last value.
  • formatedLastValue (string, optional): Formatted value with unit and interpretation.
  • lastReadOn (string, optional): Last reading timestamp.
  • isProgrammable (boolean, optional): Whether the parameter is writable.
  • unitName (string, optional): Unit name.
  • label (string, optional): Mnemonic label.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/device/1/widgets/?lang=en"

POST /em130/read/events/ - EM-130 Read Events

Section titled “POST /em130/read/events/ - EM-130 Read Events”

Read astronomic and schedule events from an EM-130 device.

Endpoint

POST /em130/read/events/

Parameters

Body

  • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
  • sku (string, required): Must be “em130”.
  • numberOfEvents (number, required): Maximum number of events to read (max 10).
  • startWithFirst (boolean, required): Whether to start reading from the first event.
  • connection (object, required): Connection details.
  • deviceVersion (number, optional): Device firmware version.

Response

Returns a status object with a list of events.

Success Response

{
"status": "ok",
"events": [
{
"eventAddress": 1,
"eventType": 1,
"dayOfWeek": 1,
"modeSwitchOff": 0,
"modeSwitchOn": 1,
"timeSwitchOff": 120,
"timeSwitchOn": -60,
"astronomicTimes": {
"sunset": 18000,
"sunrise": 6000
}
}
]
}

Error Response

{
"status": "error",
"errorMessage": "Description of error"
}

POST /global-notifications/:notificationId/dismiss/ - Dismiss Runtime Global Notification

Section titled “POST /global-notifications/:notificationId/dismiss/ - Dismiss Runtime Global Notification”

Marks one enabled runtime global notification as dismissed for the current authenticated user.

Endpoint

POST /global-notifications/:notificationId/dismiss/

Access

Any authenticated user.

Parameters

  • notificationId (string, UUID, required): Notification ID.

Response

{
"status": "ok",
"created": true
}
  • created = true when a new dismissal record is inserted.
  • created = false when the user had already dismissed this notification.

GET /gsense/aggregation/branch/:branchId/segmentation/:cadence/history/ - Get G-SENSE Branch Aggregation History

Section titled “GET /gsense/aggregation/branch/:branchId/segmentation/:cadence/history/ - Get G-SENSE Branch Aggregation History”

Retrieve historical aggregated data segments for a specific hierarchy branch and time segmentation.

Endpoint

GET /gsense/aggregation/branch/:branchId/segmentation/:cadence/history/

Parameters

  • branchId (UUID): The ID of the branch.
  • cadence (string): The segmentation cadence.
    • 1m, 5m, 15m, 1h, 1d.

Query Parameters

  • startTimeUtc (ISO 8601): The start time of the history range.
  • endTimeUtc (ISO 8601): The end time of the history range.

Response

  • rows (array): A list of data segments.
    • treeId (UUID): The ID of the tree.
    • branchId (UUID): The ID of the branch.
    • periodStart (ISO 8601): The start time of the segment.
    • periodEnd (ISO 8601): The end time of the segment.
    • powerKwMean (number | null): Average active power in kW.
    • energyKwhSum (number | null): Total energy consumption in kWh.
    • costEurSum (number | null): Total cost in EUR.
    • lastCurrentA (number | null): Last measured current in A.

GET /gsense/aggregation/branch/:branchId/segmentation/:cadence/last-segment/ - Get G-SENSE Branch Last Aggregation Segment

Section titled “GET /gsense/aggregation/branch/:branchId/segmentation/:cadence/last-segment/ - Get G-SENSE Branch Last Aggregation Segment”

Retrieve the last calculated data segment for a specific hierarchy branch and time segmentation.

Endpoint

GET /gsense/aggregation/branch/:branchId/segmentation/:cadence/last-segment/

Parameters

  • branchId (UUID): The ID of the branch.
  • cadence (string): The segmentation cadence.
    • 1m, 5m, 15m, 1h, 1d.

Response

  • treeId (UUID): The ID of the tree.
  • branchId (UUID): The ID of the branch.
  • periodStart (ISO 8601): The start time of the segment.
  • periodEnd (ISO 8601): The end time of the segment.
  • powerKwMean (number | null): Average active power in kW.
  • energyKwhSum (number | null): Total energy consumption in kWh.
  • costEurSum (number | null): Total cost in EUR.
  • lastCurrentA (number | null): Last measured current in A.

GET /gsense/aggregation/tree/:treeId/branches-energy/ - Get G-SENSE Tree Branch Energy Summary

Section titled “GET /gsense/aggregation/tree/:treeId/branches-energy/ - Get G-SENSE Tree Branch Energy Summary”

Retrieve 24h/7d/30d aggregated energy data for all branches of a specific hierarchy tree.

Endpoint

GET /gsense/aggregation/tree/:treeId/branches-energy/

Parameters

  • treeId (UUID): The ID of the hierarchy tree.

Response

  • rows (array): A list of energy data for each branch.
    • branchId (UUID): The ID of the branch.
    • parentBranchId (UUID | null): The ID of the parent branch, if any.
    • isRoot (boolean): Whether the branch is a root branch.
    • energyKwhLast24h (number): Total energy consumption in kWh for the last 24 hours.
    • energyKwhPrev24h (number): Total energy consumption in kWh for the previous 24 hours.
    • energyKwhLast7d (number): Total energy consumption in kWh for the last 7 days.
    • energyKwhPrev7d (number): Total energy consumption in kWh for the previous 7 days.
    • energyKwhLast30d (number): Total energy consumption in kWh for the last 30 days.
    • energyKwhPrev30d (number): Total energy consumption in kWh for the previous 30 days.

GET /gsense/aggregation/tree/:treeId/root-energy/ - Get G-SENSE Tree Root Energy

Section titled “GET /gsense/aggregation/tree/:treeId/root-energy/ - Get G-SENSE Tree Root Energy”

Retrieve aggregated energy data for the root of a specific hierarchy tree across different time windows.

Endpoint

GET /gsense/aggregation/tree/:treeId/root-energy/

Parameters

  • treeId (UUID): The ID of the hierarchy tree.

Response

  • energyKwhLast30d (number): Total energy consumption in kWh for the last 30 days.
  • energyKwhPrev30d (number): Total energy consumption in kWh for the previous 30 days.
  • energyKwhLast7d (number): Total energy consumption in kWh for the last 7 days.
  • energyKwhPrev7d (number): Total energy consumption in kWh for the previous 7 days.
  • energyKwhLast24h (number): Total energy consumption in kWh for the last 24 hours.
  • energyKwhPrev24h (number): Total energy consumption in kWh for the previous 24 hours.
  • costEurLast30d (number): Total cost in EUR for the last 30 days.
  • costEurLast7d (number): Total cost in EUR for the last 7 days.
  • costEurLast24h (number): Total cost in EUR for the last 24 hours.
  • dataOnUtc (ISO 8601): Data reference timestamp used for the aggregation.

GET /gsense/aggregation/tree/:treeId/segmentation/:cadence/last-segment/ - Get G-SENSE Tree Last Aggregation Segment

Section titled “GET /gsense/aggregation/tree/:treeId/segmentation/:cadence/last-segment/ - Get G-SENSE Tree Last Aggregation Segment”

Returns the last completed aggregation segment for all branches in a hierarchy tree.

Endpoint

GET /gsense/aggregation/tree/:treeId/segmentation/:cadence/last-segment/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the tree.
  • cadence (string, required): The segmentation cadence. One of: 1m, 5m, 15m, 1h, 1d.

Response

A JSON object containing an array of segments.

Segment Object:

  • treeId (string): The UUID of the tree.
  • branchId (string, optional): The UUID of the branch (omitted for root).
  • periodStart, periodEnd (string): The time range of the segment (ISO 8601).
  • powerKwMean (number | null): Mean power in kW.
  • energyKwhSum (number | null): Sum of energy in kWh.
  • costEurSum (number | null): Sum of cost in EUR.
  • lastCurrentA (number | null): Last measured current in Amperes.

Example Request

GET /gsense/aggregation/tree/550e8400-e29b-41d4-a716-446655440000/segmentation/1h/last-segment/

Example Response

{
"segments": [
{
"treeId": "...",
"periodStart": "2023-01-01T12:00:00Z",
"periodEnd": "2023-01-01T13:00:00Z",
"powerKwMean": 10.5,
...
}
]
}

GET /gsense/hierarchy/tree/:treeId/ - Get G-SENSE Hierarchy Tree

Section titled “GET /gsense/hierarchy/tree/:treeId/ - Get G-SENSE Hierarchy Tree”

Returns the full structure of a hierarchy tree, including all branches and sensors.

Endpoint

GET /gsense/hierarchy/tree/:treeId/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the tree.

Response

A JSON object with:

  • tree: The tree metadata and nested branch structure.
  • branchesById: A flat dictionary of all branches in the tree.
  • sensorsById: A flat dictionary of all sensors in the tree.

Example Request

GET /gsense/hierarchy/tree/550e8400-e29b-41d4-a716-446655440000/

Example Response

{
"tree": {
"id": "...",
"name": "Factory A",
"branches": [
{
"id": "...",
"name": "Main Hall",
"children": [...]
}
]
},
"branchesById": { ... },
"sensorsById": { ... }
}

POST /gsense/hierarchy/tree/:treeId/branch/:branchId/delete/ - Delete G-SENSE Hierarchy Branch

Section titled “POST /gsense/hierarchy/tree/:treeId/branch/:branchId/delete/ - Delete G-SENSE Hierarchy Branch”

Deletes an existing branch within a hierarchy tree.

Endpoint

POST /gsense/hierarchy/tree/:treeId/branch/:branchId/delete/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the tree.
  • branchId (string, required): The UUID of the branch to delete.

Response

An empty object on success.

Example Request

POST /gsense/hierarchy/tree/550e8400-e29b-41d4-a716-446655440000/branch/550e8400-e29b-41d4-a716-446655440001/delete/

{}

Example Response

{}

POST /gsense/hierarchy/tree/:treeId/branch/:branchId/rename/ - Rename G-SENSE Hierarchy Branch

Section titled “POST /gsense/hierarchy/tree/:treeId/branch/:branchId/rename/ - Rename G-SENSE Hierarchy Branch”

Updates the name of an existing branch within a hierarchy tree.

Endpoint

POST /gsense/hierarchy/tree/:treeId/branch/:branchId/rename/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the tree.
  • branchId (string, required): The UUID of the branch.

Body

  • name (string, required): The new name for the branch.

Response

An empty object on success.

Example Request

POST /gsense/hierarchy/tree/550e8400-e29b-41d4-a716-446655440000/branch/550e8400-e29b-41d4-a716-446655440001/rename/

{
"name": "Second Floor"
}

Example Response

{}

POST /gsense/hierarchy/tree/:treeId/branch/create/ - Create G-SENSE Hierarchy Branch

Section titled “POST /gsense/hierarchy/tree/:treeId/branch/create/ - Create G-SENSE Hierarchy Branch”

Creates a new branch within a hierarchy tree.

Endpoint

POST /gsense/hierarchy/tree/:treeId/branch/create/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the tree.

Body

  • name (string, required): The name of the branch (max 255 chars).
  • parentBranchId (string, optional): The UUID of the parent branch. If omitted, the branch is created at the root level.

Response

A JSON object containing the branchId (UUID) of the created branch.

Example Request

POST /gsense/hierarchy/tree/550e8400-e29b-41d4-a716-446655440000/branch/create/

{
"name": "First Floor",
"parentBranchId": "..."
}

Example Response

{
"branchId": "550e8400-e29b-41d4-a716-446655440001"
}

POST /gsense/hierarchy/tree/:treeId/delete/ - Delete G-SENSE Hierarchy Tree

Section titled “POST /gsense/hierarchy/tree/:treeId/delete/ - Delete G-SENSE Hierarchy Tree”

Deletes an existing hierarchy tree and all its associated branches and sensor references.

Endpoint

POST /gsense/hierarchy/tree/:treeId/delete/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the tree.

Response

An empty object on success.

Example Request

POST /gsense/hierarchy/tree/550e8400-e29b-41d4-a716-446655440000/delete/

{}

Example Response

{}

POST /gsense/hierarchy/tree/:treeId/duplicate/ - Duplicate G-SENSE Hierarchy Tree

Section titled “POST /gsense/hierarchy/tree/:treeId/duplicate/ - Duplicate G-SENSE Hierarchy Tree”

Creates a new hierarchy tree by copying all branches and sensors from an existing tree.

Endpoint

POST /gsense/hierarchy/tree/:treeId/duplicate/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the source tree.

Body

  • name (string, required): The name for the new tree.
  • description (string, optional): The description for the new tree.

Response

{
"treeId": "uuid"
}

Example Request

POST /gsense/hierarchy/tree/550e8400-e29b-41d4-a716-446655440000/duplicate/

{
"name": "Main Building (Copy)",
"description": "Duplicated hierarchy for testing"
}

Example Response

{
"treeId": "11111111-2222-3333-4444-555555555555"
}

POST /gsense/hierarchy/tree/:treeId/rename/ - Rename G-SENSE Hierarchy Tree

Section titled “POST /gsense/hierarchy/tree/:treeId/rename/ - Rename G-SENSE Hierarchy Tree”

Updates the name and/or description of an existing hierarchy tree.

Endpoint

POST /gsense/hierarchy/tree/:treeId/rename/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the tree.

Body

  • name (string, required): The new name for the tree.
  • description (string, optional): The new description for the tree.

Response

An empty object on success.

Example Request

POST /gsense/hierarchy/tree/550e8400-e29b-41d4-a716-446655440000/rename/

{
"name": "New Factory Layout",
"description": "Updated layout for 2024"
}

Example Response

{}

POST /gsense/hierarchy/tree/:treeId/sensor/:sensorId/delete/ - Delete G-SENSE Hierarchy Sensor

Section titled “POST /gsense/hierarchy/tree/:treeId/sensor/:sensorId/delete/ - Delete G-SENSE Hierarchy Sensor”

Deletes a power sensor from the system.

Endpoint

POST /gsense/hierarchy/tree/:treeId/sensor/:sensorId/delete/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the tree.
  • sensorId (string, required): The UUID of the sensor to delete.

Response

An empty object on success.

Example Request

POST /gsense/hierarchy/tree/550e8400-e29b-41d4-a716-446655440000/sensor/550e8400-e29b-41d4-a716-446655440002/delete/

{}

Example Response

{}

POST /gsense/hierarchy/tree/:treeId/sensor/create/ - Create G-SENSE Hierarchy Sensor

Section titled “POST /gsense/hierarchy/tree/:treeId/sensor/create/ - Create G-SENSE Hierarchy Sensor”

Creates a new power sensor, attempts to read its serial number from the device, and attaches it to a branch in a hierarchy tree.

Endpoint

POST /gsense/hierarchy/tree/:treeId/sensor/create/

Parameters

Path Parameters

  • treeId (string, required): The UUID of the tree.

Body

  • branchId (string, required): The UUID of the branch to attach the sensor to.
  • deviceId (integer, required): The ID of the device the sensor is connected to.
  • sensorIdx (integer, required): The index of the sensor on the device (0-31).
  • name (string, required): The name of the sensor (max 255 chars).
  • description (string, optional): A description of the sensor.
  • isThreePhase (boolean, required): Whether the sensor is three-phase.

Response

A JSON object containing the sensorId (UUID) of the created sensor.

Example Request

POST /gsense/hierarchy/tree/550e8400-e29b-41d4-a716-446655440000/sensor/create/

{
"branchId": "550e8400-e29b-41d4-a716-446655440001",
"deviceId": 12,
"sensorIdx": 0,
"name": "Main Transformer",
"isThreePhase": true
}

Example Response

{
"sensorId": "550e8400-e29b-41d4-a716-446655440002"
}

POST /gsense/hierarchy/tree/create/ - Create G-SENSE Hierarchy Tree

Section titled “POST /gsense/hierarchy/tree/create/ - Create G-SENSE Hierarchy Tree”

Creates a new hierarchy tree for an organization.

Endpoint

POST /gsense/hierarchy/tree/create/

Parameters

Body

  • orgId (integer, required): The ID of the organization.
  • name (string, required): The name of the tree (max 255 chars).
  • description (string, optional): A description of the tree.

Response

A JSON object containing the treeId (UUID) of the created tree.

Example Request

POST /gsense/hierarchy/tree/create/

{
"orgId": 1,
"name": "Factory A Hierarchy",
"description": "Main hierarchy for energy monitoring in Factory A"
}

Example Response

{
"treeId": "550e8400-e29b-41d4-a716-446655440000"
}

POST /gsense/sensor/:sensorId/rename/ - Rename G-SENSE Sensor

Section titled “POST /gsense/sensor/:sensorId/rename/ - Rename G-SENSE Sensor”

Updates the name and/or description of an existing power sensor.

Endpoint

POST /gsense/sensor/:sensorId/rename/

Parameters

Path Parameters

  • sensorId (string, required): The UUID of the sensor.

Body

  • name (string, required): The new name for the sensor.
  • description (string, optional): The new description for the sensor.

Response

An empty object on success.

Example Request

POST /gsense/sensor/550e8400-e29b-41d4-a716-446655440002/rename/

{
"name": "Main Transformer Red",
"description": "Updated sensor location"
}

Example Response

{}

Deletes session token immediately.

Endpoint

POST /logout/

Authorization

  • Permission: none
  • Requires a valid session token in the Authorization header.

Response

An empty JSON object {}.

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "513cf747-eb5c-4d5f-931f-d22c9872c73c", "password": "DCdcSLmkoZkU5zGI9gpInDbo" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
-d '{}' \
"https://ocp.overvis.com/api/v1/logout/"

Example Response

{}

Retrieves basic information about one network.

Endpoint

GET /net/:netId/

Parameters

Path Parameters

  • netId (number, required): The ID of the network.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

Returns a network object or null.

  • id (number): Unique network ID.
  • orgId (number): ID of the organization.
  • name (string): User-provided name.
  • slug (string): URL-conformant code.
  • createdOn (string): Creation timestamp.
  • description (string, optional): Description.
  • disabledOn (string, optional): Timestamp when disabled.
  • disabledBy (string, optional): Actor who disabled the network (admin, billing, user).
  • disableNote (string, optional): Reason for disabling.
  • ip (string): Network IP address.
  • port (number): Connection port.
  • mac (string, optional): MAC address for backward connections.
  • protocol (string): Communication protocol (modbustcp).
  • sku (string, optional): Device SKU.
  • controllerModbusUnitId (number): Modbus Unit ID.
  • devicePasswords (string[]): Passwords for controller authentication.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/net/1/"

Example Response

{
"id": 1,
"orgId": 1,
"name": "Some Network",
"slug": "some-network",
"createdOn": "2020-05-06T22:28:54.331Z",
"ip": "127.0.0.1",
"port": 502,
"protocol": "modbustcp",
"controllerModbusUnitId": 111,
"devicePasswords": ["mypass"]
}

POST /net/:netId/change-disable/ - Change Network Disabled State

Section titled “POST /net/:netId/change-disable/ - Change Network Disabled State”

Enables or disables a network. Disabling a network stops all background Modbus communication.

Endpoint

POST /net/:netId/change-disable/

Parameters

Path Parameters

  • netId (number, required): The ID of the network.

Body

  • enabled (boolean, required): true to enable, false to disable.

Authorization

  • Permission: manager (edit access to org objects)
  • Requires a valid session token in the Authorization header.

Response

An empty JSON object {}.

Error Codes

  • NotAuthorized: Insufficient balance or unauthorized access.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
-d '{ "enabled": false }' \
"https://ocp.overvis.com/api/v1/net/1/change-disable/"

POST /net/:netId/change-solution/ - Change Network Solution

Section titled “POST /net/:netId/change-solution/ - Change Network Solution”

Updates the configuration, connection details, and solution settings for an existing network. The solution type (kind) must match the existing one.

Endpoint

POST /net/:netId/change-solution/

Parameters

Path Parameters

  • netId (number, required): The ID of the network.

Body

  • name (string, required): Network name.
  • description (string, optional): Network description.
  • language (string, required): Preferred language (en, ru, pl, ua).
  • controllerModbusUnitId (number, required): Modbus Unit ID for the controller.
  • sku (string, optional): Device SKU.
  • devicePasswords (string[], required): List of device passwords.
  • maxInflightRequestsNum (number, required): Max parallel Modbus requests.
  • disabled (boolean, required): Whether the network should be disabled.
  • connection (object, required): Connection details.
    • kind: connect-code, activation-code, direct, or net-id.
  • solution (object, required): Network solution type.
    • kind: Must match current network solution kind.

Authorization

  • Permission: manager (edit access to org objects)
  • Requires a valid session token in the Authorization header.

Response

  • status: ok or error.
  • netSlug (string, if ok): The (possibly updated) slug of the network.

Example Request

{
"name": "Updated Warehouse A",
"language": "en",
"controllerModbusUnitId": 1,
"devicePasswords": ["newpass"],
"maxInflightRequestsNum": 2,
"disabled": false,
"connection": {
"kind": "direct",
"ip": "192.168.1.11",
"port": 502
},
"solution": {
"kind": "standalone",
"devices": [{ "modbusId": 10 }, { "modbusId": 11 }]
}
}

POST /net/:netId/change/ - Change Network Details

Section titled “POST /net/:netId/change/ - Change Network Details”

Manually updates network fields. This is a low-level endpoint for updating specific fields like name, description, or connection details without necessarily re-applying a full solution.

Endpoint

POST /net/:netId/change/

Parameters

Path Parameters

  • netId (number, required): The ID of the network.

Body

All fields are optional:

  • name (string): Network name.
  • description (string): Network description.
  • devicePasswords (string[]): Controller passwords.
  • controllerModbusUnitId (number): Modbus Unit ID (0-255).
  • sku (string): Device SKU.
  • solution (string): Solution type.
  • connectionType (string): direct, backward, or vpn.
  • mac (string): MAC address.
  • ip (string): IP address.
  • port (number): Port.
  • connectCode (string): Connect code.
  • maxInflightRequestsNum (number): Max parallel requests.

Authorization

  • Permission: manager (edit access to org objects)
  • Requires a valid session token in the Authorization header.

Response

  • status: ok.
  • netSlug: Current slug of the network.

Example Request

{
"name": "Updated Name",
"description": "Manual update"
}

POST /net/:netId/connection-status/ - Get Network Connection Status

Section titled “POST /net/:netId/connection-status/ - Get Network Connection Status”

Returns the current connectivity status of a network.

Endpoint

POST /net/:netId/connection-status/

Parameters

Path Parameters

  • netId (number, required): The ID of the network.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

Returns either connected or disconnected object.

Connected Response

  • connected:
    • since (string, optional): Timestamp since when the network is connected.

Disconnected Response

  • disconnected:
    • lastSeenOn (string, optional): Last time the network was seen online.
    • reason (string): Reason for disconnection.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
-d '{}' \
"https://ocp.overvis.com/api/v1/net/1/connection-status/"

GET /net/:netId/devices/ - List Network Devices

Section titled “GET /net/:netId/devices/ - List Network Devices”

Returns a list of devices belonging to a specific network.

Endpoint

GET /net/:netId/devices/

Parameters

Path Parameters

  • netId (number, required): The ID of the network.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

  • devices: Array of device objects.
    • id (number): Device ID.
    • name (string): Device name.
    • disabledOn (string, optional): Timestamp when disabled.
    • disabledBy (string, optional): Reason for disabling.
  • availableDevicesQuota: Remaining quota for adding devices (or null if unlimited).

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/net/1/devices/"

POST /net/:netId/drop-connections/ - Drop Network Connections

Section titled “POST /net/:netId/drop-connections/ - Drop Network Connections”

Immediately closes all active socket connections for a network.

Endpoint

POST /net/:netId/drop-connections/

Parameters

Path Parameters

  • netId (number, required): The ID of the network.

Authorization

  • Permission: operator (send data to org devices)
  • Requires a valid session token in the Authorization header.

Response

An empty JSON object {}.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
-d '{}' \
"https://ocp.overvis.com/api/v1/net/1/drop-connections/"

GET /org/:orgId/alerts/ - Get List of Alerts

Section titled “GET /org/:orgId/alerts/ - Get List of Alerts”

Returns an array with basic information about all alerts that belong to the organization.

Endpoint

GET /org/:orgId/alerts/

Parameters

Path Parameters

  • orgId (number, required): ID of the organization.

Response

Returns an array of alert objects.

Response Fields

  • id (number): System ID of the alert.
  • name (string): Alert name.
  • slug (string): URL-compatible code for the alert.

Example Request

GET /org/1/alerts/

Example Response

[
{ "id": 4, "name": "AND Logic Alert", "slug": "and-logic-alert" },
{ "id": 3, "name": "OR Logic Alert", "slug": "asdf" }
]

POST /org/:orgId/alerts/create/ - Create Alert

Section titled “POST /org/:orgId/alerts/create/ - Create Alert”

Creates a new alert for an organization.

Endpoint

POST /org/:orgId/alerts/create/

Parameters

Path Parameters

  • orgId (number, required): ID of the organization.

Body

  • name (string, required): Name of the alert.
  • description (string, optional): Description.
  • conditionLogic (string, required): “all” or “any”.
  • logAs (string, required): “none”, “info”, “warning”, “failure”, “critical”.
  • conditions (array, required):
    • paramId (number, optional): Parameter ID.
    • kind (string, required): “g”, “ge”, “l”, “le”, “eq”, “neq”, “reading-error”.
    • value (string, optional): Threshold value.
  • actions (array, required):
    • timeoutMinutes (number, required): Timeout before action.
    • type (string, optional): “sms”, “email”, “voice-call”, "".
    • recepient (string, optional): Recipient details.
  • followUps (array, optional):
    • stage (string, required): “confirmed”, “not-confirmed”, “resolved”.
    • timeoutMinutes (number, required): Timeout.
    • type (string, required): “sms”, “email”, “voice-call”.
    • recepient (string, required): Recipient details.

Response

Returns a result object.

Success Response

{
"result": "success",
"errors": {}
}

Error Response

{
"result": "error",
"errors": {
"name": "Name is too short"
}
}

GET /org/:orgId/alerts/log/ - Get Organization Alert Log

Section titled “GET /org/:orgId/alerts/log/ - Get Organization Alert Log”

Returns alert log records (journal) for an organization.

Endpoint

GET /org/:orgId/alerts/log/

Parameters

Path Parameters

  • orgId (number, required): Organization ID.

Query

  • page (number, optional): Page number (default 1).
  • itemsOnPage (number, optional): Items per page (default 25, max 100).
  • netId (number, optional): Network ID filter. When set, returns only alert log records for alerts that have at least one condition on this network.

Response

Returns a paginated list of alert log records.

Example Request

GET /org/456/alerts/log/?page=1&itemsOnPage=25&netId=12

Example Response

{
"records": [
{
"name": "High Temperature",
"startedOn": "2025-01-15T10:22:00.000Z",
"resolvedOn": "2025-01-15T11:05:00.000Z",
"logAs": "warning",
"logAsText": "Warning",
"status": "resolved",
"confirmedOn": "2025-01-15T10:25:00.000Z",
"details": [
{
"date": "2025-01-15T10:22:00.000Z",
"texts": ["Event started.", "Room Temp (Device A > Net A) = 85 C"]
}
]
}
],
"totalRecords": 128,
"currentPage": 1,
"itemsOnPage": 25
}

GET /org/:orgId/dashboard/ - Get Data for the Dashboard

Section titled “GET /org/:orgId/dashboard/ - Get Data for the Dashboard”

Returns full information for the organization’s dashboard, including networks, devices, parameters, and active events (alerts).

Endpoint

GET /org/:orgId/dashboard/

Parameters

Path Parameters

  • orgId (number, required): The ID of the organization.

Query Parameters

  • includeParams (number, optional): If set to 1, includes a full list of tracked parameters for each device.
  • lang (string, required): Locale for the response (en, pl, ru, ua).

Authorization

  • Permission: demo (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

A JSON object with:

  • networks: List of networks in the organization.
    • id, name, isConnected, lastConnectionOn, url, connectionType, slug, disabledOn.
    • devices: List of devices in each network.
      • id, name, lastReadOn, nextReadOn, nextReadMsg, nextReadMsgCode, url, disabledOn.
      • paramWidgets: Configured dashboard widgets for the device.
      • params: List of tracked parameters (if includeParams=1).
  • events: List of active or historical events (alerts) for the dashboard.
    • id, name, level, deviceIds, paramIds, networkIds, isActive, journalUrl, startedOn.

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "ca09571a-79d9-4e07-8c84-2bc5f60189e3" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/org/1/dashboard/?includeParams=1&lang=en"

Example Response

{
"networks": [
{
"id": 1,
"name": "Main Network",
"isConnected": true,
"devices": [
{
"id": 10,
"name": "Controller 1",
"paramWidgets": [],
"params": []
}
]
}
],
"events": []
}

POST /org/:orgId/dashboard/add-widgets/ - Add Widgets to Dashboard

Section titled “POST /org/:orgId/dashboard/add-widgets/ - Add Widgets to Dashboard”

Adds selected parameters to the organization dashboard.

Endpoint

POST /org/:orgId/dashboard/add-widgets/

Parameters

Path Parameters

  • orgId (number, required): The ID of the organization.

Body

  • paramIds (array of numbers, required): System IDs of parameters that should be added to the dashboard.

Authorization

  • Permission: manager (edit access to org objects)
  • Requires a valid session token in the Authorization header.

Response

An empty JSON object {}.

Error Codes

  • NotAuthorized: Incorrect param IDs or unauthorized access.

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "513cf747-eb5c-4d5f-931f-d22c9872c73c", "password": "DCdcSLmkoZkU5zGI9gpInDbo" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
-d '{ "paramIds": [1, 2, 3] }' \
"https://ocp.overvis.com/api/v1/org/1/dashboard/add-widgets/"

Example Response

{}

POST /org/:orgId/dashboard/change/ - Change Dashboard Settings

Section titled “POST /org/:orgId/dashboard/change/ - Change Dashboard Settings”

Updates the list of parameter widgets displayed on the dashboard for an organization.

Endpoint

POST /org/:orgId/dashboard/change/

Parameters

Path Parameters

  • orgId (number, required): The ID of the organization.

Body

  • paramIds (array of numbers, required): List of parameter IDs to display as widgets on the dashboard.

Authorization

  • Permission: edit access to org objects.
  • Requires a valid session token in the Authorization header.

Response

An empty JSON object {}.

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "ca09571a-79d9-4e07-8c84-2bc5f60189e3" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
-d '{"paramIds": [101, 102, 105]}' \
"https://ocp.overvis.com/api/v1/org/1/dashboard/change/"

Example Response

{}

GET /org/:orgId/dashboard/light/ - Get Dashboard Data (Lightweight)

Section titled “GET /org/:orgId/dashboard/light/ - Get Dashboard Data (Lightweight)”

Returns a subset of dashboard information, optimized for frequent updates. Primarily returns connectivity and parameter values.

Endpoint

GET /org/:orgId/dashboard/light/

Parameters

Path Parameters

  • orgId (number, required): The ID of the organization.

Query Parameters

  • lang (string, required): Locale for the response (en, pl, ru, ua).
  • expandedNetworkIds (string, optional): Comma-separated list of network IDs to include detailed device info for.
  • expandedDeviceIds (string, optional): Comma-separated list of device IDs to include detailed parameter info for.

Authorization

  • Permission: demo (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

A JSON object with:

  • networks: List of networks.
    • id, isConnected, lastConnectionOn.
    • devices: List of devices.
      • id, lastReadOn, nextReadOn, nextReadMsg, nextReadMsgCode.
      • paramWidgets: Lightweight widget info.
  • events: Active alerts list.

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "ca09571a-79d9-4e07-8c84-2bc5f60189e3" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/org/1/dashboard/light/?lang=en&expandedNetworkIds=1"

Example Response

{
"networks": [
{
"id": 1,
"isConnected": true,
"devices": [
{
"id": 10,
"paramWidgets": []
}
]
}
],
"events": []
}

GET /org/:orgId/get-resource-reports/ - Get Org Resource Reports

Section titled “GET /org/:orgId/get-resource-reports/ - Get Org Resource Reports”

Returns a list of resource reports available for an organization.

Endpoint

GET /org/:orgId/get-resource-reports/

Parameters

Path Parameters

  • orgId (integer, required): The ID of the organization.

Response

An array of report objects, each containing an id (UUID) and a name.

Example Request

GET /org/1/get-resource-reports/

Example Response

[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Monthly Energy Report"
}
]

GET /org/:orgId/nets/ - Get Organization Networks List

Section titled “GET /org/:orgId/nets/ - Get Organization Networks List”

Returns basic information about organization networks.

Endpoint

GET /org/:orgId/nets/

Parameters

Path Parameters

  • orgId (number, required): The ID of the organization.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

An array of objects:

  • id (number): Unique ID of the network.
  • name (string): Name of the network.
  • slug (string): URL-conformant code.
  • lid (object): Connection identifier (Logical ID).
    • backward (string): MAC address if backward connection.
    • direct (string): IP:Port if direct connection.
  • disabledOn (string, optional): Date when the network was disabled.
  • disabledBy (string, optional): Reason for disabling (admin, billing, user).

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "513cf747-eb5c-4d5f-931f-d22c9872c73c", "password": "DCdcSLmkoZkU5zGI9gpInDbo" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/org/1/nets/"

Example Response

[
{
"id": 17,
"name": "Network 1",
"slug": "network-1",
"lid": { "backward": "d8:80:39:4e:8d:e9" }
}
]

POST /org/:orgId/nets/create/ - Create Network

Section titled “POST /org/:orgId/nets/create/ - Create Network”

Creates a new network in an organization with a specific connection type and solution.

Endpoint

POST /org/:orgId/nets/create/

Parameters

Path Parameters

  • orgId (number, required): The ID of the organization.

Body

  • name (string, required): Network name.
  • description (string, optional): Network description.
  • language (string, required): Preferred language (en, ru, pl, ua).
  • controllerModbusUnitId (number, required): Modbus Unit ID for the controller (0-255).
  • sku (string, optional): Device SKU.
  • devicePasswords (string[], required): List of device passwords.
  • maxInflightRequestsNum (number, required): Max parallel Modbus requests.
  • disabled (boolean, required): Whether the network is created in disabled state.
  • connection (object, required): Connection details.
    • kind: connect-code, activation-code, or direct.
    • … connection specific fields (code, ip, port).
  • solution (object, required): Network solution type.
    • kind: standalone, rpm416, opcb221, em130.
    • devices (array, for standalone): List of Modbus devices.

Authorization

  • Permission: manager (edit access to org objects)
  • Requires a valid session token in the Authorization header.

Response

  • status: ok or error.
  • netSlug (string, if ok): The slug of the newly created network.
  • errorMessage (string, if error): Description of the error.

Example Request

{
"name": "Warehouse A",
"language": "en",
"controllerModbusUnitId": 1,
"devicePasswords": ["pass123"],
"maxInflightRequestsNum": 1,
"disabled": false,
"connection": {
"kind": "direct",
"ip": "192.168.1.10",
"port": 502
},
"solution": {
"kind": "standalone",
"devices": [{ "modbusId": 10 }]
}
}

GET /org/:orgId/nets/device-param-tree/ - Get Organization Networks-Devices-Parameters Tree

Section titled “GET /org/:orgId/nets/device-param-tree/ - Get Organization Networks-Devices-Parameters Tree”

Returns a full tree of networks, devices, and all their tracked parameters in an organization.

Endpoint

GET /org/:orgId/nets/device-param-tree/

Parameters

Path Parameters

  • orgId (number, required): The ID of the organization.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

A multi-level dictionary where keys are system IDs.

  • Level 1 (Networks): Key is Network ID.

    • name (string)
    • description (string, optional)
    • slug (string)
    • solution (string): standalone, ice, rpm416, em130, opcb221.
    • mac (string, optional)
    • ip (string)
    • port (number)
    • devices (object): Level 2 dictionary.
  • Level 2 (Devices): Key is Device ID.

    • name (string)
    • description (string, optional)
    • slug (string)
    • modbusUnitId (number)
    • parameters (object): Level 3 dictionary.
  • Level 3 (Parameters): Key is Parameter ID.

    • name (string)
    • description (string, optional)
    • slug (string)
    • fullName (string)
    • address (number)
    • isTracked (boolean)
    • isProgrammable (boolean)
    • label (string, optional)
    • unitName (string, optional)

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "513cf747-eb5c-4d5f-931f-d22c9872c73c", "password": "DCdcSLmkoZkU5zGI9gpInDbo" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/org/1/nets/device-param-tree/"

POST /org/:orgId/params/get-id-by-reference/ - Get Parameter ID by Reference

Section titled “POST /org/:orgId/params/get-id-by-reference/ - Get Parameter ID by Reference”

Resolves a parameter reference string to its system ID.

Endpoint

POST /org/:orgId/params/get-id-by-reference/

Parameters

  • orgId: Organization ID.

Request Body

  • emptyName: Parameter reference string (sent as a raw string).

Response

  • id: System ID of the parameter (integer).

Errors

  • 401 NotAuthorized: Unauthorized to view organization objects.
  • 404 ObjectNotFound: Organization or parameter not found.

POST /org/:orgId/params/get-param-values/ - Get Param Values

Section titled “POST /org/:orgId/params/get-param-values/ - Get Param Values”

Returns the current or last known values for a set of parameters in an organization.

Endpoint

POST /org/:orgId/params/get-param-values/

Parameters

Path Parameters

  • orgId (number, required): The ID of the organization.

Body

  • params (string, required): A space-separated list of parameter paths.

Parameter Path Formats:

  • !number: Returns the number itself (e.g., !10 returns 10).
  • conn?netRef: Returns connection status for the specified network (1 for connected, 0 for disconnected, “NON” if not found).
  • paramPath: Returns the last tracked reading for the parameter.
  • *paramPath: Returns a real-time reading for the parameter.

Response

A JSON object where keys are the requested parameter paths and values are strings or numbers representing the values.

Error Codes

  • NOP: Parameter not found.
  • NOLR: No last reading available.
  • NORV: Real-time reading failed.
  • NON: Network not found.

Example Request

POST /org/1/params/get-param-values/

{
"params": "room1.temp *room1.humidity !100 conn?main-net"
}

Example Response

{
"room1.temp": "22.5 °C",
"*room1.humidity": 45.2,
"!100": 100,
"conn?main-net": 1
}

POST /org/:orgId/params/increment/ - Increment Parameter Value

Section titled “POST /org/:orgId/params/increment/ - Increment Parameter Value”

Increments a parameter value by a specified amount.

Endpoint

POST /org/:orgId/params/increment/

Parameters

  • orgId: Organization ID.

Request Body

  • param: Parameter reference string.
  • amount: Amount to increment by (stringified number).

Response

  • ok: Object containing oldValue (optional) and newValue.
  • err: Error message (optional).

Errors

  • 401 NotAuthorized: Unauthorized to send data to org devices.
  • 404 ObjectNotFound: Organization or parameter not found.

POST /org/:orgId/params/save-param-value/ - Save Parameter Value

Section titled “POST /org/:orgId/params/save-param-value/ - Save Parameter Value”

Writes a new value to a parameter specified by its reference string.

Endpoint

POST /org/:orgId/params/save-param-value/

Parameters

  • orgId: Organization ID.

Request Body

  • param: Parameter reference string (e.g., deviceSlug>registerKind>address).
  • value: New value to write.

Response

  • ok: Object containing oldValue (optional) and newValue.
  • err: Error message (optional).

Errors

  • 401 NotAuthorized: Unauthorized to send data to org devices.
  • 404 ObjectNotFound: Organization or parameter not found.

POST /org/:orgId/params/toggle/ - Toggle Parameter Value

Section titled “POST /org/:orgId/params/toggle/ - Toggle Parameter Value”

Toggles a parameter value between a default and an on value.

Endpoint

POST /org/:orgId/params/toggle/

Parameters

  • orgId: Organization ID.

Request Body

  • param: Parameter reference string.
  • default: Default value (off state).
  • on: On value (on state).

Response

  • ok: Object containing oldValue (optional) and newValue.
  • err: Error message (optional).

Errors

  • 401 NotAuthorized: Unauthorized to send data to org devices.
  • 404 ObjectNotFound: Organization not found.

POST /org/:orgId/resource-report/create/ - Create or Update Resource Report

Section titled “POST /org/:orgId/resource-report/create/ - Create or Update Resource Report”

Creates a new resource report or updates an existing one for an organization.

Endpoint

POST /org/:orgId/resource-report/create/

Parameters

Path Parameters

  • orgId (integer, required): The ID of the organization.

Body

  • id (string, optional): The UUID of the report to update. If omitted, a new report is created.
  • name (string, required): The name of the report.
  • branches (array, required): A list of branch objects defining the report structure.

Branch Object:

  • id (string, required): UUID of the branch.
  • name (string, required): Name of the branch.
  • parentBranchId (string, optional): UUID of the parent branch.
  • borders (string, optional): Border definitions.
  • category (string, optional): Branch category.
  • value (object, optional): One of:
    • {"paramId": number}
    • {"formula": string}
    • {"linkId": string} (UUID)

Response

Returns the reportId (UUID) of the created or updated report.

Example Request

POST /org/1/resource-report/create/

{
"name": "Energy Report",
"branches": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Total Consumption",
"value": { "paramId": 123 }
}
]
}

Example Response

{
"reportId": "550e8400-e29b-41d4-a716-446655440000"
}

POST /org/:orgId/sms-settings/ - Change Organization SMS Settings

Section titled “POST /org/:orgId/sms-settings/ - Change Organization SMS Settings”

Updates SMS-related settings for an organization, such as disabling SMS alerts or setting a monthly cost limit.

Endpoint

POST /org/:orgId/sms-settings/

Parameters

Path Parameters

  • orgId (number, required): The ID of the organization.

Body

  • disableSms (boolean, required): Whether to disable SMS alerts.
  • limit (number, optional): Monthly SMS cost limit (0-1000).

Authorization

  • Permission: owner/manager (manage access to org)
  • Requires a valid session token in the Authorization header.

Response

An empty JSON object {}.

Error Codes

  • NotAuthorized: Unauthorized access or SMS disabled by system/billing.

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "513cf747-eb5c-4d5f-931f-d22c9872c73c", "password": "DCdcSLmkoZkU5zGI9gpInDbo" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
-d '{ "disableSms": false, "limit": 100 }' \
"https://ocp.overvis.com/api/v1/org/1/sms-settings/"

Example Response

{}

GET /org/:orgId/viss/ - Get Organization Visualizations

Section titled “GET /org/:orgId/viss/ - Get Organization Visualizations”

Returns a list of all visualizations belonging to a specific organization.

Endpoint

GET /org/:orgId/viss/

Parameters

Path Parameters

  • orgId (number, required): ID of the organization.

Response

Returns an array of visualization objects.

Response Fields

  • id (number): Visualization ID.
  • name (string): Visualization name.

Example Request

GET /org/1/viss/

Example Response

[
{ "id": 1, "name": "Main Dashboard" },
{ "id": 2, "name": "Energy Usage" }
]

POST /org/:orgId/viss/data/ - Get Multiple Visualizations Data

Section titled “POST /org/:orgId/viss/data/ - Get Multiple Visualizations Data”

Returns data for multiple visualizations within an organization.

Endpoint

POST /org/:orgId/viss/data/

Parameters

Path Parameters

  • orgId (number, required): ID of the organization.

Body

  • visIds (array of numbers, required): List of visualization IDs.

Response

Returns an object where keys are visualization IDs and values are objects containing data codes and values.

Example Request

POST /org/1/viss/data/

{
"visIds": [7, 8]
}

Example Response

{
"7": {
"roomName": "Room 1",
"ownerName": "John"
},
"8": {
"temp": "25"
}
}

POST /org/:orgId/viss/info/ - Get Multiple Visualizations Info

Section titled “POST /org/:orgId/viss/info/ - Get Multiple Visualizations Info”

Returns detailed information for a list of visualizations within an organization.

Endpoint

POST /org/:orgId/viss/info/

Parameters

Path Parameters

  • orgId (number, required): ID of the organization.

Body

  • visIds (array of numbers, required): List of visualization IDs.

Response

Returns an array of visualization objects (see Get Visualization Data for field details).

Example Request

POST /org/1/viss/info/

{
"visIds": [1, 2]
}

GET /param/:paramId/dashboard-data/ - Get Parameter Dashboard Data

Section titled “GET /param/:paramId/dashboard-data/ - Get Parameter Dashboard Data”

Retrieves 24 hours of 15-minute aggregated reading data for a parameter, suitable for dashboard charts.

Endpoint

GET /param/:paramId/dashboard-data/

Parameters

  • paramId: Parameter ID.

Response

  • Array of 96 values (numbers or null), representing 15-minute intervals for the last 24 hours.

Errors

  • 401 NotAuthorized: Unauthorized to view organization objects.
  • 404 ObjectNotFound: Parameter not found.

GET /param/:paramId/dashboard-widget-data/ - Get Param Widget Data

Section titled “GET /param/:paramId/dashboard-widget-data/ - Get Param Widget Data”

Returns information needed to display a widget for a specific parameter on the dashboard.

Endpoint

GET /param/:paramId/dashboard-widget-data/

Parameters

Path Parameters

  • paramId (number, required): The ID of the parameter.

Response

Returns an object containing parameter details and its last known value.

Response Fields

  • id (number): Parameter ID.
  • name (string): Parameter short name.
  • fullName (string): Parameter full name (including device name).
  • lastValue (number, optional): Last known numerical value.
  • lastReadOn (string, optional): ISO timestamp of the last reading.
  • deviceId (number): ID of the device this parameter belongs to.
  • readingReportUrl (string): URL to view the readings report for this parameter.
  • deviceDisabledOn (string, optional): Timestamp if the device is disabled.
  • isProgrammable (boolean): Whether the parameter value can be written.
  • unitName (string, optional): Unit of measurement.
  • label (string, optional): Parameter label.

Example Request

GET /param/1/dashboard-widget-data/

Example Response

{
"id": 1,
"name": "Temperature",
"fullName": "Main Device - Temperature",
"lastValue": 25.4,
"lastReadOn": "2024-03-20T10:00:00.000Z",
"deviceId": 10,
"readingReportUrl": "/manage/reports/readings/?paramIds=1",
"isProgrammable": false,
"unitName": "°C",
"label": "T1"
}

POST /param/:paramId/write/ - Write Parameter Value

Section titled “POST /param/:paramId/write/ - Write Parameter Value”

Sends a new value to a specific parameter on the device.

Endpoint

POST /param/:paramId/write/

Parameters

Path Parameters

  • paramId (number, required): The ID of the parameter.

Body

  • newValue (string, required): The value to write, as a string.
  • lang (string, optional): Locale for the formatted result (en, ru, pl, ua).

Authorization

  • Permission: operator (send data to org devices)
  • Requires a valid session token in the Authorization header.

Response

Returns either an ok object with success details or an err message.

Success Response

  • ok:
    • oldValue (string): The value before the write operation.
    • newValue (string): The newly written value.
    • formattedValue (string): Human-readable representation of the new value.

Error Response

  • err (string): Error message from the device or communication stack.

Example Request

{
"newValue": "25.0",
"lang": "en"
}

Example Response

{
"ok": {
"oldValue": "22.5",
"newValue": "25.0",
"formattedValue": "25.0 °C"
}
}

Updates metadata for a list of parameters, such as category, background tracking status, or programmability.

Endpoint

POST /params/change/

Parameters

Body

  • paramIds (array of numbers, required): List of parameter IDs to modify.
  • modification (object, required): Fields to update.
    • category (string, optional): New category name.
    • isTracked (boolean, optional): Enable/disable background tracking.
    • isProgrammable (boolean, optional): Enable/disable remote writing.

Authorization

  • Permission: manager (edit access to org objects)
  • Requires a valid session token in the Authorization header.

Response

An empty JSON object {}.

Example Request

{
"paramIds": [101, 102],
"modification": {
"isTracked": true,
"category": "Main Readings"
}
}

Deletes a list of parameters from the system.

Endpoint

POST /params/delete/

Parameters

Body

  • paramIds (array of numbers, required): List of parameter IDs to delete.

Authorization

  • Permission: manager (edit access to org objects)
  • Requires a valid session token in the Authorization header.

Response

An empty JSON object {}.

Example Request

{
"paramIds": [101, 102]
}

GET /params/get-info/ - Get Parameters Information

Section titled “GET /params/get-info/ - Get Parameters Information”

Returns metadata for a list of specified parameters, including their associated device and network information.

Endpoint

GET /params/get-info/

Parameters

Query Parameters

  • paramIds (string, required): Comma-separated list of parameter IDs.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

An array of parameter info objects:

  • id (number): Parameter ID.
  • name (string): User-defined parameter name.
  • fullName (string): Full formatted name.
  • slug (string): URL-conformant code.
  • deviceId, deviceName, deviceSlug: Associated device info.
  • networkId, networkName, networkSlug: Associated network info.
  • address (number): Modbus address.
  • valueType (string): Data type.
  • registerKind (string): Modbus register type (holding, input, etc.).
  • isProgrammable (boolean): Whether the parameter is writable.
  • bitPosition, bitsAmount (number, optional): Bit-level info for bitmask parameters.
  • label, unitName (string, optional): Display label and unit.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/params/get-info/?paramIds=101,102"

GET /params/last-readings/ - Get Last Readings of Parameters

Section titled “GET /params/last-readings/ - Get Last Readings of Parameters”

Returns the last read values for a set of parameters. Values are automatically converted and formatted according to parameter settings.

Endpoint

GET /params/last-readings/

Parameters

Query Parameters

  • paramIds (string, required): Comma-separated list of parameter IDs.
  • lang (string, required): Locale for formatted values (en, pl, ru, ua).

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

A dictionary where keys are parameter IDs.

Success Item

  • value (string): The numeric value as a string.
  • readOn (string): Timestamp of the reading.
  • formattedValue (string): Human-readable value (e.g., “True”, “12.3 kg”).

Error Item

  • err (string): Error code (e.g., no-value).

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/params/last-readings/?paramIds=101,102&lang=en"

Example Response

{
"101": {
"value": "25.5",
"readOn": "2023-12-14T01:35:44Z",
"formattedValue": "25.5 °C"
},
"102": {
"err": "no-value"
}
}

GET /params/read-realtime/ - Read Real-time Value of Parameter

Section titled “GET /params/read-realtime/ - Read Real-time Value of Parameter”

Performs a real-time reading from the device and returns the current values of the requested parameters.

Endpoint

GET /params/read-realtime/

Parameters

Query Parameters

  • paramIds (string, required): Comma-separated list of parameter IDs.
  • lang (string, required): Locale for formatted values (en, ru, pl, ua).
  • failbackToDb (boolean, optional): If true, returns the last known value from the database if real-time reading fails.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

A dictionary where keys are parameter IDs.

Success Item

  • value (string): Current numeric value.
  • formattedValue (string): Human-readable formatted value.

Error Item

  • err (string): Error code or message if reading failed.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/params/read-realtime/?paramIds=101,102&lang=en&failbackToDb=true"

Example Response

{
"101": { "value": "25.5", "formattedValue": "25.5 °C" },
"102": { "err": "Timeout" }
}

POST /params/readings-on-time/ - Get Parameters Readings on Specific Time

Section titled “POST /params/readings-on-time/ - Get Parameters Readings on Specific Time”

Returns the last read values of specified parameters up to a given date.

Endpoint

POST /params/readings-on-time/

Parameters

Body

  • orgId (number, required): Organization ID.
  • tillDate (string, required): ISO 8601 timestamp up to which the reading should be fetched.
  • paramIds (array of numbers, required): List of parameter IDs.

Authorization

  • Permission: viewer (view access to org objects)
  • Requires a valid session token in the Authorization header.

Response

An object where keys are parameter IDs. Values are either a reading object or null.

Success Item

  • value (string): The numeric value as a string.
  • readOn (string): ISO 8601 timestamp of the reading.

Example Request

{
"orgId": 1,
"tillDate": "2025-01-01T00:00:00.000Z",
"paramIds": [101, 102]
}

Example Response

{
"101": {
"readOn": "2024-12-11T09:50:00.000Z",
"value": "1499"
},
"102": null
}

POST /raw/check-connection/ - Raw Check Connection

Section titled “POST /raw/check-connection/ - Raw Check Connection”

Check if a connection to a modbus device can be established.

Endpoint

POST /raw/check-connection/

Parameters

Body

  • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
  • connection (object, required): Connection details.
  • sku (string, optional): Device SKU.

Response

Returns a status object indicating connection state.

Connected Response

{
"status": {
"connected": {
"unitId": 1,
"version": 10,
"deviceIdentificationMarker": 123
}
}
}

No Connection Response

{
"status": "NoConnection"
}

Reading Failure Response

{
"status": {
"readingFailure": "Description of failure"
}
}

POST /raw/check-device-read/ - Raw Check Device Read

Section titled “POST /raw/check-device-read/ - Raw Check Device Read”

Check if a specific modbus device can be read using a template.

Endpoint

POST /raw/check-device-read/

Parameters

Body

  • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
  • templateId (number, required): ID of the template to use for testing the read.
  • connection (object, required): Connection details.
  • sku (string, optional): Device SKU.

Response

Returns a status object.

Success Response

{
"status": "ok"
}

Error Response

{
"status": "error",
"errorMessage": "Description of error"
}

POST /raw/read-controller-modbus-settings/ - Raw Read Controller Modbus Settings

Section titled “POST /raw/read-controller-modbus-settings/ - Raw Read Controller Modbus Settings”

Read Modbus communication settings from a controller.

Endpoint

POST /raw/read-controller-modbus-settings/

Parameters

Body

  • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
  • sku (string, required): Device SKU.
  • connection (object, required): Connection details.
  • controllerVersion (number, optional): Controller version.

Response

Returns a status object with communication settings.

Success Response

{
"status": "ok",
"controllerUnitId": 1,
"bitRate": 9600,
"byteFormat": 0
}

Error Response

{
"status": "error",
"errorMessage": "Description of error"
}

POST /raw/read-multiple-register-group/ - Raw Read Multiple Register Group

Section titled “POST /raw/read-multiple-register-group/ - Raw Read Multiple Register Group”

Read multiple register groups using provided controllers/devices data and starting addresses.

Endpoint

POST /raw/read-multiple-register-group/

Parameters

Body

Request body should contain an array of objects with the following properties:

  • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
  • address (number, required): Starting address (0-65535).
  • kind (string, required): Kind of register group:
    • holding - 16-bit word. Read-Write.
    • coil - Single bit. Read-Write.
    • discrete-input - Single bit. Read-Only.
    • input - 16-bit word. Read-Only.
  • registersNum (number, required): Count of registers that should be read.
  • connection (object, required): Object describing connection type:
    • kind: “connect-code”, “activation-code”, “direct”, “backward”, “net-id”.
    • code: String (8 chars) for “connect-code” or number for “activation-code”.
    • ip: IPv4 address for “direct”.
    • port: Port number for “direct”.
    • mac: MAC address for “backward”.
    • networkId: ID for “net-id”.
  • sku (string, optional): Device SKU.

Response

Returns an array of objects, one for each requested group:

  • netLid (string): Network local identifier.
  • connection (object): The connection used.
  • deviceModbusId (number): Device ID.
  • address (number): Register address.
  • kind (string): Register kind.
  • registersNum (number): Number of registers.
  • result (object): Either { "ok": [values] } or { "err": "error message" }.

Example Request

POST /raw/read-multiple-register-group/

[
{
"deviceModbusId": 1,
"address": 3,
"registersNum": 5,
"kind": "holding",
"connection": { "kind": "direct", "ip": "127.0.0.1", "port": 55502 }
},
{
"deviceModbusId": 111,
"address": 459,
"registersNum": 1,
"kind": "holding",
"connection": { "kind": "direct", "ip": "127.0.0.1", "port": 55502 }
}
]

Example Response

[
{
"netLid": "127.0.0.1:55502",
"connection": { "kind": "direct", "ip": "127.0.0.1", "port": 55502 },
"deviceModbusId": 1,
"address": 3,
"kind": "holding",
"registersNum": 5,
"result": { "ok": [65535, 65535, 65535, 65535, 65535] }
},
{
"netLid": "127.0.0.1:55502",
"connection": { "kind": "direct", "ip": "127.0.0.1", "port": 55502 },
"deviceModbusId": 111,
"address": 459,
"kind": "holding",
"registersNum": 1,
"result": { "ok": [9600] }
}
]

POST /raw/read-multiple-register-groups/with-timeout/ - Raw Read Multiple Register Groups With Timeout

Section titled “POST /raw/read-multiple-register-groups/with-timeout/ - Raw Read Multiple Register Groups With Timeout”

Read multiple register groups sequentially with an optional overall timeout.

Endpoint

POST /raw/read-multiple-register-groups/with-timeout/

Parameters

Body

  • timeoutSec (number, optional): Overall timeout in seconds.
  • regs (array, required): Array of register group request objects:
    • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
    • address (number, required): Starting address (0-65535).
    • kind (string, required): Register kind (holding, coil, discrete-input, input).
    • registersNum (number, required): Count of registers to read.
    • connection (object, required): Connection details.
    • sku (string, optional): Device SKU.

Response

Returns an array of objects, one for each requested group (up until the timeout was reached):

  • netLid (string): Network local identifier.
  • connection (object): The connection used.
  • deviceModbusId (number): Device ID.
  • address (number): Register address.
  • kind (string): Register kind.
  • registersNum (number): Number of registers.
  • result (object): Either { "ok": [values] } or { "err": "error message" }.

Example Request

POST /raw/read-multiple-register-groups/with-timeout/

{
"timeoutSec": 5,
"regs": [
{
"deviceModbusId": 1,
"address": 0,
"registersNum": 10,
"kind": "holding",
"connection": { "kind": "direct", "ip": "127.0.0.1", "port": 502 }
}
]
}

POST /raw/read-register-group/ - Raw Read Register Group

Section titled “POST /raw/read-register-group/ - Raw Read Register Group”

Read register group using provided controller/device data and starting address.

Endpoint

POST /raw/read-register-group/

Parameters

Body

  • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
  • address (number, required): Starting address (0-65535).
  • kind (string, required): Kind of register group:
    • holding - 16-bit word. Read-Write.
    • coil - Single bit. Read-Write.
    • discrete-input - Single bit. Read-Only.
    • input - 16-bit word. Read-Only.
  • registersNum (number, required): Count of registers that should be read.
  • connection (object, required): Object describing connection type:
    • kind: “connect-code”, “activation-code”, “direct”, “backward”, “net-id”.
    • code: String (8 chars) for “connect-code” or number for “activation-code”.
    • ip: IPv4 address for “direct”.
    • port: Port number for “direct”.
    • mac: MAC address for “backward”.
    • networkId: ID for “net-id”.
  • sku (string, optional): Device SKU.

Response

Returns an object with either ok containing an array of register values or err with error message.

Example Request

POST /raw/read-register-group/

{
"deviceModbusId": 1,
"address": 3,
"registersNum": 5,
"kind": "holding",
"connection": {
"kind": "direct",
"ip": "192.168.1.10",
"port": 502
}
}

Example Response

{
"ok": [65535, 65535, 0, 12, 450]
}

POST /raw/send-controller-passwords/ - Raw Send Controller Passwords

Section titled “POST /raw/send-controller-passwords/ - Raw Send Controller Passwords”

Send a set of passwords to a controller for authentication.

Endpoint

POST /raw/send-controller-passwords/

Parameters

Body

  • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
  • passwords (array of strings, required): List of passwords to send.
  • connection (object, required): Connection details.
  • sku (string, optional): Device SKU.
  • controllerVersion (number, optional): Controller version.

Response

Returns a status object.

Success Response

{
"status": "ok"
}

Error Response

{
"status": "error",
"errorMessage": "Description of error"
}

POST /raw/write-controller-modbus-settings/ - Raw Write Controller Modbus Settings

Section titled “POST /raw/write-controller-modbus-settings/ - Raw Write Controller Modbus Settings”

Write Modbus communication settings to a controller.

Endpoint

POST /raw/write-controller-modbus-settings/

Parameters

Body

  • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
  • sku (string, required): Device SKU.
  • settings (object, required):
    • bitRate (number, required): The bit rate (e.g. 9600).
    • byteFormat (number, required): The byte format (0-5, or -1 for default).
  • connection (object, required): Connection details.
  • controllerVersion (number, optional): Controller version.

Response

Returns a status object.

Success Response

{
"status": "ok"
}

Error Response

{
"status": "error",
"errorMessage": "Description of error"
}

POST /raw/write-register-group/ - Raw Write Register Group

Section titled “POST /raw/write-register-group/ - Raw Write Register Group”

Write values to a register group on a modbus device.

Endpoint

POST /raw/write-register-group/

Parameters

Body

  • deviceModbusId (number, required): Identifier of device inside modbus network (1-255).
  • address (number, required): Starting address (0-65535).
  • kind (string, required): Kind of register group (holding, coil, discrete-input, input).
  • value (array of numbers, required): Values to write (0-65535 each).
  • connection (object, required): Connection details.
  • sku (string, optional): Device SKU.

Response

Returns a status object.

Success Response

{
"status": "ok"
}

Error Response

{
"status": "error",
"errorMessage": "Description of error"
}

Example Request

POST /raw/write-register-group/

{
"deviceModbusId": 1,
"address": 10,
"kind": "holding",
"value": [100, 200],
"connection": { "kind": "direct", "ip": "192.168.1.10", "port": 502 }
}

GET /readings/date-range/ - Get Readings Date Range

Section titled “GET /readings/date-range/ - Get Readings Date Range”

Returns the minimum and maximum timestamps for which readings exist for a set of parameters.

Endpoint

GET /readings/date-range/

Parameters

Query Parameters

  • paramIds (string, required): A comma-separated list of parameter IDs.

Response

A JSON object with min and max timestamps in ISO 8601 format, or an empty object if no readings are found.

Example Request

GET /readings/date-range/?paramIds=1,2,3

Example Response

{
"min": "2023-01-01T00:00:00.000Z",
"max": "2023-12-31T23:59:59.999Z"
}

POST /readings/dispersed/ - Get Dispersed Readings

Section titled “POST /readings/dispersed/ - Get Dispersed Readings”

Returns specified number of data points for a requested parameters on a given time range.

Endpoint

POST /readings/dispersed/

Parameters

Body

  • paramIds (integer[], required): List of parameter IDs.
  • from (string, required): Start date of the check range (ISO 8601).
  • till (string, required): End date of the check range (ISO 8601).
  • points (integer, required): Number of points to take in this date range (for each parameter). Maximum: 1000.

Response

Result is an array of “segment” records. Each record is an array where the first item is a ISO 8601 datetime, and the second item is an array of parameter values during that segment in the order of paramIds provided.

Example Request

POST /readings/dispersed/

{
"paramIds": [271, 272],
"from": "2020-05-26T16:28:00Z",
"till": "2020-05-28T17:25:00Z",
"points": 10
}

Example Response

[
["2019-07-26T16:28:00Z", [7.0, 2018.0]],
["2019-07-26T16:33:42Z", [7.0, 2018.0]],
["2019-07-26T16:39:24Z", [7.0, 2018.0]]
]

Returns stored data points for a requested time range for a given parameter.

Endpoint

GET /readings/get/

Parameters

Query Parameters

  • paramId (integer, required): ID of the parameter.
  • from (string, optional): Start date of the range (ISO 8601). If omitted, response will contain last pointsLimit data points up to till date.
  • till (string, optional): End date of the range (ISO 8601). If omitted, end date will be the current time.
  • pointsLimit (integer, optional): Limit on the number of the returned data points. Maximum and default: 1000.

Response

Result is an array of data points. Each record is an array where the first item is a ISO 8601 datetime, and the second item is the parameter value (number or null). Data points are sorted by dates in a descending order.

Example Request

GET /readings/get/?paramId=284&from=2020-01-01T00:00:00Z&till=2020-08-17T00:00:00Z&pointsLimit=100

Example Response

[
["2019-07-26T16:28:00Z", 7.0],
["2019-07-26T16:33:42Z", 7.0],
["2019-07-26T16:39:24Z", 7.0]
]

POST /readings/min-max-range/ - Range of Readings Values for a Given Period

Section titled “POST /readings/min-max-range/ - Range of Readings Values for a Given Period”

Returns minimum and maximum values of the requested parameters on a given time range.

Endpoint

POST /readings/min-max-range/

Parameters

Body

  • paramIds (integer[], required): List of parameter IDs.
  • from (string, required): Start date of the check range (ISO 8601).
  • till (string, required): End date of the check range (ISO 8601).

Response

Returns a dictionary where key is a parameter ID and value contains an object with minValueOn, minValue, maxValueOn, and maxValue.

If the parameter has no readings during requested period, its ID won’t be specified in the response.

Example Request

POST /readings/min-max-range/

{
"paramIds": [271, 272],
"from": "2019-04-01T21:52:13Z",
"till": "2019-09-01T21:52:13Z"
}

Example Response

{
"271": {
"minValueOn": "2019-07-26T17:24:02.923Z",
"minValue": 2018.0,
"maxValueOn": "2019-07-20T12:45:39.449Z",
"maxValue": 65535.0
},
"272": {
"minValueOn": "2019-05-14T21:39:33.890Z",
"minValue": 5.0,
"maxValueOn": "2019-07-20T12:45:39.452Z",
"maxValue": 255.0
}
}

POST /resource-report/branch/:branchId/chart-data/ - Get Resource Report Branch Chart Data

Section titled “POST /resource-report/branch/:branchId/chart-data/ - Get Resource Report Branch Chart Data”

Returns chart data for a specific branch within a resource report for a given time period and segmentation.

Endpoint

POST /resource-report/branch/:branchId/chart-data/

Parameters

Path Parameters

  • branchId (string, required): UUID of the branch.

Body

  • tz (string, required): Timezone (e.g., “UTC”, “Europe/Warsaw”).
  • fromDateStr (string, required): Start date (ISO 8601).
  • tillDateStr (string, required): End date (ISO 8601).
  • segment (string, required): One of: half-hour, hour, day.

Response

A JSON object containing:

  • branchId (string): UUID of the branch.
  • name (string): Name of the branch.
  • borders (string, optional): Border definitions.
  • values (array): List of data points, where each point is [isoDate, valueOrNull].

Example Request

POST /resource-report/branch/550e8400-e29b-41d4-a716-446655440000/chart-data/

{
"tz": "UTC",
"fromDateStr": "2023-01-01T00:00:00Z",
"tillDateStr": "2023-01-02T00:00:00Z",
"segment": "hour"
}

Example Response

{
"branchId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Main Hall",
"values": [
["2023-01-01T00:00:00.000Z", 12.5],
["2023-01-01T01:00:00.000Z", 14.2]
]
}

Translates a list of strings into the specified language.

Endpoint

POST /translations/

Parameters

Body

  • texts (string[], required): A list of strings to translate.
  • lang (string, required): Target language. One of: ru, pl, en, ua.

Response

An array of translated strings in the same order as the input.

Example Request

POST /translations/

{
"texts": ["Dashboard", "Settings"],
"lang": "pl"
}

Example Response

["Pulpit", "Ustawienia"]

GET /user/orgs/ - List User Organizations Access

Section titled “GET /user/orgs/ - List User Organizations Access”

Returns a list of all organizations current account (API key) has access to. Includes access level (roles) information.

Endpoint

GET /user/orgs/

Authorization

  • Permission: demo
  • Requires a valid session token in the Authorization header.

Response

An array of objects:

  • orgId (number): System ID of the organization.
  • orgName (string): Name of the organization.
  • userRole (string): Role of the user in the organization.
    • owner: Full access.
    • manager: Full access, except user management.
    • technical-manager: Similar to manager.
    • operator: Can’t edit organization objects, but can send write requests.
    • viewer: View-only access.
    • monitor-operator: Monitoring UI access with ability to send write requests.
    • monitor-viewer: View-only monitoring UI access.
    • monitor-no-params: Limited monitoring UI access.

Example Request

Terminal window
TOKEN=`curl -s -H "Content-Type: application/json" \
-d '{"apiKey": "513cf747-eb5c-4d5f-931f-d22c9872c73c", "password": "DCdcSLmkoZkU5zGI9gpInDbo" }' \
"https://ocp.overvis.com/api/v1/authenticate/" | \
jq -r ".token"`
curl -s -S -H "Content-Type: application/json" -H "Authorization: token $TOKEN" \
"https://ocp.overvis.com/api/v1/user/orgs/"

Example Response

[
{
"orgId": 1,
"orgName": "My Organization",
"userRole": "owner"
}
]

GET /version/ - Get API Version Information

Section titled “GET /version/ - Get API Version Information”

Provides version of the server-side Overvis software and API.

Endpoint

GET /version/

Authorization

  • Permission: none
  • No authorization header required.

Response

  • apiVersion (string): Version of the API protocol.
  • apiServerVersion (string): API server software version.

Example Request

Terminal window
curl -s -S -H "Content-Type: application/json" "https://ocp.overvis.com/api/v1/version/"

Example Response

{
"apiVersion": "0.1.0",
"apiServerVersion": "2403.1"
}

Returns full information about a specific visualization.

Endpoint

GET /vis/:visId/

Parameters

Path Parameters

  • visId (number, required): ID of the visualization.

Response

Returns an object with visualization details.

Response Fields

  • id (number): Visualization ID.
  • orgId (number): Organization ID.
  • slug (string): Visualization slug.
  • name (string): Visualization name.
  • createdOn (string): ISO timestamp of creation.
  • source (string): Configuration source (JSON/YAML).
  • description (string, optional): Description.
  • isDisplayedOnDashboard (boolean): Whether it’s on the dashboard.

Example Request

GET /vis/7/

Example Response

{
"id": 7,
"orgId": 1,
"slug": "energy-usage",
"name": "Energy Usage",
"createdOn": "2024-03-20T10:00:00.000Z",
"source": "{...}",
"isDisplayedOnDashboard": true
}

GET /vis/:visId/data/ - Get Visualization Data

Section titled “GET /vis/:visId/data/ - Get Visualization Data”

Returns the data that the user entered in the visualization.

Endpoint

GET /vis/:visId/data/

Parameters

Path Parameters

  • visId (number, required): ID of the visualization.

Response

Returns a JSON object where keys are data codes and values are their corresponding values.

Example Request

GET /vis/7/data/

Example Response

{
"roomName": "Room 1",
"ownerName": "John"
}

POST /vis/:visId/data/save/ - Save Visualization Data

Section titled “POST /vis/:visId/data/save/ - Save Visualization Data”

Saves the data entered by the user in the visualization.

Endpoint

POST /vis/:visId/data/save/

Parameters

Path Parameters

  • visId (number, required): ID of the visualization.

Body

  • code (string, required): Key for the value.
  • value (string, required): Value to be saved.

Response

Returns an empty object on success.

Example Request

POST /vis/7/data/save/

{
"code": "roomName",
"value": "Room 1"
}

Example Response

{}