Skip to main content

Overview

IDIAL provides a REST API for managing the inventory of connected OPC UA endpoints and their certificates. In addition, the API enables the configuration of PKI and EST integrations, certificate lifecycle monitoring, and control of the TLS settings of the IDIAL container itself. The API is provided by APIFlask (Python) and automatically publishes an OpenAPI specification at /openapi.json as well as interactive documentation at /docs.

Base URL

The default base URL of the IDIAL REST API is:

http://127.0.0.1:5000

The host can be overridden at container startup. TLS can be enabled via POST /tls. Once TLS is active, the following scheme applies:

https://<host>:5000

Authentication

Most endpoints require an API key passed as an HTTP header:

X-API-Key: <your-api-key>

The API key is configured via the file secrets/idial_api_key.txt inside the IDIAL container. Alternatively, the environment variable IDIAL_API_KEY_FILE can be used to specify a different file path.

Endpoints Without Authentication

The following endpoints are accessible without an API key:

  • GET /systeminfo
  • GET /tls

Content-Type

All requests and responses use Content-Type: application/json.

Error Format

If an error occurs, the API returns a JSON response in the following format:

{
"error": "string"
}

Endpoint Overview

The following table lists all 35 endpoints of the IDIAL REST API, grouped by category.

note

The OpenAPI specification is available at /openapi.json. An interactive Swagger UI is available at /docs while IDIAL is running.

CategoryMethodPathAuth
SystemGET/systeminfoNo
SystemPOST/systeminfoYes
SystemGET/gds/systeminfoYes
SystemGET/crl/systeminfoYes
SystemGET/supported-devicesYes
TLS ConfigurationGET/tlsNo
TLS ConfigurationPOST/tlsYes
InventoryGET/inventoryYes
InventoryPOST/inventoryYes
InventoryPATCH/inventoryYes
InventoryGET/gds/inventoryYes
InventoryPOST/gds/inventoryYes
InventoryPATCH/gds/inventoryYes
InventoryGET/gds/inventory/{host_or_url}Yes
InventoryGET/ssh/inventoryYes
Certificate MonitoringPOST/gds/monitor/crtYes
Certificate MonitoringGET/gds/monitor/crt/{host_or_url}Yes
Certificate MonitoringPOST/gds/inventory/crtYes
Certificate MonitoringGET/gds/inventory/crt/{host_or_url}Yes
Certificate MonitoringGET/gds/monitor/plc/{host_or_url}Yes
Trust ListPOST/gds/monitor/trustlistYes
Trust ListGET/gds/monitor/trustlist/{host_or_url}Yes
Trust ListDELETE/gds/monitor/trustlistYes
GDS PushPOST/gds/pushYes
GDS PushGET/gds/push/{host_or_url}Yes
GDS PushPOST/gds/push/changeYes
GDS FirmwarePOST/gds/firmwareYes
GDS FirmwareGET/gds/firmware/{host_or_url}Yes
GDS StatusGET/gds/status/{host_or_url}Yes
GDS Client CertificateGET/gds/crtYes
PKIGET/pkiYes
PKIGET/pki/caYes
PKIGET/pki/crlYes
PKIPOST/pki/sign-client-csrYes
PKIPOST/pki/sign-server-csrYes