Authentication is required prior to accessing the Willow API. Refer to Authentication section above for details.
- Create or replace a twin.
Willow Public API (v3)
Instance of GetTwinsRequest.
Represents a group of filter specifications. Contains a list of individual filter specifications.
Maximum number of twins to return per request. Minimum is 1 and Maximum is 1000.
- https://{instance}.app.willowinc.com/api/v3/twins
- Payload
- JS
- C#
- Java
- Python
{ "modelFilter": { "modelIds": [ … ], "exactModelMatch": true }, "relationshipFilter": { "relationshipDirection": "Incoming", "relationshipNames": [ … ], "relatedModelFilter": { … } }, "locationFilter": { "locationId": "string" }, "dateFilter": { "lastUpdatedAfter": "2019-08-24T14:15:22Z", "lastUpdatedBefore": "2019-08-24T14:15:22Z" }, "propertyFilter": { "field": "string", "operator": "string", "value": { … }, "filterConditionOperator": "And", "filters": [ … ] }, "ModelFilter": { "ModelIds": [ … ], "ExactModelMatch": true }, "RelationshipFilter": { "RelationshipDirection": "Outgoing", "RelationshipNames": [ … ], "RelatedModelFilter": { … } }, "LocationFilter": { "LocationId": null }, "DateFilter": { "LastUpdatedAfter": "2024-09-23T15:16:03.405Z", "LastUpdatedBefore": "2024-09-23T15:16:03.405Z" }, "PropertyFilter": { "Filters": [ … ], "FilterConditionOperator": "and" }, "Include": { "OutgoingRelationships": true, "IncomingRelationships": true }, "PageSize": 101, "ContinuationToken": null }
Page`1.
Gets or sets the collection of items contained in the response.
{ "content": [ { … } ], "continuationToken": "string" }
Instance of DigitalTwin.
Timestamp when the twin was last updated in ISO 8601 format.
This field will contain properties and components as defined in the contents section of the DTDL definition of the twin.
- https://{instance}.app.willowinc.com/api/v3/twins
- Payload
- JS
- C#
- Java
- Python
{ "id": "TW-DD-II-L01", "modelId": "dtmi:com:willowinc:Level;1", "lastUpdateTime": "2024-08-30T03:49:30.4062816+00:00", "contents": { "levelNumber": 0, "mappedIds": [ … ], "name": "Floor_1", "uniqueID": "a360cf30-c112-40a1-b4b4-f65da82fa9e8", "externalID": "FLRPXxxxxxxxxxxxxxxxx", "code": "L01", "siteID": "104bd33c-a697-4027-b6a6-677e30a53d09", "alternateClassification": { … }, "externalIds": { … }, "area": { … } } }
Created Twin .
Timestamp when the twin was last updated in ISO 8601 format.
This field will contain properties and components as defined in the contents section of the DTDL definition of the twin.
{ "id": "TW-DD-II-L01", "modelId": "dtmi:com:willowinc:Level;1", "lastUpdateTime": "2024-08-30T03:49:30.4062816+00:00", "contents": { "levelNumber": 0, "mappedIds": [ … ], "name": "Floor_1", "uniqueID": "a360cf30-c112-40a1-b4b4-f65da82fa9e8", "externalID": "FLRPXxxxxxxxxxxxxxxxx", "code": "L01", "siteID": "104bd33c-a697-4027-b6a6-677e30a53d09", "alternateClassification": { … }, "externalIds": { … }, "area": { … } } }
- https://{instance}.app.willowinc.com/api/v3/twins/{id}
- Payload
- JS
- C#
- Java
- Python
No request payloadTwin information successfully retrieved.
Timestamp when the twin was last updated in ISO 8601 format.
This field will contain properties and components as defined in the contents section of the DTDL definition of the twin.
Incoming relationships
{ "id": "TW-DD-II-L01", "modelId": "dtmi:com:willowinc:Level;1", "lastUpdateTime": "2024-08-30T03:49:30.4062816+00:00", "contents": { "levelNumber": 0, "mappedIds": [ … ], "name": "Floor_1", "uniqueID": "a360cf30-c112-40a1-b4b4-f65da82fa9e8", "externalID": "FLRPXxxxxxxxxxxxxxxxx", "code": "L01", "siteID": "104bd33c-a697-4027-b6a6-677e30a53d09", "alternateClassification": { … }, "externalIds": { … }, "area": { … } }, "incomingRelationships": [ { … } ], "outgoingRelationships": [ { … } ] }
- https://{instance}.app.willowinc.com/api/v3/twins/{id}
- Payload
- JS
- C#
- Java
- Python
[ { "operationType": "Add", "path": "string", "op": "string", "from": "string", "value": { … } } ]
{ "type": "string", "title": "string", "status": 0, "detail": "string", "instance": "string", "errors": { "property1": [ … ], "property2": [ … ] }, "property1": null, "property2": null }
- https://{instance}.app.willowinc.com/api/v3/twins/ids
- Payload
- JS
- C#
- Java
- Python
[ "string" ]
Twin information
Timestamp when the twin was last updated in ISO 8601 format.
This field will contain properties and components as defined in the contents section of the DTDL definition of the twin.
Incoming relationships
Outgoing relationships
[ { "id": "TW-DD-II-L01", "modelId": "dtmi:com:willowinc:Level;1", "lastUpdateTime": "2024-08-30T03:49:30.4062816+00:00", "contents": { … }, "incomingRelationships": [ … ], "outgoingRelationships": [ … ] } ]
Instance of GetTwinGraphRequest.
Graph relationship definition to retrieve the related twins.
- https://{instance}.app.willowinc.com/api/v3/twins/graph
- Payload
- JS
- C#
- Java
- Python
{ "id": "PNT2Uga", "alias": "Twin", "relationships": [ { … }, { … } ] }
Twin Graph Response.
{ "property1": [ { … } ], "property2": [ { … } ] }
- https://{instance}.app.willowinc.com/api/v3/twins/count
- Payload
- JS
- C#
- Java
- Python
{ "modelFilter": { "modelIds": [ … ], "exactModelMatch": true }, "relationshipFilter": { "relationshipDirection": "Incoming", "relationshipNames": [ … ], "relatedModelFilter": { … } }, "locationFilter": { "locationId": "string" }, "dateFilter": { "lastUpdatedAfter": "2019-08-24T14:15:22Z", "lastUpdatedBefore": "2019-08-24T14:15:22Z" }, "propertyFilter": { "field": "string", "operator": "string", "value": { … }, "filterConditionOperator": "And", "filters": [ … ] }, "ModelFilter": { "ModelIds": [ … ], "ExactModelMatch": true }, "RelationshipFilter": { "RelationshipDirection": "Outgoing", "RelationshipNames": [ … ], "RelatedModelFilter": { … } }, "LocationFilter": { "LocationId": null }, "DateFilter": { "LastUpdatedAfter": "2024-09-23T15:16:03.405Z", "LastUpdatedBefore": "2024-09-23T15:16:03.405Z" }, "PropertyFilter": { "Filters": [ … ], "FilterConditionOperator": "and" } }
Time Series
The Time Series endpoints are used for sending or receiving telemetry data. Once a Capability twin has been created that represents the time series, the telemetry associated with that twin can be created using either the twin's dtId (aka twinId) or externalId, a timestamp, and a value. Data is transmitted as an array so time series data can be batched and sent within a single request. Similarly, time series can be retreived for one or more Capability twins at a time using the twinId(s).
Insights
Insights are issues, opportunities, or knowledge that can help optimize or improve the performance of a building. They can be associated with any twin within Willow and are triggered in real-time by Skills that are running within Willow's Activate Technology and analyzing the incoming time series data.