LitmusEdge 4.0.x API Documentation/Integration/Streaming - LE, LEM, LUNS API Docs

List Instance Subscriptions

POST {{edgeUrl}}/cc/v2

List Instance Subscriptions

Returns every topic / subscription configured on one instance. Each subscription is a (LocalName -> RemoteName) pair plus a direction flag and per-subscription config.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

query ListSubscriptions($input: ListSubscriptionsRequest!) {
  ListSubscriptions(input: $input) {
    TopicID
    IsLocalToRemote
    Enabled
    LocalName
    RemoteName
    Config
    Description
  }
}

Variables

Field Type Required Description
InstanceID ID! Yes UUID of the instance.
{ "input": { "InstanceID": "{{integration_instance_id}}" } }

Response

200 OK -- application/json

Field Type Description
TopicID string Subscription UUID. Use as {{integration_topic_id}} in mutation calls.
IsLocalToRemote boolean true for outbound (local-to-remote); false for inbound (remote-to-local).
Enabled boolean Whether the subscription is active.
LocalName string Local topic name (e.g. devicehub.alias.<device>.<tag>).
RemoteName string Remote topic / table / queue name. Empty when the provider uses a single fixed sink.
Config string Provider-specific subscription config (JSON-encoded). Typically empty.
Description string Free-form description. By default holds the source tag's display name.
{
  "data": {
    "ListSubscriptions": [
      {
        "TopicID": "92057D78-AE19-4653-8DC9-69CACBF6D678",
        "IsLocalToRemote": true,
        "Enabled": false,
        "LocalName": "devicehub.alias.L1_Machine1_1_OPC.BadPart",
        "RemoteName": "",
        "Config": "",
        "Description": "BadPart"
      }
    ]
  }
}

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

query ListSubscriptions($input: ListSubscriptionsRequest!) {
    ListSubscriptions(input: $input) {
        TopicID
        IsLocalToRemote
        Enabled
        LocalName
        RemoteName
        Config
        Description
    }
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}"
    }
}

Response

Status: 200 OK

{
    "data": {
        "ListSubscriptions": [
            {
                "TopicID": "92057D78-AE19-4653-8DC9-69CACBF6D678",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.BadPart",
                "RemoteName": "",
                "Config": "",
                "Description": "BadPart"
            },
            {
                "TopicID": "C2030499-AD56-4109-96FD-DB90CA39E2F0",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.BadPartInterval_Base",
                "RemoteName": "",
                "Config": "",
                "Description": "BadPartInterval_Base"
            },
            {
                "TopicID": "2C453EE5-CD4D-4C59-9F60-605F06F53EF9",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.BadPartInterval_Variation",
                "RemoteName": "",
                "Config": "",
                "Description": "BadPartInterval_Variation"
            },
            {
                "TopicID": "CED861F9-A32B-4FB5-85F7-F2604FCDAD6F",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Current",
                "RemoteName": "",
                "Config": "",
                "Description": "Current"
            },
            {
                "TopicID": "1F6F4DBA-9834-43D2-B957-5D8629456750",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.CycleStarted",
                "RemoteName": "",
                "Config": "",
                "Description": "CycleStarted"
            },
            {
                "TopicID": "31D89E00-11D9-4A62-86B4-5D57223E7849",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.CycleTime_Base",
                "RemoteName": "",
                "Config": "",
                "Description": "CycleTime_Base"
            },
            {
                "TopicID": "D5F096ED-0A45-4AFE-9697-B992AC6A6088",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.CycleTime_Variation_Factor",
                "RemoteName": "",
                "Config": "",
                "Description": "CycleTime_Variation_Factor"
            },
            {
                "TopicID": "A4919906-2639-4788-A544-0DC32C67A919",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Downtime_Base",
                "RemoteName": "",
                "Config": "",
                "Description": "Downtime_Base"
            },
            {
                "TopicID": "E82F143A-E8DF-47F2-B853-6AB7098F5B02",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Downtime_Variation_Factor",
                "RemoteName": "",
                "Config": "",
                "Description": "Downtime_Variation_Factor"
            },
            {
                "TopicID": "272D0394-7778-4E88-A54A-8BEDA35E3EF9",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.FaultCode",
                "RemoteName": "",
                "Config": "",
                "Description": "FaultCode"
            },
            {
                "TopicID": "3FB51294-F342-41C8-A0BC-22896A30E231",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.FaultCode_L2",
                "RemoteName": "",
                "Config": "",
                "Description": "FaultCode_L2"
            },
            {
                "TopicID": "DB645339-6BB3-437C-8AE2-8BFC23F79F79",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.FaultCode_L2_Max_Value",
                "RemoteName": "",
                "Config": "",
                "Description": "FaultCode_L2_Max_Value"
            },
            {
                "TopicID": "4D40E836-17A0-4B24-A706-078C49991FA1",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.FaultCode_L2_Min_Value",
                "RemoteName": "",
                "Config": "",
                "Description": "FaultCode_L2_Min_Value"
            },
            {
                "TopicID": "D8502A19-0724-472F-A13D-CE66C2EEADFF",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.FaultCode_Max_Value",
                "RemoteName": "",
                "Config": "",
                "Description": "FaultCode_Max_Value"
            },
            {
                "TopicID": "340BB4BC-DA34-4CB5-A744-A5ECDC38D2DD",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.FaultCode_Min_Value",
                "RemoteName": "",
                "Config": "",
                "Description": "FaultCode_Min_Value"
            },
            {
                "TopicID": "0CB7E9C1-2868-4200-9EAE-03FEDCD22ABC",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.FaultOccurrence_Factor",
                "RemoteName": "",
                "Config": "",
                "Description": "FaultOccurrence_Factor"
            },
            {
                "TopicID": "E9FFF342-0C90-46EE-8277-029510FF09A8",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.GoodPart",
                "RemoteName": "",
                "Config": "",
                "Description": "GoodPart"
            },
            {
                "TopicID": "06162BE6-FEA4-4847-A119-4699BA1B76C7",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Level_PV",
                "RemoteName": "",
                "Config": "",
                "Description": "Level_PV"
            },
            {
                "TopicID": "7FE5FBA6-9C9F-4E6B-84DE-073EF44FE00E",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Level_SP",
                "RemoteName": "",
                "Config": "",
                "Description": "Level_SP"
            },
            {
                "TopicID": "7223CD70-CCC5-41DB-AB05-4328AFE12507",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.PartMade",
                "RemoteName": "",
                "Config": "",
                "Description": "PartMade"
            },
            {
                "TopicID": "29F99299-A911-4BFA-9C3D-AA5341D47FF5",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.PartSize_TestResult",
                "RemoteName": "",
                "Config": "",
                "Description": "PartSize_TestResult"
            },
            {
                "TopicID": "C01CC7EE-426D-408C-BCC7-E07EA1D52592",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Pressure",
                "RemoteName": "",
                "Config": "",
                "Description": "Pressure"
            },
            {
                "TopicID": "C6317894-4209-4507-909C-9871219AB040",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Pressure_PV",
                "RemoteName": "",
                "Config": "",
                "Description": "Pressure_PV"
            },
            {
                "TopicID": "948AC14C-0547-445E-ACF2-DE0BE0EFB3A8",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Pressure_SP",
                "RemoteName": "",
                "Config": "",
                "Description": "Pressure_SP"
            },
            {
                "TopicID": "0BA2094C-B6EF-46F1-BD01-7A226C5EC4F3",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.QualityCode",
                "RemoteName": "",
                "Config": "",
                "Description": "QualityCode"
            },
            {
                "TopicID": "F3A2BC52-3F33-4744-B415-AAC2A8A830A7",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.QualityCode_Scrap_Max",
                "RemoteName": "",
                "Config": "",
                "Description": "QualityCode_Scrap_Max"
            },
            {
                "TopicID": "0AAA2D6B-A6E2-4F44-AF24-40FE0D838931",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.QualityCode_Scrap_Min",
                "RemoteName": "",
                "Config": "",
                "Description": "QualityCode_Scrap_Min"
            },
            {
                "TopicID": "560FD6D9-E7D5-4D38-9033-7924E200D194",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.ReasonCode",
                "RemoteName": "",
                "Config": "",
                "Description": "ReasonCode"
            },
            {
                "TopicID": "7E49D5A8-0DE1-4EA9-A3CB-2D7592DF2B32",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.ReasonCode_L2",
                "RemoteName": "",
                "Config": "",
                "Description": "ReasonCode_L2"
            },
            {
                "TopicID": "282EF144-28AE-4F82-958B-21FFBB380D78",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.ReasonCode_L2_Max",
                "RemoteName": "",
                "Config": "",
                "Description": "ReasonCode_L2_Max"
            },
            {
                "TopicID": "5C562A95-E141-4377-B63B-3BB5C73189AB",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.ReasonCode_L2_Min",
                "RemoteName": "",
                "Config": "",
                "Description": "ReasonCode_L2_Min"
            },
            {
                "TopicID": "64F05A8C-1DE8-4798-884E-E03D2D4DCD51",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.ReasonCode_Max",
                "RemoteName": "",
                "Config": "",
                "Description": "ReasonCode_Max"
            },
            {
                "TopicID": "1660D3C4-D6F9-4A98-B9C5-95D86975E1CA",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.ReasonCode_Min",
                "RemoteName": "",
                "Config": "",
                "Description": "ReasonCode_Min"
            },
            {
                "TopicID": "176B5687-7E32-4578-A8B4-6D250368B506",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.SKU",
                "RemoteName": "",
                "Config": "",
                "Description": "SKU"
            },
            {
                "TopicID": "A3D20A43-E258-4AEA-B5A0-4EE4F0C8ED89",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.SerialNumber",
                "RemoteName": "",
                "Config": "",
                "Description": "SerialNumber"
            },
            {
                "TopicID": "85352165-1A4D-4343-A68D-53B834AD562D",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Speed",
                "RemoteName": "",
                "Config": "",
                "Description": "Speed"
            },
            {
                "TopicID": "9239CC17-EE9D-4D76-A3B1-7A023FFB7D16",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Step1",
                "RemoteName": "",
                "Config": "",
                "Description": "Step1"
            },
            {
                "TopicID": "339BB520-312A-482A-85D1-6533291155C4",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Step2",
                "RemoteName": "",
                "Config": "",
                "Description": "Step2"
            },
            {
                "TopicID": "B68A52F5-42F2-4D0B-A510-483911BBB0E0",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Step3",
                "RemoteName": "",
                "Config": "",
                "Description": "Step3"
            },
            {
                "TopicID": "FA890F08-A4AB-4F5F-9F2F-6D145C9B7838",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Step4",
                "RemoteName": "",
                "Config": "",
                "Description": "Step4"
            },
            {
                "TopicID": "3B7EC3CF-BB0F-4B7D-AD71-BD753B399C2A",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Step5",
                "RemoteName": "",
                "Config": "",
                "Description": "Step5"
            },
            {
                "TopicID": "348162D8-C971-4463-9BAD-55F88F5029B3",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.TaktTime_Base",
                "RemoteName": "",
                "Config": "",
                "Description": "TaktTime_Base"
            },
            {
                "TopicID": "90B6CF0D-A93F-4CB3-9E3C-F6B616CD1919",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.TaktTime_Variation_Factor",
                "RemoteName": "",
                "Config": "",
                "Description": "TaktTime_Variation_Factor"
            },
            {
                "TopicID": "68DF5D61-171E-4F20-8CAC-11E5120F5B5E",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Temperature",
                "RemoteName": "",
                "Config": "",
                "Description": "Temperature"
            },
            {
                "TopicID": "E4D347C5-9C2A-4DFB-B0E8-493C9966BB81",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Temperature_LowerControlLimit",
                "RemoteName": "",
                "Config": "",
                "Description": "Temperature_LowerControlLimit"
            },
            {
                "TopicID": "0116A824-440D-4168-826F-CDA652522BF6",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Temperature_PV",
                "RemoteName": "",
                "Config": "",
                "Description": "Temperature_PV"
            },
            {
                "TopicID": "41D5E445-CA4C-43CC-8E81-4391DDDE78DE",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Temperature_SP",
                "RemoteName": "",
                "Config": "",
                "Description": "Temperature_SP"
            },
            {
                "TopicID": "4308A622-E9FC-43BB-966A-A5665551EA99",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Temperature_UpperControlLimit",
                "RemoteName": "",
                "Config": "",
                "Description": "Temperature_UpperControlLimit"
            },
            {
                "TopicID": "DDDFC41C-C3B5-401F-9156-6E9AB1650CD8",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Uptime_Base",
                "RemoteName": "",
                "Config": "",
                "Description": "Uptime_Base"
            },
            {
                "TopicID": "F4503821-AC59-446F-A703-30EB60762B43",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Uptime_Variation_Factor",
                "RemoteName": "",
                "Config": "",
                "Description": "Uptime_Variation_Factor"
            },
            {
                "TopicID": "77055F65-4E68-48E5-B34B-20FBAB33580E",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Voltage",
                "RemoteName": "",
                "Config": "",
                "Description": "Voltage"
            },
            {
                "TopicID": "62F74BA7-AC14-44C6-A098-F65AC3A1616B",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.isFaulted",
                "RemoteName": "",
                "Config": "",
                "Description": "isFaulted"
            },
            {
                "TopicID": "8B809E5F-DDAE-4845-AF55-BBE2CEEA6A16",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.isRunning",
                "RemoteName": "",
                "Config": "",
                "Description": "isRunning"
            }
        ]
    }
}

Create Subscription

POST {{edgeUrl}}/cc/v2

Create Subscription

Creates one or more subscriptions inside an instance. Each subscription wires a local NATS topic to a remote topic / table / queue on the upstream system.

The mutation is batched -- pass a Subscriptions[] array to create many in one call. Useful for bulk provisioning after running Import Topics.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation CreateSubscriptions($input: CreateSubscriptionsRequest!) {
  CreateSubscriptions(input: $input) {
    TopicID
    IsLocalToRemote
    Enabled
    LocalName
    RemoteName
    Config
    Description
    __typename
  }
}

Variables

Field Type Required Description
InstanceID ID! Yes UUID of the instance.
Subscriptions [SubscriptionInput!]! Yes One or more subscription inputs.
Subscriptions[].LocalName String! Yes Local NATS topic (e.g. devicehub.alias.<device>.<tag>).
Subscriptions[].RemoteName String No Remote topic / table / queue. Empty for providers with fixed sinks.
Subscriptions[].IsLocalToRemote Boolean Yes true = outbound, false = inbound.
Subscriptions[].Enabled Boolean No Default false. Use Enable Topic/s Subscription later.
Subscriptions[].Description String No Free-form description.
{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "Subscriptions": [
      {
        "Description": "",
        "Enabled": false,
        "IsLocalToRemote": true,
        "LocalName": "{{integration_topic_name}}",
        "RemoteName": "apiCreatedRemoteTopic"
      }
    ]
  }
}

Response

200 OK -- application/json. Returns the new subscriptions with their server-assigned TopicIDs.

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation CreateSubscriptions($input: CreateSubscriptionsRequest!) {
    CreateSubscriptions(input: $input) {
        TopicID
        IsLocalToRemote
        Enabled
        LocalName
        RemoteName
        Config
        Description
        __typename
    }
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}",
        "Subscriptions": [
        {
            "Description": "",
            "Enabled": false,
            "IsLocalToRemote": true,
            "LocalName": "{{integration_topic_name}}",
            "RemoteName": "{{integration_remote_topic_name}}",
            "TopicID": null,
            "Config": "{}"
        }
        ]
    }
}

Response

Status: 200 OK

{
    "data": {
        "CreateSubscriptions": [
            {
                "TopicID": "D678051A-09D8-4A05-A534-745F5327A8CE",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "{{integration_topic_name}}",
                "RemoteName": "apiCreatedRemoteTopic",
                "Config": "{}",
                "Description": "",
                "__typename": "Topic"
            }
        ]
    }
}

Update Subscription

POST {{edgeUrl}}/cc/v2

Update Subscription

Updates one or more subscriptions in place. Pass the full subscription object inside Subscriptions[] -- this is not a patch.

Common changes: re-target a different RemoteName, switch direction (IsLocalToRemote), update the description, change per-subscription config.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation UpdateSubscriptions($input: UpdateSubscriptionsRequest!) {
  UpdateSubscriptions(input: $input) {
    TopicID
    IsLocalToRemote
    Enabled
    LocalName
    RemoteName
    Config
    Description
  }
}

Variables

{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "Subscriptions": [
      {
        "Description": "Downtime_Base",
        "Enabled": false,
        "IsLocalToRemote": true,
        "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Downtime_Base",
        "RemoteName": ""
      }
    ]
  }
}

The Postman example omits TopicID; the service identifies the subscription by (InstanceID, LocalName, IsLocalToRemote). Include TopicID in your own client for safety against rename races.

Response

Same shape as Create Subscription.

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation UpdateSubscriptions($input: UpdateSubscriptionsRequest!) {
    UpdateSubscriptions(input: $input) {
        TopicID
        IsLocalToRemote
        Enabled
        LocalName
        RemoteName
        Config
        Description
    }
}

Variables

{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "Subscriptions": [
      {
        "Description": "Downtime_Base",
        "Enabled": false,
        "IsLocalToRemote": true,
        "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Downtime_Base",
        "RemoteName": "",
        "TopicID": "{{integration_topic_id}}",
        "Config": "{}"
      }
    ]
  }
}

Response

Status: 200 OK

{
    "data": {
        "UpdateSubscriptions": [
            {
                "TopicID": "A4919906-2639-4788-A544-0DC32C67A919",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Downtime_Base",
                "RemoteName": "",
                "Config": "{}",
                "Description": "Downtime_Base"
            }
        ]
    }
}

Enable Topic/s Subscription

POST {{edgeUrl}}/cc/v2

Enable Topic/s Subscription

Enables one or more subscriptions by their TopicIDs. The instance begins forwarding (or receiving) messages on the enabled subscriptions immediately, assuming the instance itself is Enabled and Online.

Idempotent for already-enabled subscriptions.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation EnableSubscriptions($input: EnableSubscriptionsRequest!) {
  EnableSubscriptions(input: $input) {
    TopicID
    IsLocalToRemote
    Enabled
    LocalName
    RemoteName
    Config
    Description
  }
}

Variables

Field Type Required Description
InstanceID ID! Yes UUID of the instance.
TopicIDs [ID!]! Yes Subscription UUIDs to enable.
{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "TopicIDs": ["{{integration_topic_id}}"]
  }
}

Response

200 OK -- application/json. Returns the updated subscriptions.

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation EnableSubscriptions($input: EnableSubscriptionsRequest!) {
    EnableSubscriptions(input: $input) {
        TopicID
        IsLocalToRemote
        Enabled
        LocalName
        RemoteName
        Config
        Description
    }
}

Variables

{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "TopicIDs": [
      "{{integration_topic_id}}"
    ]
  }
}

Response

Status: 200 OK

{
    "data": {
        "EnableSubscriptions": [
            {
                "TopicID": "A4919906-2639-4788-A544-0DC32C67A919",
                "IsLocalToRemote": true,
                "Enabled": true,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Downtime_Base",
                "RemoteName": "",
                "Config": "{}",
                "Description": "Downtime_Base"
            }
        ]
    }
}

Disable Topic/s Subscription

POST {{edgeUrl}}/cc/v2

Disable Topic/s Subscription

Disables one or more subscriptions by their TopicIDs. The instance stops forwarding / receiving on the disabled subscriptions; the configuration is preserved (re-enable with Enable Topic/s Subscription).

Idempotent for already-disabled subscriptions.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation DisableSubscriptions($input: DisableSubscriptionsRequest!) {
  DisableSubscriptions(input: $input) {
    TopicID
    IsLocalToRemote
    Enabled
    LocalName
    RemoteName
    Config
    Description
  }
}

Variables

{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "TopicIDs": ["{{integration_topic_id}}"]
  }
}

Response

Same shape as Enable Topic/s Subscription.

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation DisableSubscriptions($input: DisableSubscriptionsRequest!) {
    DisableSubscriptions(input: $input) {
        TopicID
        IsLocalToRemote
        Enabled
        LocalName
        RemoteName
        Config
        Description
    }
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}",
        "TopicIDs": [
            "{{integration_topic_id}}"
            ]
    }
}

Response

Status: 200 OK

{
    "data": {
        "DisableSubscriptions": [
            {
                "TopicID": "A4919906-2639-4788-A544-0DC32C67A919",
                "IsLocalToRemote": true,
                "Enabled": false,
                "LocalName": "devicehub.alias.L1_Machine1_1_OPC.Downtime_Base",
                "RemoteName": "",
                "Config": "{}",
                "Description": "Downtime_Base"
            }
        ]
    }
}

Remove Topic/s Subscription

POST {{edgeUrl}}/cc/v2

Remove Topic/s Subscription

Permanently deletes one or more subscriptions by TopicID. The configuration is gone; re-create via Create Subscription to restore.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation DeleteSubscriptions($input: DeleteSubscriptionsRequest!) {
  DeleteSubscriptions(input: $input)
}

Variables

{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "TopicIDs": ["{{integration_topic_id}}"]
  }
}

Response

200 OK -- application/json. No data returned on success.

{ "data": { "DeleteSubscriptions": null } }

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation DeleteSubscriptions($input: DeleteSubscriptionsRequest!) {
    DeleteSubscriptions(input: $input)
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}",
        "TopicIDs": ["{{integration_topic_id}}"]
    }
}

Response

Status: 200 OK

{
    "data": {
        "DeleteSubscriptions": null
    }
}

Download Topic Sample

POST {{edgeUrl}}/cc/v2

Download Topic Sample

Returns a sample CSV template showing the expected column layout for the instance's subscription import (Upload CSV). The sample has the header row plus one placeholder row -- use it as a skeleton when building a CSV from scratch in a spreadsheet.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

query DownloadTemplate($input: DownloadTemplateRequest!) {
  DownloadTemplate(input: $input)
}

Variables

{ "input": { "InstanceID": "{{integration_instance_id}}" } }

Response

200 OK -- application/json. data.DownloadTemplate is a CSV-formatted string -- parse client-side or write to a file.

{
  "data": {
    "DownloadTemplate": "InstanceInfo ID,InstanceInfo Name,Direction,Local Remote Topic,Remote Data Topic,Enable,Description\n\"<the instance id>\",\"<the instance name>\",Inbound/Outbound,<local-remote-topic>,<remote-data-topic>,true/false,<description>\n"
  }
}

CSV columns

Column Maps to
InstanceInfo ID InstanceID.
InstanceInfo Name Cosmetic -- the service identifies by ID.
Direction Inbound (= IsLocalToRemote: false) or Outbound (= true).
Local Remote Topic LocalName.
Remote Data Topic RemoteName.
Enable true / false.
Description Description.

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

query DownloadTemplate($input: DownloadTemplateRequest!) {
    DownloadTemplate(input: $input)
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}"
    }
}

Response

Status: 200 OK

{
    "data": {
        "DownloadTemplate": "InstanceInfo ID,InstanceInfo Name,Direction,Local Remote Topic,Remote Data Topic,Enable,Description\n\"<the instance id, ie. 7b7628c4-a065-425e-9515-f8469d7a2c7f>\",\"<the instance name, ie. local mqtt>\",Inbound/Outbound,<local-remote-topic>,<remote-data-topic>,true/false,<description>\n"
    }
}

Download CSV for Instance/s

POST {{edgeUrl}}/cc/v2

Download CSV for Instance/s

Exports the actual subscription list of one or more instances as a CSV string. Compatible with Upload CSV: download, edit in a spreadsheet, re-upload to apply.

Different from Download Topic Sample -- that endpoint returns a header-only skeleton with one placeholder row; this one returns the live data.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

query DownloadCSV($input: DownloadCSVRequest!) {
  DownloadCSV(input: $input)
}

Variables

Field Type Required Description
InstanceIDs [ID!]! Yes UUIDs to include. Pass an array even for a single instance.
{ "input": { "InstanceIDs": ["{{integration_instance_id}}"] } }

Response

200 OK -- application/json. data.DownloadCSV is a CSV string with the same columns as Download Topic Sample, one row per subscription.

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

query DownloadCSV($input: DownloadCSVRequest!) {
    DownloadCSV(input: $input)
}

Variables

{
    "input": {
        "InstanceIDs": [
            "{{integration_instance_id}}"
            ]
    }
}

Response

Status: 200 OK

{
    "data": {
        "DownloadCSV": "InstanceInfo ID,InstanceInfo Name,Direction,Local Remote Topic,Remote Data Topic,Enable,Description\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Temperature_PV,,false,Temperature_PV\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Level_PV,,false,Level_PV\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.QualityCode_Scrap_Min,,false,QualityCode_Scrap_Min\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.QualityCode,,false,QualityCode\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.FaultOccurrence_Factor,,false,FaultOccurrence_Factor\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.ReasonCode_Min,,false,ReasonCode_Min\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.SKU,,false,SKU\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.FaultCode,,false,FaultCode\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.ReasonCode_L2_Max,,false,ReasonCode_L2_Max\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.PartSize_TestResult,,false,PartSize_TestResult\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.BadPartInterval_Variation,,false,BadPartInterval_Variation\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.CycleTime_Base,,false,CycleTime_Base\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Step2,,false,Step2\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.FaultCode_Min_Value,,false,FaultCode_Min_Value\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.TaktTime_Base,,false,TaktTime_Base\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Step5,,false,Step5\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.FaultCode_L2,,false,FaultCode_L2\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Temperature_SP,,false,Temperature_SP\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Temperature_UpperControlLimit,,false,Temperature_UpperControlLimit\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.FaultCode_L2_Min_Value,,false,FaultCode_L2_Min_Value\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.ReasonCode,,false,ReasonCode\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.ReasonCode_L2_Min,,false,ReasonCode_L2_Min\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.isFaulted,,false,isFaulted\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.ReasonCode_Max,,false,ReasonCode_Max\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Temperature,,false,Temperature\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.PartMade,,false,PartMade\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Voltage,,false,Voltage\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.ReasonCode_L2,,false,ReasonCode_L2\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Level_SP,,false,Level_SP\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Speed,,false,Speed\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.isRunning,,false,isRunning\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.TaktTime_Variation_Factor,,false,TaktTime_Variation_Factor\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.BadPart,,false,BadPart\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Step1,,false,Step1\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Pressure_SP,,false,Pressure_SP\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.SerialNumber,,false,SerialNumber\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Step3,,false,Step3\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Pressure,,false,Pressure\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.BadPartInterval_Base,,false,BadPartInterval_Base\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Pressure_PV,,false,Pressure_PV\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Current,,false,Current\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.CycleTime_Variation_Factor,,false,CycleTime_Variation_Factor\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.FaultCode_Max_Value,,false,FaultCode_Max_Value\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.FaultCode_L2_Max_Value,,false,FaultCode_L2_Max_Value\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Uptime_Base,,false,Uptime_Base\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Temperature_LowerControlLimit,,false,Temperature_LowerControlLimit\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Downtime_Variation_Factor,,false,Downtime_Variation_Factor\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.GoodPart,,false,GoodPart\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.QualityCode_Scrap_Max,,false,QualityCode_Scrap_Max\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Uptime_Variation_Factor,,false,Uptime_Variation_Factor\n75d68c24-b8c3-47b5-ae08-5a30cbd7751f,Azure,outbound,devicehub.alias.L1_Machine1_1_OPC.Step4,,false,Step4\n"
    }
}

Import Topics

POST {{edgeUrl}}/cc/v2

Import Topics

Bulk-imports topics from other LE services (DeviceHub registers, Digital Twins instances, Analytics outputs) into one instance as subscriptions. This is the API equivalent of the LE UI's "Pick from DeviceHub / Digital Twins / Analytics" buttons.

Each section in the body addresses one source service and lists (ParentID, ChildIDs) pairs -- the parent is the device / instance / group, the children are the specific registers / attributes / topics to import.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation ImportTopics($input: ImportTopicsRequest!) {
  ImportTopics(input: $input) {
    DeviceHub    { ImportedTags UpdatedTags SkippedTags Error }
    DigitalTwins { ImportedTags UpdatedTags SkippedTags Error }
    Analytics    { ImportedTags UpdatedTags SkippedTags Error }
  }
}

Variables

Field Type Required Description
InstanceID ID! Yes Target Integration instance.
DeviceHub[].ParentID ID No DeviceHub device UUID. ChildIDs: [] to import every register on the device.
DeviceHub[].ChildIDs [ID!]! No Register UUIDs to import from that device.
DigitalTwins[] object[] No Same shape, with ParentID = Instance UUID, ChildIDs = dynamic-attribute UUIDs.
Analytics[] object[] No ParentID = group name. (No ChildIDs for analytics -- imports all outputs of the group.)
{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "DeviceHub": [
      { "ParentID": "{{deviceID}}", "ChildIDs": ["{{register_id}}"] }
    ],
    "Analytics": [
      { "ParentID": "{{analytics_group_name}}" }
    ]
  }
}

Response

200 OK -- application/json. Per-source counters:

Field Type Description
data.ImportTopics.DeviceHub.ImportedTags integer Newly created subscriptions.
data.ImportTopics.DeviceHub.UpdatedTags integer Subscriptions already present and refreshed.
data.ImportTopics.DeviceHub.SkippedTags integer Subscriptions skipped (typically duplicates).
data.ImportTopics.DeviceHub.Error string[] Per-tag error messages.
{
  "data": {
    "ImportTopics": {
      "DeviceHub":    { "ImportedTags": 1, "UpdatedTags": 0, "SkippedTags": 0, "Error": [] },
      "DigitalTwins": { "ImportedTags": 1, "UpdatedTags": 0, "SkippedTags": 0, "Error": [] },
      "Analytics":    { "ImportedTags": 1, "UpdatedTags": 0, "SkippedTags": 0, "Error": [] }
    }
  }
}

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation ImportTopics($input: ImportTopicsRequest!) {
    ImportTopics(input: $input) {
        DeviceHub {
            ImportedTags
            UpdatedTags
            SkippedTags
            Error
        }
        DigitalTwins {
            ImportedTags
            UpdatedTags
            SkippedTags
            Error
        }
        Analytics {
            ImportedTags
            UpdatedTags
            SkippedTags
            Error
        }
    }
}

Variables

{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "DeviceHub": [
      {
        "ParentID": "{{deviceID}}",
        "ChildIDs": [
          "{{register_id}}"
        ]
      }
    ],
    "Analytics": [
        {
            "ParentID": "{{analytics_group_name}}"
        }
    ],
    "DigitalTwins": [
      {
        "ParentID": "{{digital_twins_model_id}}",
        "ChildIDs": [
          "{{digital_twins_instance_id}}"
        ]
      }
    ]
  }
}

Response

Status: 200 OK

{
    "data": {
        "ImportTopics": {
            "DeviceHub": {
                "ImportedTags": 1,
                "UpdatedTags": 0,
                "SkippedTags": 0,
                "Error": []
            },
            "DigitalTwins": {
                "ImportedTags": 1,
                "UpdatedTags": 0,
                "SkippedTags": 0,
                "Error": []
            },
            "Analytics": {
                "ImportedTags": 1,
                "UpdatedTags": 0,
                "SkippedTags": 0,
                "Error": []
            }
        }
    }
}

Enable All Topics

POST {{edgeUrl}}/cc/v2

Enable All Topics

Enables every subscription on one instance in a single call. Useful after a bulk import.

Idempotent.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation EnableAllTopics($input: EnableAllTopicsRequest!) {
  EnableAllTopics(input: $input)
}

Variables

{ "input": { "InstanceID": "{{integration_instance_id}}" } }

Response

200 OK -- application/json. No data returned on success.

{ "data": { "EnableAllTopics": null } }

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation EnableAllTopics($input: EnableAllTopicsRequest!) {
    EnableAllTopics(input: $input)
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}"
    }
}

Response

Status: 200 OK

{
    "data": {
        "EnableAllTopics": null
    }
}

Disable All Topics

POST {{edgeUrl}}/cc/v2

Disable All Topics

Disables every subscription on one instance. The configuration is preserved; re-enable individually via Enable Topic/s Subscription or all at once via Enable All Topics.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation DisableAllTopics($input: DisableAllTopicsRequest!) {
  DisableAllTopics(input: $input)
}

Variables

{ "input": { "InstanceID": "{{integration_instance_id}}" } }

Response

200 OK -- application/json. No data returned on success.

{ "data": { "DisableAllTopics": null } }

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation DisableAllTopics($input: DisableAllTopicsRequest!) {
    DisableAllTopics(input: $input)
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}"
    }
}

Response

Status: 200 OK

{
    "data": {
        "DisableAllTopics": null
    }
}

Delete All Topics

POST {{edgeUrl}}/cc/v2

Delete All Topics

Permanently deletes every subscription on one instance. The instance configuration itself is preserved (use Delete Instance to remove the instance too).

Destructive. Export with Download CSV for Instance/s first if you may want to restore.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation DeleteAllTopics($input: DeleteAllTopicsRequest!) {
  DeleteAllTopics(input: $input)
}

Variables

{ "input": { "InstanceID": "{{integration_instance_id}}" } }

Response

200 OK -- application/json. No data returned on success.

{ "data": { "DeleteAllTopics": null } }

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation DeleteAllTopics($input: DeleteAllTopicsRequest!) {
    DeleteAllTopics(input: $input)
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}"
    }
}

Response

Status: 200 OK

{
    "data": {
        "DeleteAllTopics": null
    }
}

Upload CSV

POST {{edgeUrl}}/cc/v2

Upload CSV

Imports subscriptions from a CSV file. Multipart form-data following the GraphQL multipart request spec.

The CSV format must match what Download Topic Sample / Download CSV for Instance/s produces. A typical round-trip:

  1. Download CSV for Instance/s -> grab the current subscriptions.
  2. Edit in a spreadsheet (add/remove rows, change RemoteName, toggle Enable).
  3. Upload CSV -> apply.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: multipart/form-data

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body (form-data parts)

Form key Type Description
operations text GraphQL envelope (see below) with a null placeholder where the file should go.
map text JSON mapping form file keys to placeholder locations within operations.
1 file The CSV file.

operations value

{
  "operationName": "UploadCSV",
  "variables": { "input": { "InstanceID": "{{integration_instance_id}}", "File": null } },
  "query": "mutation UploadCSV($input: UploadCSVRequest!) { UploadCSV(input: $input) { Errors { Line Column Error } } }"
}

map value

{ "1": ["variables.input.File"] }

Response

200 OK -- application/json

Field Type Description
data.UploadCSV.Errors [CSVError!]! One entry per error row. Empty array means clean import.
data.UploadCSV.Errors[].Line integer (nullable) 1-indexed CSV line number, or null for summary entries.
data.UploadCSV.Errors[].Column integer (nullable) 1-indexed column, or null.
data.UploadCSV.Errors[].Error string Error message.
{ "data": { "UploadCSV": { "Errors": [] } } }

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

Response

Status: 200 OK

{
    "data": {
        "UploadCSV": {
            "Errors": [],
            "__typename": "UploadCSVResponse"
        }
    }
}

Get Stats

POST {{edgeUrl}}/cc/v2

Get Stats (subscription)

Streams per-instance runtime statistics in real time: messages sent, dropped, live, persisted, and on-disk size. This is a GraphQL subscription -- a one-shot POST returns at most a single event. For continuous streaming, use a WebSocket transport (graphql-ws / subscriptions-transport-ws).

Transport

WebSocket: wss://{{edgeHost}}/cc/v2. The Postman item is shown as a POST for documentation; switch to a Postman WebSocket request when actually streaming.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Subscription body

subscription GetStats {
  GetStats(input: { Metrics: null, Tags: null, GroupByInMSec: null, BeginShiftSec: null }) {
    Columns
    Values
  }
}

Variables (input: GetStatsRequest!)

Field Type Required Description
Metrics [String!]? No Filter to specific metric names (e.g. ["field_SentCount"]). null returns all.
Tags object? No Tag filter (e.g. by instance ID).
GroupByInMSec Int? No Aggregation bucket in milliseconds.
BeginShiftSec Int? No Window size in seconds.

Passing null for all fields uses the LE UI's defaults (1-second buckets, last few minutes).

Event shape

Each event carries a Columns array and a Values array of rows, the same shape used by the /sysinfo/* REST endpoints.

{
  "data": {
    "GetStats": {
      "Columns": [
        "time",
        "field_DiskUsageSize",
        "field_DropCount",
        "field_LiveCount",
        "field_SentCount",
        "field_PersistenceSize"
      ],
      "Values": [
        ["2025-09-12T00:08:54Z", 0, 0, 0, 0, 0]
      ]
    }
  }
}

Metric reference

Metric Description
field_SentCount Messages successfully forwarded to the upstream system.
field_DropCount Messages dropped (typically because the persistence layer overflowed).
field_LiveCount Messages currently in flight (sent but unacknowledged).
field_PersistenceSize Messages currently queued in the persistence layer.
field_DiskUsageSize Bytes on disk used by the persistence layer.

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

subscription GetStats {
    GetStats(
        input: { Metrics: null, Tags: null, GroupByInMSec: null, BeginShiftSec: null }
    ) {
        Columns
        Values
    }
}

Response

Status: 200 OK

{
    "data": {
        "GetStats": {
            "Columns": [
                "time",
                "field_DiskUsageSize",
                "field_DropCount",
                "field_LiveCount",
                "field_SentCount",
                "field_PersistenceSize"
            ],
            "Values": [
                [
                    "2025-09-12T00:08:54Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:08:55Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:08:56Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:08:57Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:08:58Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:08:59Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:00Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:01Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:02Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:03Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:04Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:05Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:06Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:07Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:08Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:09Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:10Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:11Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:12Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:13Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:14Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:15Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:16Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:17Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:18Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:19Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:20Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:21Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:22Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:23Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:24Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:25Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:26Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:27Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:28Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:29Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:30Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:31Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:32Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:33Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:34Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:35Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:36Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:37Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:38Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:39Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:40Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:41Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:42Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:43Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:44Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:45Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:46Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:47Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:48Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:49Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:50Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:51Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:52Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:53Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:54Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:55Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:56Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:57Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:58Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:09:59Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:00Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:01Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:02Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:03Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:04Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:05Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:06Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:07Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:08Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:09Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:10Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:11Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:12Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:13Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:14Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:15Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:16Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:17Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:18Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:19Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:20Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:21Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:22Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:23Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:24Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:25Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:26Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:27Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:28Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:29Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:30Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:31Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:32Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:33Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:34Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:35Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:36Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:37Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:38Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:39Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:40Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:41Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:42Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:43Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:44Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:45Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:46Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:47Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:48Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:49Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:50Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:51Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:52Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:53Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:54Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:55Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:56Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:57Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:58Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:10:59Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:00Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:01Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:02Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:03Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:04Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:05Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:06Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:07Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:08Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:09Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:10Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:11Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:12Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:13Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:14Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:15Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:16Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:17Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:18Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:19Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:20Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:21Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:22Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:23Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:24Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:25Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:26Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:27Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:28Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:29Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:30Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:31Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:32Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:33Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:34Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:35Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:36Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:37Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:38Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:39Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:40Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:41Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:42Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:43Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:44Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:45Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:46Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:47Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:48Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:49Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:50Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:51Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:52Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:53Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:54Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:55Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:56Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:57Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:58Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:11:59Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:00Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:01Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:02Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:03Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:04Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:05Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:06Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:07Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:08Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:09Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:10Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:11Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:12Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:13Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:14Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:15Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:16Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:17Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:18Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:19Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:20Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:21Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:22Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:23Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:24Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:25Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:26Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:27Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:28Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:29Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:30Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:31Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:32Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:33Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:34Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:35Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:36Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:37Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:38Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:39Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:40Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:41Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:42Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:43Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:44Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:45Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:46Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:47Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:48Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:49Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:50Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:51Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:52Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:53Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:54Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:55Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:56Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:57Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:58Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:12:59Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:00Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:01Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:02Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:03Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:04Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:05Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:06Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:07Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:08Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:09Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:10Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:11Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:12Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:13Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:14Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:15Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:16Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:17Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:18Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:19Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:20Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:21Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:22Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:23Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:24Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:25Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:26Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:27Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:28Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:29Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:30Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:31Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:32Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:33Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:34Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:35Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:36Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:37Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:38Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:39Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:40Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:41Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:42Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:43Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:44Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:45Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:46Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:47Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:48Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:49Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:50Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:51Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:52Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:53Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:54Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:55Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:56Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:57Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:58Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:13:59Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:00Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:01Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:02Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:03Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:04Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:05Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:06Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:07Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:08Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:09Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:10Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:11Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:12Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:13Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:14Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:15Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:16Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:17Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:18Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:19Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:20Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:21Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:22Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:23Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:24Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:25Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:26Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:27Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:28Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:29Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:30Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:31Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:32Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:33Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:34Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:35Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:36Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:37Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:38Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:39Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:40Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:41Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:42Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:43Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:44Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:45Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:46Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:47Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:48Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:49Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:50Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:51Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ],
                [
                    "2025-09-12T00:14:52Z",
                    0,
                    0,
                    0,
                    0,
                    0
                ]
            ]
        }
    }
}

List Instances

POST {{edgeUrl}}/cc/v2

List Instances

Returns every Integration instance on the device along with its configuration, runtime state, and last-known status. Pass an empty input object to list all; pass { InstanceIDs: [...] } to filter.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

query ListInstances($input: ListInstancesRequest!) {
  ListInstances(input: $input) {
    InstanceID
    ProviderID
    Config
    Enabled
    ErrorLogging
    TagSyncEnabled
    System
    Online
    Status
    SizeOnDisk
    ErrCode
    ErrMsg
  }
}

Variables

Field Type Required Description
InstanceIDs [ID!] No Filter to specific instances. Omit (or {}) to return every instance.
{ "input": {} }

Response

200 OK -- application/json

Field Type Description
InstanceID string Instance UUID. Use as {{integration_instance_id}} in subsequent calls.
ProviderID string Provider slug (e.g. generic-mqtt-ssl, azure-iothub-mqtt-device-cert, kafka).
Config string JSON-encoded provider-specific configuration. Decode before reading. Secrets are masked as <protected>.
Enabled boolean Whether the instance is enabled (started on boot).
ErrorLogging boolean Surface errors from this instance in System > Events.
TagSyncEnabled boolean Sync tag selection between LE and the upstream system (when the provider supports it).
System boolean true for system-managed instances; false for user-created.
Online boolean Last-observed connection state.
Status string Human-readable status (Online, Offline, Error: ...).
SizeOnDisk integer Bytes used by the instance's persistence layer (queued / buffered messages).
ErrCode / ErrMsg string Most recent error, if any.

Sensitive data: Config contains the provider's credentials. Secrets like passwords, API keys, and TLS keys are masked as <protected> (\u003cprotected\u003e in the wire-encoded form), but hostnames, ports, and topic patterns come back verbatim. Treat the entire response as sensitive.

{
  "data": {
    "ListInstances": [
      {
        "InstanceID": "75D68C24-B8C3-47B5-AE08-5A30CBD7751F",
        "ProviderID": "azure-iothub-mqtt-device-cert",
        "Config": "{\"certificate\":\"<protected>\",\"clientId\":\"...\",\"hostname\":\"{IoTHub}.azure-devices.net\",\"name\":\"Azure\",\"port\":8883}",
        "Enabled": true,
        "ErrorLogging": true,
        "TagSyncEnabled": true,
        "System": false,
        "Online": true,
        "Status": "Online",
        "SizeOnDisk": 0,
        "ErrCode": "",
        "ErrMsg": ""
      }
    ]
  }
}

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

query ListInstances($input: ListInstancesRequest!) {        
    ListInstances(input: $input) {
        InstanceID
        ProviderID
        Config
        Enabled
        ErrorLogging
        TagSyncEnabled
        System
        Online
        Status
        SizeOnDisk
        ErrCode
        ErrMsg
    }
}

Variables

{"input": {}}

Response

Status: 200 OK

{
    "data": {
        "ListInstances": [
            {
                "InstanceID": "75D68C24-B8C3-47B5-AE08-5A30CBD7751F",
                "ProviderID": "azure-iothub-mqtt-device-cert",
                "Config": "{\"certificate\":\"\\u003cprotected\\u003e\",\"clientId\":\"630c95e8-03e4-4de6-84da-50376daefa79\",\"deviceId\":\"device\",\"hostname\":\"{IoTHub}.azure-devices.net\",\"name\":\"Azure\",\"port\":8883,\"privateKey\":\"\\u003cprotected\\u003e\",\"topic\":\"devices/device/messages/events/\",\"willPayloadType\":\"string\",\"willQoS\":0,\"willRetained\":false,\"workersCount\":16}",
                "Enabled": false,
                "ErrorLogging": false,
                "TagSyncEnabled": false,
                "System": false,
                "Online": false,
                "Status": "DISABLED",
                "SizeOnDisk": 0,
                "ErrCode": null,
                "ErrMsg": null
            },
            {
                "InstanceID": "0D934847-FC33-4E1A-861B-34CE264CFFF4",
                "ProviderID": "mssql",
                "Config": "{\"createTable\":false,\"database\":\"litmus\",\"hostname\":\"172.172.0.1\",\"mapping\":{\"SKU\":\"{{.SKU}}\",\"asset\":\"{{.asset}}\",\"comment\":\"{{.comment}}\",\"duration\":\"{{.duration}}\",\"endTime\":\"{{.downtimeEnd}}\",\"line\":\"{{.line}}\",\"planned\":\"{{.planned}}\",\"plant\":\"{{.plant}}\",\"reasonCode_L1\":\"{{.reasonCode_L1}}\",\"reasonCode_L1_text\":\"{{.reasonCode_L1_text}}\",\"reasonCode_L2\":\"{{.reasonCode_L2}}\",\"reasonCode_L2_text\":\"{{.reasonCode_L2_text}}\",\"reasoncode_entered\":\"{{.reasoncode_entered}}\",\"shift\":\"{{.shift}}\",\"startTime\":\"{{.downtimeStart}}\\t\"},\"name\":\"Insert Downtime History\",\"password\":\"\\u003cprotected\\u003e\",\"persistentStorage\":true,\"plSizeLimitMB\":1024,\"port\":1433,\"queueMode\":\"lifo\",\"table\":\"downtimeHistory\",\"throttlingLimit\":0,\"username\":\"sa\"}",
                "Enabled": true,
                "ErrorLogging": false,
                "TagSyncEnabled": false,
                "System": false,
                "Online": false,
                "Status": "FAILED",
                "SizeOnDisk": 0,
                "ErrCode": "CONNECTION_LOST",
                "ErrMsg": "unable to open tcp connection with host '172.172.0.1:1433': dial tcp 172.172.0.1:1433: connect: connection refused"
            },
            {
                "InstanceID": "9A733283-F977-4E10-AF5C-5CE0DA7FE0F3",
                "ProviderID": "gcloud-pubsub",
                "Config": "{\"key\":\"\\u003cprotected\\u003e\",\"name\":\"Google\",\"persistentStorage\":true,\"plSizeLimitMB\":1024,\"projectId\":\"ASDDSAS\",\"publishByteThreshold\":0,\"publishCountThreshold\":0,\"publishDelayThreshold\":0,\"throttlingLimit\":0,\"topic\":\"DSFDSFG\",\"workersCount\":100}",
                "Enabled": false,
                "ErrorLogging": false,
                "TagSyncEnabled": true,
                "System": false,
                "Online": false,
                "Status": "DISABLED",
                "SizeOnDisk": 0,
                "ErrCode": null,
                "ErrMsg": null
            },
            {
                "InstanceID": "78794A5D-1FBB-449B-BF0C-083C2845DFA9",
                "ProviderID": "mssql",
                "Config": "{\"bulkSize\":0,\"commitTimeout\":1000,\"createTable\":false,\"database\":\"litmus\",\"hostname\":\"172.172.0.1\",\"mapping\":{\"Assigned_To\":\"{{.Assigned_To}}\",\"Priority\":\"{{.Priority}}\",\"Task_Description\":\"{{.Task_Description}}\",\"WO_Date\":\"{{.WO_Date}}\",\"WO_Number\":\"{{.WO_Number}}\",\"WO_Type\":\"{{.WO_Type}}\",\"asset\":\"{{.asset}}\",\"line\":\"{{.line}}\",\"plant\":\"{{.plant}}\"},\"maxTransactionSize\":100,\"name\":\"Insert Scheduled Work Order\",\"password\":\"\\u003cprotected\\u003e\",\"persistentStorage\":true,\"plSizeLimitMB\":1024,\"port\":1433,\"queueMode\":\"lifo\",\"table\":\"ScheduledWorkOrders\",\"throttlingLimit\":0,\"username\":\"sa\"}",
                "Enabled": true,
                "ErrorLogging": false,
                "TagSyncEnabled": false,
                "System": false,
                "Online": false,
                "Status": "FAILED",
                "SizeOnDisk": 0,
                "ErrCode": "CONNECTION_LOST",
                "ErrMsg": "unable to open tcp connection with host '172.172.0.1:1433': dial tcp 172.172.0.1:1433: connect: connection refused"
            },
            {
                "InstanceID": "E7F3F8A5-0399-4246-BF68-A772A4B66F52",
                "ProviderID": "generic-mqtt-tcp",
                "Config": "{\"clientId\":\"randomClient\",\"hostname\":\"10.17.100.136\",\"name\":\"MQTT\",\"persistentStorage\":true,\"plSizeLimitMB\":1024,\"port\":1883,\"qos\":1,\"queueMode\":\"lifo\",\"throttlingLimit\":0,\"willPayloadType\":\"string\",\"willQoS\":1,\"willRetained\":false,\"workersCount\":100}",
                "Enabled": false,
                "ErrorLogging": false,
                "TagSyncEnabled": true,
                "System": false,
                "Online": false,
                "Status": "DISABLED",
                "SizeOnDisk": 0,
                "ErrCode": null,
                "ErrMsg": null
            },
            {
                "InstanceID": "34C194F0-0BF9-4F7A-867F-724C2AF27B26",
                "ProviderID": "rest",
                "Config": "{\"endpoint\":\"http://example-endpoint.com\",\"insecureSkipVerify\":true,\"method\":\"POST\",\"name\":\"REST API\",\"persistentStorage\":true,\"plSizeLimitMB\":1024,\"queueMode\":\"lifo\",\"throttlingLimit\":0,\"workersCount\":100}",
                "Enabled": false,
                "ErrorLogging": false,
                "TagSyncEnabled": true,
                "System": false,
                "Online": false,
                "Status": "DISABLED",
                "SizeOnDisk": 0,
                "ErrCode": null,
                "ErrMsg": null
            },
            {
                "InstanceID": "19AEA71E-C750-4968-B2FC-0B27D79064D6",
                "ProviderID": "mssql",
                "Config": "{\"createTable\":false,\"database\":\"litmus\",\"hostname\":\"172.172.0.1\",\"mapping\":{\"SKU\":\"{{.SKU}}\",\"asset\":\"{{.asset}}\",\"comment\":\"{{.comment}}\",\"line\":\"{{.line}}\",\"plant\":\"{{.plant}}\",\"scrapCode\":\"{{.scrapCode}}\",\"scrapCode_text\":\"{{.scrapCode_text}}\",\"scrapTime\":\"{{.scrapTime}}\",\"shift\":\"{{.shift}}\"},\"name\":\"Insert Scrap History\",\"password\":\"\\u003cprotected\\u003e\",\"persistentStorage\":true,\"plSizeLimitMB\":1024,\"port\":1433,\"queueMode\":\"lifo\",\"table\":\"scrapHistory\",\"throttlingLimit\":0,\"username\":\"sa\"}",
                "Enabled": true,
                "ErrorLogging": false,
                "TagSyncEnabled": false,
                "System": false,
                "Online": false,
                "Status": "FAILED",
                "SizeOnDisk": 0,
                "ErrCode": "CONNECTION_LOST",
                "ErrMsg": "unable to open tcp connection with host '172.172.0.1:1433': dial tcp 172.172.0.1:1433: connect: connection refused"
            },
            {
                "InstanceID": "7C5660C9-C2DA-43ED-BB00-40355E23F023",
                "ProviderID": "mssql",
                "Config": "{\"createTable\":false,\"database\":\"litmus\",\"hostname\":\"172.172.0.1\",\"mapping\":{\"anomaly\":\"{{.anomaly}}\",\"asset\":\"{{.asset}}\",\"line\":\"{{.line}}\",\"numDeviations\":\"{{.numDeviations}}\",\"plant\":\"{{.plant}}\",\"time\":\"{{.time}}\"},\"name\":\"Insert Anomaly History\",\"password\":\"\\u003cprotected\\u003e\",\"persistentStorage\":true,\"plSizeLimitMB\":1024,\"port\":1433,\"queueMode\":\"fifo\",\"table\":\"anomalyHistory\",\"throttlingLimit\":0,\"username\":\"sa\"}",
                "Enabled": true,
                "ErrorLogging": false,
                "TagSyncEnabled": false,
                "System": false,
                "Online": false,
                "Status": "FAILED",
                "SizeOnDisk": 0,
                "ErrCode": "CONNECTION_LOST",
                "ErrMsg": "unable to open tcp connection with host '172.172.0.1:1433': dial tcp 172.172.0.1:1433: connect: connection refused"
            },
            {
                "InstanceID": "89402763-7B7E-48C1-B130-F22D0B25FA87",
                "ProviderID": "aws-iotcore-mqtt-ssl",
                "Config": "{\"certificate\":\"\\u003cprotected\\u003e\",\"clientId\":\"AWSClientID\",\"hostname\":\"AWS.Hostname\",\"name\":\"AWS\",\"port\":8883,\"privateKey\":\"\\u003cprotected\\u003e\",\"qos\":0,\"throttlingLimit\":0,\"topic\":\"AWSIntegrationTopic\",\"willPayloadType\":\"string\",\"willQoS\":0,\"willRetained\":false,\"workersCount\":100}",
                "Enabled": false,
                "ErrorLogging": false,
                "TagSyncEnabled": false,
                "System": false,
                "Online": false,
                "Status": "DISABLED",
                "SizeOnDisk": 0,
                "ErrCode": null,
                "ErrMsg": null
            }
        ]
    }
}

Delete Instance

POST {{edgeUrl}}/cc/v2

Delete Instance

Deletes a single Integration instance. The instance's queued messages (in its persistence layer) are also discarded -- if you want to flush them upstream first, ensure the instance is Online and Enabled before deleting, or clear them explicitly with Clear Persistence Layer.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation DeleteInstance($input: DeleteInstanceRequest!) {
  DeleteInstance(input: $input)
}

Variables

Field Type Required Description
InstanceID ID! Yes UUID of the instance to delete.
{ "input": { "InstanceID": "{{integration_instance_id}}" } }

Response

200 OK -- application/json. No data returned on success.

{ "data": { "DeleteInstance": null } }

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation DeleteInstance($input: DeleteInstanceRequest!) {
    DeleteInstance(input: $input)
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}"
    }
}

Response

Status: 200 OK

{
    "data": {
        "DeleteInstance": null
    }
}

Update Instance

POST {{edgeUrl}}/cc/v2

Update Instance

Updates an existing instance's configuration. The mutation is a full replacement of Config (and the other top-level fields you include).

Config is a JSON string -- not a nested object -- so you have to stringify the provider's config map before sending. The shape inside Config is provider-specific; the example below is for mssql.

To discover the legal Config keys for a provider, use the matching entry in Provider Schemas - Reference (the schema includes JSON-Schema validators for every field).

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation UpdateInstance($input: UpdateInstanceRequest!) {
  UpdateInstance(input: $input) {
    InstanceID
    ProviderID
    Config
    Enabled
    ErrorLogging
    TagSyncEnabled
    System
    Online
    Status
    SizeOnDisk
    ErrCode
    ErrMsg
  }
}

Variables

Field Type Required Description
InstanceID ID! Yes UUID of the instance to update.
Config String! Yes New JSON-encoded provider-specific config. See Provider Schemas - Reference > <provider>.
Enabled Boolean No Toggle started / stopped.
ErrorLogging Boolean No Toggle error surfacing.
TagSyncEnabled Boolean No Toggle tag synchronization (when supported by the provider).
{
  "input": {
    "InstanceID": "{{integration_instance_id}}",
    "Config": "{\"commitTimeout\":1000,\"createTable\":false,\"hostname\":\"172.172.0.1\",\"database\":\"litmus\",\"name\":\"Insert Scrap\"}"
  }
}

Response

200 OK -- application/json. Echoes the updated instance (same shape as List Instances).

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

Operational note

Updating connection-relevant fields (hostname, port, credentials) restarts the instance's worker behind the scenes -- expect a brief window of Offline status until it reconnects.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation UpdateInstance($input: UpdateInstanceRequest!) {
    UpdateInstance(input: $input) {
        InstanceID
        ProviderID
        Config
        Enabled
        ErrorLogging
        TagSyncEnabled
        System
        Online
        Status
        SizeOnDisk
        ErrCode
        ErrMsg
    }
}

Variables

{
    "input": {
        "Config": "{\"commitTimeout\":1000,\"createTable\":false,\"mapping\":{\"SKU\":\"{{.SKU}}\",\"asset\":\"{{.asset}}\",\"comment\":\"{{.comment}}\",\"line\":\"{{.line}}\",\"plant\":\"{{.plant}}\",\"scrapCode\":\"{{.scrapCode}}\",\"scrapCode_text\":\"{{.scrapCode_text}}\",\"scrapTime\":\"{{.scrapTime}}\",\"shift\":\"{{.shift}}\"},\"maxTransactionSize\":100,\"plSizeLimitMB\":1024,\"port\":1433,\"bulkSize\":0,\"workersCount\":1,\"queueMode\":\"lifo\",\"persistentStorage\":true,\"table\":\"scrapHistory\",\"username\":\"sa\",\"name\":\"Insert Scrap History\",\"hostname\":\"172.172.0.1\",\"password\":\"<protected>\",\"throttlingLimit\":0,\"database\":\"litmus\"}",
        "ErrorLogging": false,
        "InstanceID": "{{integration_instance_id}}"
  }
}

Response

Status: 200 OK

{
    "data": {
        "UpdateInstance": {
            "InstanceID": "19AEA71E-C750-4968-B2FC-0B27D79064D6",
            "ProviderID": "mssql",
            "Config": "{\"bulkSize\":0,\"commitTimeout\":1000,\"createTable\":false,\"database\":\"litmus\",\"hostname\":\"172.172.0.1\",\"mapping\":{\"SKU\":\"{{.SKU}}\",\"asset\":\"{{.asset}}\",\"comment\":\"{{.comment}}\",\"line\":\"{{.line}}\",\"plant\":\"{{.plant}}\",\"scrapCode\":\"{{.scrapCode}}\",\"scrapCode_text\":\"{{.scrapCode_text}}\",\"scrapTime\":\"{{.scrapTime}}\",\"shift\":\"{{.shift}}\"},\"maxTransactionSize\":100,\"name\":\"Insert Scrap History\",\"password\":\"\\u003cprotected\\u003e\",\"persistentStorage\":true,\"plSizeLimitMB\":1024,\"port\":1433,\"queueMode\":\"lifo\",\"table\":\"scrapHistory\",\"throttlingLimit\":0,\"username\":\"sa\",\"workersCount\":1}",
            "Enabled": true,
            "ErrorLogging": false,
            "TagSyncEnabled": false,
            "System": false,
            "Online": false,
            "Status": "FAILED",
            "SizeOnDisk": 0,
            "ErrCode": "CONNECTION_LOST",
            "ErrMsg": "unable to open tcp connection with host '172.172.0.1:1433': dial tcp 172.172.0.1:1433: connect: connection refused"
        }
    }
}

Clear Persistence Layer

POST {{edgeUrl}}/cc/v2

Clear Persistence Layer

Flushes the persistence layer of one instance -- the local queue of buffered messages that have not yet been delivered upstream. The mutation returns the number of KB reclaimed.

Use this to recover from a stuck instance whose persistence layer has grown unbounded (visible as a high SizeOnDisk in List Instances), or when you have changed the upstream's schema and the buffered messages are no longer valid.

Destructive: cleared messages are lost. Confirm you don't need to flush upstream before calling.

Endpoint

POST {{edgeUrl}}/cc/v2
Content-Type: application/json

The operation is chosen by the GraphQL query body, not the URL path.

Authentication

HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.

Request body

mutation ClearInstancePersistenceLayer($input: ClearInstancePersistenceLayerRequest!) {
  ClearInstancePersistenceLayer(input: $input) {
    CleanUpSizeKb
  }
}

Variables

Field Type Required Description
InstanceID ID! Yes UUID of the instance.
{ "input": { "InstanceID": "{{integration_instance_id}}" } }

Response

200 OK -- application/json

Field Type Description
data.ClearInstancePersistenceLayer.CleanUpSizeKb integer KB reclaimed from the persistence layer.
{ "data": { "ClearInstancePersistenceLayer": { "CleanUpSizeKb": 0 } } }

Errors

GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:

{ "errors": [ { "message": "...", "path": ["..."], "extensions": { "code": "..." } } ] }
extensions.code Meaning
UNAUTHENTICATED Missing or invalid API token.
FORBIDDEN Token lacks permission for this operation.
BAD_USER_INPUT Invalid argument (wrong type, missing required field, malformed UUID, unknown ID, etc.).
NOT_FOUND The targeted entity does not exist.
INTERNAL_SERVER_ERROR DeviceHub fault. Retry, then escalate via System > Support.

A non-200 HTTP response means DeviceHub itself is unreachable. See Dashboard > DeviceHub Status.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

GraphQL Query

mutation ClearInstancePersistenceLayer($input: ClearInstancePersistenceLayerRequest!) {
    ClearInstancePersistenceLayer(input: $input) {
        CleanUpSizeKb
    }
}

Variables

{
    "input": {
        "InstanceID": "{{integration_instance_id}}"
    }
}

Response

Status: 200 OK

{
    "data": {
        "ClearInstancePersistenceLayer": {
            "CleanUpSizeKb": 0
        }
    }
}

View this page as Markdown