Fields
- Last UpdatedJul 29, 2026
- 5 minute read
GraphQL is a query language for APIs that gives you control over the data you request. Unlike traditional APIs that return a fixed set of data, GraphQL lets you specify exactly what you need.
Properties
There are many types of properties, each of which has a mix of common and unique fields. These types and fields are shown below.
Common fields
Every type of property has these fields:
-
Id
-
Category
-
UniqueId
-
TypeCode
-
TypeId
-
DataSource
Property types and unique fields
|
Property Type |
Unique Fields |
Property Type |
Unique Fields |
|---|---|---|---|
|
StringProperty |
StringValue |
StringArrayProperty |
StringValues |
|
NumberProperty |
NumberValue Uom UnknownUom |
NumberArrayProperty |
NumberValues Uom UnknownUom |
|
BooleanProperty |
BooleanValue |
BooleanArrayProperty |
BooleanValues |
|
EnumProperty |
EnumValue EnumerationSetId |
EnumArrayProperty |
EnumValues EnumerationSetId |
|
DateTimeProperty |
DateTimeValue |
DateTimeArrayProperty |
DateTimeValues |
|
TimeSpanProperty |
TimeSpanValue |
TimeSpanArrayProperty |
TimeSpanValues |
Property query examples
Common field GraphQL query
query {
entities {
items {
id
properties {
id
}
}
}
}
Common field GraphQL response
{
"data": {
"entities": {
"items": [
{
"id": "PLANT-E-1001",
"properties": [
{
"id": "Manufacturer"
},
{
"id": "InstallWeight"
}
]
}
]
}
}
}
Unique fields GraphQL query
query {
entities {
items {
id
properties {
id
... on StringProperty {
stringValue
}
... on NumberProperty {
numberValue
uom
unknownUom
}
}
}
}
}
Unique fields GraphQL response
{
"data": {
"entities": {
"items": [
{
"id": "PLANT-E-1001",
"properties": [
{
"id": "Manufacturer",
"name": "Manufacturer Property Name"
"stringValue": "Acme Process Solutions"
},
{
"id": "InstallWeight",
"name": "InstallWeight Name",
"numberValue": 2500,
"uom": "kg"
"unknownUom": null
}
]
}
]
}
}
}
Component types
There are two ways to request the types of components on the entities returned in the result.
Non-distinct type collection
This is the more typical way you would request the component types on each entity returned. This will list all the component types on each entity, much like the properties mentioned above. If multiple entities share a common type of component it will be listed multiple times.
Non-distinct type GraphQL query
query {
entities {
items {
id
componentTypes {
id
}
}
}
}
Non-distinct type GraphQL response
{
"data": {
"entities": {
"items": [
{
"id": "PLANT-E-1001",
"componentTypes": [
{
"id": "Component_Pump"
}
]
},
{
"id": "PLANT-E-2001",
"componentTypes": [
{
"id": "Component_Pump"
}
]
}
]
}
}
}
Distinct type collection
This is a special case if you need to see just the unique types of components within a result set. Make sure the metadata has a componentTypes field, much like the the componentTypes within the items field for entities. The response will not list component types multiple times, even if multiple entities have it.
Distinct type GraphQL query
query {
entities {
items {
id
}
metadata {
componentTypes {
id
}
}
}
}
Distinct type GraphQL response
{
"data": {
"entities": {
"items": [
{
"id": "PLANT-E-1001"
},
{
"id": "PLANT-E-2001"
}
],
"metadata": {
"componentTypes": [
{
"id": "Component_Pump"
}
]
}
}
}
}
General query examples
These examples do not include all possible fields.
Single field
If you only need a single field (for example, name), you can request just that, and the response will only include the name.
Single field GraphQL query
query {
entities {
items {
name
}
}
}
Single field GraphQL response
{
"data": {
"entities": {
"items": [
{ "name": "Distillation Column" },
{ "name": "Heat Exchanger" },
{ "name": "Central Refinery" }
]
}
}
}
Multiple fields
If you need multiple fields (for example, name, id, and createdDate), you can request them all, and the response will include those fields.
Multiple fields GraphQL query
query {
entities {
items {
name
id
createdDate
}
}
}
Multiple fields GraphQL response
{
"data": {
"entities": {
"items": [
{
"name": "Distillation Column",
"id": "PLANT-E-1001",
"createdDate": "2023-01-15T08:30:00Z"
},
{
"name": "Heat Exchanger",
"id": "PLANT-E-1002",
"createdDate": "2023-02-20T14:45:00Z"
},
{
"name": "Central Refinery",
"id": "PLANT-E-1003",
"createdDate": "2023-03-10T09:15:00Z"
}
]
}
}
}
Related entity
Related entity GraphQL query
query {
entities {
items {
id
name
properties {
id
typeId
typeCode
... on StringArrayProperty {
stringValues
}
... on NumberProperty {
numberValue
uom
}
... on StringProperty {
stringValue
}
}
relationships {
id
relationshipType
typeId
entity {
id
name
properties {
id
... on StringArrayProperty {
}
typeCode
uom
typeId
}
}
}
}
}
}
Related entity GraphQL response
{
"data": {
"entities": {
"items": [
{
"id": "PLANT-E-1001",
"name": "Distillation Column",
"properties": [
{
"id": "Tags",
"typeId": "Entity.Equipment",
"typeCode": "STRING_ARRAY",
"stringValues": [
"DC-1001",
"DC-1001-B"
]
},
{
"id": "InstallWeight",
"typeId": "Entity.Equipment",
"typeCode": "DOUBLE",
"numberValue": 2500,
"uom": "kg"
},
{
"id": "Manufacturer",
"typeId": "Entity.Equipment",
"typeCode": "STRING",
"stringValue": "Acme Process Solutions"
}
],
"relationships": [
{
"id": "PLANT-E-1001->entity.equipment:hasPlant->PLANT-01",
"relationshipType": "PARENT",
"typeId": "Entity.Equipment",
"entity": {
"id": "PLANT-01",
"name": "Central Refinery",
"properties": [
{
"id": "Purpose",
"value": {
"stringValue": "Main refinery for crude oil processing",
"numberValue": null
},
"values": null,
"uom": null,
"typeId": "Entity.Plant",
"typeCode": "STRING"
},
{
"id": "Location",
"value": {
"stringValue": "Houston, TX",
"numberValue": null
},
"values": null,
"uom": null,
"typeId": "Entity.Plant",
"typeCode": "STRING"
}
]
}
}
]
}
]
}
}
}
Related stream
Note: *Value and *Values in rows => values are mutually exclusive; only one is populated at a time. *Values applies to columns with an ARRAY typeCode.
Related stream GraphQL query
query {
entities {
items {
id
name
relationships {
id
targetBase
typeId
stream {
id
name
data(
where: {
startIndex: "2023-10-31T12:00:00.0000000Z"
endIndex: "2023-10-31T12:45:00.0000000Z"
dataMode: NORMAL
count: 2
index: ["Timestamp"]
}
) {
columns {
name
typeCode
isKey
}
rows {
values {
stringValue
numberValue
stringValues
numberValues
}
}
}
}
}
}
}
}
Related stream GraphQL response
{
"data": {
"entities": {
"items": [
{
"id": "PLANT-E-1001",
"name": "Distillation Column",
"relationships": [
{
"id": "PLANT-E-1001->entity.equipment:hasStream->DC1001-Output",
"targetBase": "ENTITY",
"typeId": "Stream",
"stream": {
"id": "DC1001-Output",
"name": "Distillation Output Stream",
"data": {
"columns": [
{
"name": "Timestamp",
"typeCode": "DATE_TIME",
"isKey": true
},
{
"name": "Temperature",
"typeCode": "DOUBLE",
"isKey": false
},
{
"name": "Pressure",
"typeCode": "DOUBLE",
"isKey": false
},
{
"name": "Readings",
"typeCode": "DOUBLE_ARRAY",
"isKey": false
}
],
"rows": [
{
"values": [
{
"stringValue": "2023-10-31T12:00:00.0000000Z",
"numberValue": null,
"stringValues": null,
"numberValues": null
},
{
"stringValue": "350.5",
"numberValue": 350.5,
"stringValues": null,
"numberValues": null
},
{
"stringValue": "2.1",
"numberValue": 2.1,
"stringValues": null,
"numberValues": null
},
{
"stringValue": null,
"numberValue": null,
"stringValues": ["349.8", "350.2", "351.0"],
"numberValues": [349.8, 350.2, 351.0]
}
]
},
{
"values": [
{
"stringValue": "2023-10-31T12:45:00.0000000Z",
"numberValue": null,
"stringValues": null,
"numberValues": null
},
{
"stringValue": "355.0",
"numberValue": 355.0,
"stringValues": null,
"numberValues": null
},
{
"stringValue": "2.3",
"numberValue": 2.3,
"stringValues": null,
"numberValues": null
},
{
"stringValue": null,
"numberValue": null,
"stringValues": ["354.5", "355.1", "355.4"],
"numberValues": [354.5, 355.1, 355.4]
}
]
}
]
}
}
}
]
}
]
}
}
}