Dynamic data sample messages
- Last UpdatedSep 04, 2025
- 2 minute read
You can greatly affect the performance of the OMF endpoint by how you group and construct data messages. For dynamic data messages, this includes:
-
Number of Messages Sent per Request
-
Number of Values Sent per Message
-
Number of Properties Created per Container
Unless otherwise specified, all of the following sample messages require this header: .
The expected response for all of the sample data messages is .
Unless otherwise specified, the dynamic messages shown in these examples utilize the dynamic types found in the Dynamic type sample message, and the containers found in the Container sample message.
Number of Messages Sent per Request
When possible, send multiple messages in the same request rather than separating them out into different requests.
Not Recommended
Request 1
[
{
"containerid": "Turbine 1 Device Status",
"values": [
{
"DeviceStatus": "Good",
"Speed": 5,
"Time": "2021-01-01T15:44:56Z"
}
]
}
]
Request 2
[
{
"containerid": "Turbine 1 Device Status 2",
"values": [
{
"Acceleration": 2,
"Time": "2021-01-01T15:44:56Z"
}
]
}
]
Recommended
[
{
"containerid": "Turbine 1 Device Status",
"values": [
{
"DeviceStatus": "Good",
"Speed": 5,
"Time": "2021-01-01T15:44:56Z"
}
]
},
{
"containerid": "Turbine 1 Device Status 2",
"values": [
{
"Acceleration": 2,
"Time": "2021-01-01T15:44:56Z"
}
]
}
]
Number of Values Sent per Message
When possible, send multiple values for the same container in the same message, rather than separating them out into different messages.
Not Recommended
[
{
"containerid": "Turbine 1 Device Status",
"values": [
{
"DeviceStatus": "Good",
"Speed": 5,
"Time": "2021-01-01T15:44:56Z"
}
]
},
{
"containerid": "Turbine 1 Device Status",
"values": [
{
"DeviceStatus": "Good",
"Speed": 3,
"Time": "2021-01-01T16:44:56Z"
}
]
}
]
Recommended
[
{
"containerid": "Turbine 1 Device Status",
"values": [
{
"DeviceStatus": "Good",
"Speed": 5,
"Time": "2021-01-01T15:44:56Z"
},
{
"DeviceStatus": "Good",
"Speed": 3,
"Time": "2021-01-01T16:44:56Z"
}
]
}
]
Number of Properties Created per Container
When possible, it is best to create more properties per dynamic type than have them spread out between multiple types.
Not Recommended
[
{
"containerid": "Turbine 1 Device Status",
"values": [
{
"DeviceStatus": "Good",
"Speed": 5,
"Time": "2021-01-01T15:44:56Z"
}
]
},
{
"containerid": "Turbine 1 Device Status 2",
"values": [
{
"Acceleration": 2,
"Time": "2021-01-01T15:44:56Z"
}
]
}
]
Recommended
If possible, it would be better to add the Acceleration property to the DeviceStatus type, rather than storing it in a separate type. That change can be visualized using the following type, container, and data messages.
-
New Dynamic Type
This requires the { messagetype: "Type" } header.
[{
"id": "UpdatedDeviceStatus",
"classification": "dynamic",
"properties": {
"DeviceStatus": {
"type": "string"
},
"Speed": {
"type": "number"
},
"Acceleration": {
"type": "number"
},
"Time": {
"format": "date-time",
"isindex": true,
"type": "string"
}
},
"type": "object"
}
]
-
New Container
This requires the { messagetype: "Container" } header.
[{
"id": "Turbine 1 Updated Device Status",
"typeid": "UpdatedDeviceStatus"
}
]
-
New Data Message
This requires the { messagetype: "Container" } header.
[{
"containerid": "Turbine 1 Updated Device Status",
"values": [
{
"DeviceStatus": "Good",
"Speed": 5,
"Acceleration": 2,
"Time": "2021-01-01T15:44:56Z"
}
]
}
]