The "createInput" action creates a new input. It configures a service to collect tags from a data source and insert those tags into an integration table.
Note A tag is a piece of named data with an associated value. For example, the tag
temperature 70includes both the named data temperature and the value70. In JSON, a tag is a JSON property, such as"temperature": 70. In a SQL table, a tag is a data field, such as a field named temperature with a value of70.A connector is a bridge between a device/software and an integration table.
- An input configures a connector to collect data tags periodically from a device and store them in an integration table. For example, an input can configure the OPC UA connector to collect and store data from an OPC UA device.
- An input is a mapping from a service to an integration table.
- The action
"createInput"is the only way to create this mapping. If the mapping already exists, this action returns an error. To modify an existing input, use the"alterInput"action.
- The action
- Each input typically configures a connector to store data in its own dedicated integration table.
- You may create multiple inputs that configure a variety of connectors to collect data from different devices for storage in the same integration table. This is useful when different devices collect the same type of data, such as temperature, and you want all temperature data to be stored in one table.
- When you want the same collected data to exist in multiple integration tables, to publish the data to multiple MQTT topics for example, you can create a
"jsonToDifferentTableFields"transform to replicate data from one integration table to another. - If the specified integration table does not exist when an input is created, FairCom Edge creates it.
- A connector inserts records into an integration table, which is a historical log of data collection events. If your account has permissions, you may also update or delete collected records.
- A connector typically converts the data tags it collects into JSON and writes them to the
"source_payload"field of a newly inserted record. - Transforms can take data from the
"source_payload"field (or from other fields in the table), transform it, and place the results in other fields, such as user-defined fields.
Request examples
The following examples are for the Modbus connector. For examples of other connectors, visit the Allen-Bradley, OPC UA, or Siemens S7 API references.
Minimal
{
"action": "createInput",
"params": {
"inputName": "modbusTCP",
"serviceName": "modbus",
"thingName": "PLC 74",
"settings": {
"modbusProtocol": "TCP",
"modbusServer": "127.0.0.1",
"modbusServerPort": 502,
"propertyMapList": [
{
"propertyPath": "temperature",
"modbusDataAccess": "holdingregister",
"modbusDataAddress": 1199,
"modbusUnitId": 5,
"modbusDataLen": 1
}
]
},
"tableName": "modbusTableTCP"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
}RTU
{
"api": "hub",
"action": "createInput",
"params": {
"inputName": "modbusRTU",
"serviceName": "modbus",
"dataPersistenceStrategy": "onChange",
"dataCollectionIntervalMilliseconds": 5000,
"immediatelyCollectDataOnStart": true,
"dataCollectionBufferCount": 2,
"settings": {
"modbusProtocol": "RTU",
"modbusSerialPort": "COM2",
"modbusBaudRate": 19200,
"modbusParity": "None",
"modbusDataBits": 8,
"modbusStopBits": 2,
"propertyMapList": [
{
"propertyPath": "temperature",
"modbusDataAccess": "holdingregister",
"modbusDataAddress": 1199,
"modbusUnitId": 5,
"modbusDataLen": 1
}
]
},
"tableName": "modbusTableRTU"
},
"authToken": "replaceWithAuthTokenFromCreateSession"
}Maximal
{
"api": "hub",
"action": "createInput",
"params": {
"inputName": "INPUT: PLC 74 & Modbus",
"serviceName": "modbus",
"thingName": "PLC 74",
"databaseName": "faircom",
"ownerName": "admin",
"tableName": "temperature",
"status": "userError",
"stopCode": 16384,
"stopReason": "Putting device in an uncertain error state while verifying data collection.",
"purpose": "Track Celsius Temperatures from devices",
"description": "My input connector's description",
"labels": ["temperature", "celsius"],
"dataPersistenceStrategy": "onChange",
"immediatelyCollectDataOnStart": true,
"dataCollectionBufferCount": 2,
"dataCollectionIntervalMilliseconds": 15000,
"settings": {
"modbusProtocol": "TCP",
"modbusServer": "127.0.0.1",
"modbusServerPort": 502,
"propertyMapList": [
{
"propertyPath": "status", //Deprecated
"modbusDataAddress": 1000,
"modbusDataAccess": "inputRegister",
"modbusUnitId": 5,
"modbusDataLen": 1
},
{
"tagName": "device1_modbus_stamper_temperature",
"modbusDataAddress": 2000,
"modbusDataAccess": "inputRegister",
"modbusUnitId": 5,
"modbusByteOrder": "ABCD",
"modbusDataLen": 2
},
{
"tagId": 18,
"modbusDataAddress": 3000,
"modbusDataAccess": "inputRegister",
"modbusUnitId": 5,
"modbusDataLen": 2
}
]
},
"retentionPolicy": "autoPurge",
"retentionPeriod": 4,
"retentionUnit": "week",
"metadata": {}
},
"requestId": "00000007",
"authToken": "replaceWithAuthTokenFromCreateSession"
}Conditional Data Persistence Code Example
{
"api": "hub",
"action": "createInput",
"params": {
"inputName": "modbusTCP",
"serviceName": "modbus",
"dataCollectionIntervalMilliseconds": 1000,
"dataPersistenceStrategy": "onChange",
"onChangeScope": "saveSpecificTags",
"onChangeScopeTags": ["t1"],
"onChangeTrigger": "saveWhenAnySpecifiedTagHasChanged",
"onChangeTriggerTags": ["t1"],
"maxUnsavedEvents": 360,
"databaseName": "faircom",
"ownerName": "admin",
"tableName": "modbusTableTCP",
"retentionPolicy": "autoPurge",
"retentionPeriod": 30,
"retentionUnit": "day",
"dataCollectionBufferCount": 1,
"immediatelyCollectDataOnStart": false,
"metadata": {},
"settings": {
"modbusProtocol": "TCP",
"modbusServer": "127.0.0.1",
"modbusServerPort": 502,
"propertyMapList": [
{
"propertyPath": "temperature",
"modbusDataAccess": "holdingregister",
"modbusDataAddress": 4003,
"modbusDataType": "int8Signed",
"normalLowerLimit": 10,
"normalUpperLimit": 30,
"deadbandLowerLimit": 17,
"deadbandUpperLimit": 19,
"significantMagnitude": 0.3
}
]
}
},
"authToken": "replaceWithAuthTokenFromCreateSession"
}
Turn off data collection
The following example creates an input connector with data collection turned off, which is not the default behavior.
{
"action": "createInput",
"params": {
"inputName": "INPUT: PLC 74 & Modbus",
"serviceName": "modbus",
"thingName": "PLC 74",
"tableName": "temperature",
"enabled": false,
"dataCollectionIntervalMilliseconds": 1000,
"settings": {
"modbusProtocol": "TCP",
"modbusServer": "127.0.0.1",
"modbusServerPort": 502,
"propertyMapList": [
{
"propertyPath":"temperature",
"tagName": "plc74_modbus_temperature",
"modbusDataAddress": 2000,
"modbusDataAccess": "inputRegister",
"modbusUnitId": 5,
"modbusDataLen": 1
}
]
}
},
"authToken": "replaceWithAuthTokenFromCreateSession"
}
Response examples
A response to a request is "0" when successful. A non-zero value response indicates an error occurred.
Success
{
"result": {},
"requestId": "00000007",
"errorCode": 0,
"errorMessage": ""
}Failure
{
"result": {},
"requestId": "00000011",
"debugInfo": {
"request": {
"api": "hub",
"action": "createInput",
"params": {
"inputName": "modbusTCP",
"serviceName": "modbus",
"settings": {
"modbusProtocol": "TCP",
"modbusServer": "127.0.0.1",
"modbusServerPort": 502,
"propertyMapList": [
{
"propertyPath": "temperature",
"modbusDataAddress": "holdingregister",
"modbusDataAddress": 1199,
"modbusUnitId": 5,
"modbusDataLen": 1
}
]
},
"tableName": "modbusTableTCP"
},
"requestId": "00000011",
"debug": "max",
"authToken": "replaceWithAuthTokenFromCreateSession"
}
},
"errorCode": 12012,
"errorMessage": "There is already an integration with name of [modbusTCP].",
"authToken": "replaceWithAuthTokenFromCreateSession"
}Turn off data collection
See the API reference for each connector for more details on connector specific properties.
{
"result": {
"data": [
{
"inputName": "INPUT: PLC 74 & Modbus",
"serviceName": "modbus",
"thingName": "PLC 74",
"tableName": "temperature",
"enabled": false,
"running": false,
"stopCode": 14400,
"stopReason": "Connector is disabled. Enable it to continue.",
"dataCollectionIntervalMilliseconds": 1000,
"settings": {
"modbusProtocol": "TCP",
"modbusServer": "127.0.0.1",
"modbusServerPort": 502,
"propertyMapList": [
{
"tagName": "plc74_modbus_temperature",
"sourceFieldName": "temperature_celsius",
"sourcePayloadPath": "celsius",
"propertyPath": "celsius",
"modbusDataAddress": 2000,
"modbusDataAccess": "inputRegister",
"modbusUnitId": 5,
"modbusDataLen": 1
}
]
},
"databaseName": "ctreeSQL",
"ownerName": "admin",
"tableName": "modbustabletcp",
"metadata": {
},
"retentionPolicy": "autoPurge",
"retentionPeriod": 30,
"retentionUnit": "day"
}
]
},
"requestId": "00000027",
"errorCode": 0,
"errorMessage": ""
}
Maximal
{
"result": {
"data": [
{
"id": 18,
"inputName": "modbusTCP",
"serviceName": "modbus",
"databaseName": "faircom",
"ownerName": "admin",
"tableName": "modbustabletcp",
"status": "userError",
"stopCode": 16384,
"stopReason": "Putting device in an uncertain error state while verifying data collection.",
"purpose": "Track Celsius Temperatures from devices",
"description": "My input connector's description",
"labels": ["temperature", "celsius"],
"metadata": { "myProperty": "myValue" },
"createdTimestamp": "2025-08-28T10:47:13.041",
"updatedTimestamp": "2025-08-28T10:47:13.041",
"inactiveTimestamp": null,
"lastCollectedTimestamp": null,
"lastConnectedTimestamp": null,
"lastDisconnectedTimestamp": null,
"dataPersistenceStrategy": "onChange",
"dataCollectionIntervalMilliseconds": 5000,
"immediatelyCollectDataOnStart": true,
"dataCollectionBufferCount": 2,
"settings": {
"modbusProtocol": "TCP",
"modbusServer": "127.0.0.1",
"modbusServerPort": 502,
"propertyMapList": [
{
"propertyPath": "temperature",
"modbusDataAccess": "holdingregister",
"modbusDataAddress": 1199,
"modbusUnitId": 5,
"modbusDataLen": 1
}
]
},
"fields": [],
"retentionPolicy": "autoPurge",
"retentionPeriod": 4,
"retentionUnit": "week",
"disableTransformSteps": false,
"logTransformOverwrites": false
}
]
},
"authToken": "replaceWithAuthTokenFromCreateSession",
"errorCode": 0,
"errorMessage": ""
}
Properties
Request properties ("params")
| Property | Description | Default | Type | Limits (inclusive) |
|---|---|---|---|---|
databaseName |
The You specify this property when you want to use a different database instead of the default. Your session's account must have the appropriate privileges to access the code package. This property is useful because objects, such as tables and code packages, can have the same name in multiple databases. This feature allows you to create multiple environments in the same server and reuse the same JSON actions in each environment. For example, you can create It is an error to set If no default database is specified during |
Defaults to the session's "defaultDatabaseName" property |
string | 1 to 64 bytes |
dataCollectionBufferCount |
The This option combines multiple data collection events and inserts them into the integration table as one MQTT message. If this value is more than |
Optional with default of 1
|
integer |
1 to 65535
|
dataCollectionIntervalMilliseconds |
The |
Optional with default of 10000 (10 seconds). |
integer |
0 and negative values are invalid. |
dataPersistenceStrategy |
The
|
Optional with default of "onSchedule"
|
string |
|
description |
The "description" property assigns a description to a connector. |
Optional with default of ""
|
string | 1 to 512 bytes |
enabled |
The "enabled" property turns on or off an input or output connector. Thus, it pauses or starts data collection or delivery. |
Optional with default of true
|
Boolean |
|
immediatelyCollectDataOnStart |
The
|
Optional with default of false
|
Boolean |
|
inputName |
The "params": {
"inputName": "modbusTCP",
"serviceName": "modbus"
} |
Required - No default value |
string | 1 to 100 bytes |
labels |
The "labels" property assigns zero or more labels to a connector. You can use it to do lookups and filtering. You can display a list of existing labels, add new ones, rename them, and deprecate them.When you use the "alterInput" or "alterOutput" actions, omit the "labels" property to leave existing labels unchanged, or specify a complete set of new labels. These actions do not allow you to change one label at a time.You can use the "labelsFilter" property to lookup and filter connectors. The input and output connector actions implement the "labels" property using the Label API. The API stores and manages labels in the label group, "faircom/edge/labels", which allows labels to be used through FairCom Edge's APIs.An API client can retrieve a list of all lifecycle labels by using the "listLabels" action with "partialGroupFilter": "faircom/edge/labels".An API client should use the connector API's "labels" property to manage the labels assigned to a connector. It should not use the Label API to rename, link, or unlink connectors. |
Optional with default of []
|
string | 1 to 64 bytes |
maxUnsavedEvents |
The
|
Optional with default of "disabled"
|
integer |
1 to
4294967296
|
metadata |
The "metadata" property contains user-defined properties that add keywords and tags about the code package. The server indexes this field with a full-text index so you can search for any word or phrase to find code packages. |
Optional with default of {}
|
object | 0 or more key/value pairs |
onChangeScope |
The "onChangeScope" property specifies which tags the connector saves to an integration table. For more details, see "onChangeScope". |
Optional with default of "saveAllTags"
|
string enum |
|
onChangeScopeTags |
The "onChangeScopeTags" property specifies which tags the connector should save to the integration table when a save event occurs. Each "propertyPath" value is the connector's unique identifier to a collected data item, which is commonly called a "tag". For more details, see "onChangeScopeTags". |
Required when the "onChangeScope" property is set to "saveSpecificTags". |
array of strings | 1 or more strings |
onChangeTrigger |
The "onChangeTrigger" property specifies when the connector saves collected tags to an integration table. For more details, see "onChangeTrigger". |
Optional with default of "saveWhenAnyTagHasChanged"
|
string enum |
"saveWhenAnyTagHasChanged""saveWhenAllTagsHaveChanged""saveWhenAnySpecifiedTagHasChanged""saveWhenAllSpecifiedTagsHaveChanged"
|
onChangeTriggerTags |
The "onChangeTriggerTags" property specifies tags to work with the "onChangeTrigger" property to control when a connector saves collected data to an integration table. Each "propertyPath" value is the connector's unique identifier to a collected data item, which is commonly called a "tag". For more details, see "onChangeTriggerTags". |
Required when the "onChangeTrigger" property has one of the following values: "saveWhenAnySpecifiedTagHasChanged" or "saveWhenAllSpecifiedTagsHaveChanged". |
array of strings | 1 or more strings |
ownerName |
The You specify this property when you want to use a different account instead of the default. Your session's account must have the appropriate privileges to access the code package. This property is useful because objects, such as tables and code packages, can have the same name in the same database as long as different accounts own each object. This feature allows you to create duplicate objects for different users on the same server and reuse the same JSON actions on those objects. For example, an administrator can copy objects from a production environment to her account so she can troubleshoot an issue using the same JSON actions, JavaScript, and SQL code. It is an error to set If no default owner is specified during |
Optional with default of the session's "defaultOwnerName" property |
string | 1 to 64 bytes |
purpose |
The
|
Optional with default of "unknown" |
string |
1 to 64 bytes Values are managed in the Label API with the group |
retentionPeriod |
The |
Optional with default of |
integer |
1 to 100
|
retentionPolicy |
The If not specified, the default found in the
retentionPolicy values:
|
Optional with default of |
string |
|
retentionUnit |
The If not specified, the default found in the
|
Optional with default of |
string |
|
serviceName |
The See the The following services are available as of the V5 release:
|
Required - No default value | string | 1 to 64 bytes |
settings |
The |
Optional with default of {}
|
object |
See these pages for connector specific properties: |
|
settings .propertyMapList |
The "propertyMapList" property specifies which data the connector requests and where to put it in the generated JSON. |
Required - No default value | array of objects |
See these pages for connector specific properties: |
|
settings propertyMapList .propertyPath |
The "propertyPath" property specifies the JSON path in the JSON document where the connector puts the data it collects. It is mutually exclusive with the "tagName" and "tagId" properties. |
Required - No default value | string | JSON path |
|
settings propertyMapList .tagId |
The "tagId" property associates a tag with a value being collected by a connector. It is mutually exclusive with the "tagName" and "propertyPath" properties. See tagId for more details. |
Conditional - No default value | integer | If present, it must contain the ID of an existing tag, which is an integer from 0 to 9223372036854770000.Note FairCom recommends using this property instead of "propertyPath". |
|
settings propertyMapList .tagName |
The "tagName" property associates a tag with a value being collected by a connector. It is mutually exclusive with the "tagId" and "propertyPath" properties. See tagName for more details. |
Conditional - No default value | string |
If present, it must contain the name of an existing tag. Note FairCom recommends using this property instead of |
status |
The "status" property assigns an active or inactive status to a thing. An inactive status is like a soft delete. See "status" for more information. |
Optional with default of "active"
|
string enum |
|
stopCode |
The
FairCom uses the following list of OPC UA quality codes as the basis for stop codes between |
Conditional - No default value | integer |
0 to 2147483647
|
stopReason |
The
FairCom uses the following list of OPC UA quality codes as a guide for its stop reasons and stop codes between |
Conditional - No default value | string | 0 to 64 bytes |
tableName |
The The table name must start with an upper or lowercase letter, must not contain special characters other than underscore
"params": {
"tableName": "ctreeTable"
} |
Required - No default value | string | 1 to 64 bytes |
thingId |
The "thingId" property associates a connector with a device or software application. It is mutually exclusive with the "thingName" property. See thingId for more details. |
Optional with default of null
|
integer | If present, it must contain the ID of an existing thing, which is an integer form 0 to 9223372036854770000. |
thingName |
The "thingName" property associates a connector with a device or software application. It is mutually exclusive with the "thingId" property. See thingName for more details. |
Optional with default of null
|
string | 1 to 64 bytes |
Response properties ("result")
| Property | Description | Type | Limits (inclusive) |
|---|---|---|---|
data |
The |
array of objects | The action determines its contents. |
|
data .createdTimestamp |
The "createdTimestamp" property is the date and time when the connector was originally created in ISO 8601 format, such as "2025-08-28T10:47:13.041". It is never null. |
timestamp | An ISO 8601 timestamp |
|
data .databaseName |
The
|
string | 1 to 64 bytes |
|
data .dataCollectionBufferCount |
The This option combines multiple data collection events and inserts them into the integration table as one MQTT message. If this value is more than |
integer |
1 to 65535
|
|
data .dataCollectionIntervalMilliseconds |
The |
integer |
0 and negative values are invalid. |
|
data .dataPersistenceStrategy |
The
|
string |
|
|
data .description |
The "description" property assigns a description to a connector. |
string | 1 to 512 bytes |
|
data .disableTransformSteps |
The |
Boolelan |
|
|
data .enabled |
|
boolean |
truefalse
|
|
data .fields |
The
"fields": [
{
"autoValue": "none",
"name": "name",
"type": "varchar",
"length": 50,
"scale": null,
"defaultValue": null,
"nullable": false, |
array |
|
|
data .immediatelyCollectDataOnStart |
The
|
Boolean |
|
|
data .inactiveTimestamp |
The "inactiveTimestamp" property is the date and time when the connector was last made inactive. It is null when the connector is active. It is returned in ISO 8601 format, such as "2025-08-28T10:47:13.041". |
timestamp | ISO 8601 timestamp |
|
data .inputName |
The "inputName" property specifies the unique name of an input. |
string | 1 to 64 bytes |
|
data .labels |
The "labels" property assigns zero or more labels to a connector. You can use it to do lookups and filtering. You can display a list of existing labels, add new ones, rename them, and deprecate them.When you use the "alterInput" or "alterOutput" actions, omit the "labels" property to leave existing labels unchanged, or specify a complete set of new labels. These actions do not allow you to change one label at a time.You can use the "labelsFilter" property to lookup and filter connectors. The input and output connector actions implement the "labels" property using the Label API. The API stores and manages labels in the label group, "faircom/edge/labels", which allows labels to be used through FairCom Edge's APIs.An API client can retrieve a list of all lifecycle labels by using the "listLabels" action with "partialGroupFilter": "faircom/edge/labels".An API client should use the connector API's "labels" property to manage the labels assigned to a connector. It should not use the Label API to rename, link, or unlink connectors. |
string | 1 to 64 bytes |
|
data .lastCollectedTimestamp |
The "lastCollectedTimestamp" property is optionally returned from the "describeInputs", "alterInput" actions. It returns the ISO 8601 date and time of the last data collected by the input connector. If no data has been collected, the value is null. The following string is an example of an ISO 8601 timestamp: "2025-08-28T10:47:13.041". |
ISO 8601 timestamp | The ISO 8601 date and time of the last data collected by the input connector. |
|
data .lastConnectedTimestamp |
The "lastConnectedTimestamp" property is optionally returned from the "describeInputs", "alterInput", "describeOutputs", "alterOutput" actions. It returns the ISO 8601 date and time of the last time the connector was connected to its device. If it has never been connected, the value is null. The following string is an example of an ISO 8601 timestamp: "2025-08-28T10:47:13.041". |
ISO 8601 timestamp | The last ISO 8601 date and time the input connector was connected to its device. |
|
data .lastDisconnectedTimestamp |
The "lastDisconnectedTimestamp" property is optionally returned from the "describeInputs", "alterInput", "describeOutputs", "alterOutput" actions. It returns the ISO 8601 date and time of the last time the connector disconnected from a device or software. If it has never disconnected, the value is null. The following string is an example of an ISO 8601 timestamp: "2025-08-28T10:47:13.041". |
ISO 8601 timestamp | The last ISO 8601 date and time the input connector was disconnected from its device. |
|
data .logTransformOverwrites |
The You typically set If multiple Additionally, non-JavaScript transform steps cannot overwrite protected fields or the You may create transform steps to take the value of one JSON property and store it in multiple fields as long as no previous transform steps have already put values in these fields. Conversely, you may take the value of one field and store it in multiple JSON properties.
|
Boolean |
|
|
data .metadata |
The |
JSON | 0 to 65,500 bytes |
|
data .ownerName |
The "ownerName" property identifies the user who owns an object (see Object owner). |
string | 0 to 64 bytes |
|
data .purpose |
The
|
string |
1 to 64 bytes Values are managed in the Label API with the group |
|
data .retentionPeriod |
The |
integer |
1 to 100
|
|
data .retentionPolicy |
The If not specified, the default found in the
retentionPolicy values:
|
string |
|
|
data .retentionUnit |
The If not specified, the default found in the
|
string |
|
|
data .running |
The "running" property is true when an input connector is collecting data or an output connector is delivering data; otherwise, it is false. A disabled connector will never be running. An enabled connector may or may not be running. |
Boolean |
|
|
data .serviceName |
The See the The following services are available as of the V5 release:
|
string | A service name between 1 and 64 bytes. |
|
data .settings |
The |
object |
See these pages for connector specific properties: |
|
data settings .propertyMapList |
The "propertyMapList" property specifies which data the connector requests and where to put it in the generated JSON. |
array of objects |
See these pages for connector specific properties: |
|
data settings propertyMapList .propertyPath |
The "propertyPath" property specifies the JSON path in the JSON document where the connector puts the data it collects. It is mutually exclusive with the "tagName" and "tagId" properties. |
string | JSON path |
|
data settings propertyMapList .tagId |
The "tagId" property associates a tag with a value being collected by a connector. It is mutually exclusive with the "tagName" and "propertyPath" properties. See tagId for more details. |
integer | If present, it must contain the ID of an existing tag, which is an integer from 0 to 9223372036854770000.Note FairCom recommends using this property instead of "propertyPath". |
|
data settings propertyMapList .tagName |
The "tagName" property associates a tag with a value being collected by a connector. It is mutually exclusive with the "tagId" and "propertyPath" properties. See tagName for more details. |
string |
If present, it must contain the name of an existing tag. Note FairCom recommends using this property instead of |
|
data .status |
The "status" property assigns an active or inactive status to a thing. An inactive status is like a soft delete. See "status" for more information. |
string enum |
|
|
data .stopCode |
The "stopCode" property is 0 when the connector is successfully connected to its device or software; otherwise, it is non-zero. |
integer |
-2147483648 to 2147483647
|
|
data .stopReason |
The "stopReason" property is "" when the input connector is collecting data; otherwise, it is a non-empty string. |
string | 0 to 256 bytes |
|
data .tableName |
The The table name must start with an upper or lowercase letter, must not contain special characters other than underscore |
string | 1 to 64 bytes |
|
data .thingId |
The "thingId" property associates a connector with a device or software application. It is mutually exclusive with the "thingName" property. See thingId for more details. |
integer | If present, it must contain the ID of an existing thing, which is an integer form 0 to 9223372036854770000. |
|
data .thingName |
The "thingName" property associates a connector with a device or software application. It is mutually exclusive with the "thingId" property. See thingName for more details. |
string | 1 to 64 bytes |
|
data .updatedTimestamp |
The "updatedTimestamp" property is the date and time when the connector was last updated. It is the same as the "createdTimestamp" property when the connector has never been updated. It is returned in ISO 8601 format, such as "2025-08-28T10:47:13.041". |
timestamp | ISO 8601 timestamp |