Skip to content

Willow Public API (v3)

Download OpenAPI description
Languages
Servers
https://{instance}.app.willowinc.com/api/v3/

OAuth2

Authentication is required prior to accessing the Willow API. Refer to Authentication section above for details.

Operations

Models

Models endpoints are used for getting the models and their details.

Operations

Twins

The Twins endpoints enable creating, updating, and fetching one or more twins at a time. When receiving twins, there are also options to include relationships in the same response.

Operations

Relationships

Relationship endpoints enable creating, updating, and fetching relationship details.

Operations

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).

Operations

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.

Operations

List insights. Pagination applies only to root elements (ScenarioId == null). When fetching a page, include all children of those roots. Search/filtering applies to both parent and children: If a parent matches, return the parent with all its children. If a child matches, return the child and its parent (even if the parent wouldn’t match by itself).

Request

Returns a paginated list insight. Default page size is 10.

Security
oauth2
Query
addFloorboolean

When true, the response includes the floorId.

Default false
Body

Filter and sort specifications.

sortSpecificationsArray of objects or null(SortSpecification)
filterSpecificationsArray of objects or null(FilterSpecification1)
pageinteger or null(int32)
pageSizeinteger or null(int32)
{ "sortSpecifications": [ {} ], "filterSpecifications": [ {} ], "page": 0, "pageSize": 0 }

Responses

OK

Bodyapplication/json
beforeinteger(int32)
afterinteger(int32)
totalinteger(int32)
itemsArray of objects or null(Insight)
Response
application/json
{ "before": 0, "after": 0, "total": 0, "items": [ {} ] }

Retrieve an insight.

Request

Security
oauth2
Path
insightIdstring(uuid)required

Id of the insight.

Query
ignoreQueryFiltersboolean

Ignore global filter.

Default true
No request payload

Responses

OK

Bodyapplication/json
idstring(uuid)

Gets or sets the unique identifier of the insight.

customerIdstring(uuid)

Gets or sets the unique identifier of the customer associated with the insight.

siteIdstring(uuid)

Gets or sets the unique identifier of the site associated with the insight.

sequenceNumberstring or null

Gets or sets the sequence number of the insight.

equipmentIdstring or null(uuid)

Gets or sets the unique identifier of the equipment associated with the insight.

twinIdstring or null

Gets or sets the twin identifier of the insight.

twinNamestring or null

Gets or sets the name of the twin associated with the insight.

insightTypestring

Gets or sets the type of the insight (standard or scenario).

Enum"standard""scenario"
categorystring

Gets or sets the category of the insight.

Enum"fault""energy""alert""note""goldenStandard""infrastructure""integrityKpi""energyKpi""edgeDevice""dataQuality"
namestring or null

Gets or sets the name of the insight.

descriptionstring or null

Gets or sets the description of the insight.

recommendationstring or null

Gets or sets the recommendation for the insight.

impactScoresArray of objects or null(ImpactScore)

Gets or sets the impact scores associated with the insight.

priorityinteger(int32)

Gets or sets the priority of the insight.

lastStatusstring

Gets or sets the last status of the insight.

Enum"open""ignored""inProgress""resolved""new""deleted""readyToResolve"
statestring

Gets or sets the state of the insight.

Enum"inactive""active""disabled""insufficientData""archived"
createdDatestring(date-time)

Gets or sets the date when the insight was created.

updatedDatestring(date-time)

Gets or sets the date when the insight was last updated.

occurredDatestring(date-time)

Gets or sets the date when the insight occurred.

detectedDatestring(date-time)

Gets or sets the date when the insight was detected.

sourceTypestring

Gets or sets the source type of the insight.

Enum"Adx""AdtQuery""AdtMemory""Acs"
sourceIdstring or null(uuid)

Gets or sets the unique identifier of the source associated with the insight.

sourceNamestring or null

Gets or sets the name of the source associated with the insight.

primaryModelIdstring or null

Gets or sets the primary model identifier of the insight.

externalIdstring or null

Gets or sets the external identifier of the insight.

externalStatusstring or null

Gets or sets the external status of the insight.

externalMetadatastring or null

Gets or sets the external metadata of the insight.

occurrenceCountinteger(int32)

Gets or sets the occurrence count of the insight.

createdUserIdstring or null(uuid)

Gets or sets the unique identifier of the user who created the insight.

ruleIdstring or null

Gets or sets the rule identifier associated with the insight.

ruleNamestring or null

Gets or sets the rule name associated with the insight.

newOccurrenceboolean

Gets or sets a value indicating whether the insight is a new occurrence.

previouslyIgnoredinteger(int32)

Gets or sets the count of times the insight was previously ignored.

previouslyResolvedinteger(int32)

Gets or sets the count of times the insight was previously resolved.

floorIdstring or null(uuid)

Gets or sets the unique identifier of the floor associated with the insight.

reportedboolean

Gets or sets a value indicating whether the insight has been reported.

commentCountinteger(int32)

Gets or sets the comment count for the insight.

lastResolvedDatestring or null(date-time)

Gets or sets the date when the insight was last resolved.

lastIgnoredDatestring or null(date-time)

Gets or sets the date when the insight was last ignored.

locationDetailsArray of objects or null(Location)

Gets or sets the location details, including twin ID, name, and model ID.

tagsArray of strings or null

Gets or sets the tags associated with the insight.

ignoreUntilstring or null(date-time)

Gets or sets the ignore expiry date for the insight.

openTicketCountinteger(int32)

Gets or sets the number of open tickets for the insight.

completedTicketCountinteger(int32)

Gets or sets the number of Completed tickets for the insight.

closedTicketCountinteger(int32)

Gets or sets the number of closed tickets for the insight.

ticketClosedDatestring or null(date-time)

Gets or sets the ticket closed date.

ticketCompletedDatestring or null(date-time)

Gets or sets the ticket completed date.

secondaryTwinsArray of objects or null(TwinSummary)

Gets or sets the secondary twins "secondary components" of the insight.

recommendationsArray of objects or null(InsightRecommendation)

Gets or sets the recommendations of the insight.

dependencyCountinteger(int32)

Gets or sets the number of insight's dependencies.

actionStatusstring

Gets or sets the action status of the insight.

Enum"needsAction""inProgress""unsuccessfullyActioned""successfullyActioned"
scenarioIdstring or null(uuid)

Gets or sets the insights parent scenario id.

scenarioNamestring or null

Gets or sets the insights parent scenario name.

typestringDeprecated

Gets or sets the type of the insight.

Enum"fault""energy""alert""note""goldenStandard""infrastructure""integrityKpi""energyKpi""edgeDevice""dataQuality"
locationsArray of strings or nullDeprecated

Gets or sets the locations associated with the insight.

isDiagnosticsDatabooleanDeprecated

Gets or sets a value indicating whether the insight contains diagnostics data.

Response
application/json
{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "customerId": "87d8e330-2878-4742-a86f-dbbb3bf522ac", "siteId": "60189e9c-7d12-438c-b9ca-6998d9c364b1", "sequenceNumber": "string", "equipmentId": "d2a795e1-f645-4e24-bc0a-ab1965048fcc", "twinId": "string", "twinName": "string", "type": "fault", "insightType": "standard", "category": "fault", "name": "string", "description": "string", "recommendation": "string", "impactScores": [ {} ], "priority": 0, "lastStatus": "open", "state": "inactive", "createdDate": "2019-08-24T14:15:22Z", "updatedDate": "2019-08-24T14:15:22Z", "occurredDate": "2019-08-24T14:15:22Z", "detectedDate": "2019-08-24T14:15:22Z", "sourceType": "Adx", "sourceId": "797f5a94-3689-4ac8-82fd-d749511ea2b2", "sourceName": "string", "primaryModelId": "string", "externalId": "string", "externalStatus": "string", "externalMetadata": "string", "occurrenceCount": 0, "createdUserId": "ea7e097f-834f-4fa5-87fc-4730a5fb67fe", "ruleId": "string", "ruleName": "string", "newOccurrence": true, "previouslyIgnored": 0, "previouslyResolved": 0, "floorId": "f4b95b27-8806-47f9-baf2-7b034d2e232f", "reported": true, "commentCount": 0, "lastResolvedDate": "2019-08-24T14:15:22Z", "lastIgnoredDate": "2019-08-24T14:15:22Z", "locations": [ "string" ], "locationDetails": [ {} ], "tags": [ "string" ], "isDiagnosticsData": true, "ignoreUntil": "2019-08-24T14:15:22Z", "openTicketCount": 0, "completedTicketCount": 0, "closedTicketCount": 0, "ticketClosedDate": "2019-08-24T14:15:22Z", "ticketCompletedDate": "2019-08-24T14:15:22Z", "secondaryTwins": [ {} ], "recommendations": [ {} ], "dependencyCount": 0, "actionStatus": "needsAction", "scenarioId": "e28e2f4c-7202-4457-b0d8-c4c537f7bff6", "scenarioName": "string" }

Events

Events endpoints enable creating, updating, and deleting discrete occurrences such as Weather Forecast, Calendar events etc.

Operations

Tickets

This API group is in pre-release and may change without notice. Use with caution. Breaking changes may occur as development continues.
Tickets endpoints enable creating, updating and retrieving Tickets.

Operations

Ticket Metadata

This API group is in pre-release and may change without notice. Use with caution. Breaking changes may occur as development continues.
Ticket Metadata endpoints enable creating, updating and retrieving Ticket Metadata.

Operations